web核心

138 阅读4分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第14天,点击查看活动详情 

web核心

B/S架构: Browser/Server,浏览器/服务器架构模式,它的特点是,客户端只需要浏览器,应用程序的逻辑和数据都存储在服务器端。浏览器只需要请求服务器,获取Web资源,服务器把Web资源发送给浏览器即可

静态资源:HTML、CSS、JavaScript、图片等。负责页面展现

动态资源:Servlet、JSP等。负责逻辑处理

数据库:负责存储数据

HTTP协议︰定义通信规则

Web服务器:负责解析HTTP 协议,解析请求数据,并发送响应数据

image.png

HTTP

概念: HyperText Transfer Protocol,超文本传输协议,规定了浏览器和服务器之间数据传输的规则

HTTP协议特点: 1.基于TCP协议:面向连接,安全

2基于请求-响应模型的:一次请求对应一次响应

3.HTTP协议是无状态的协议:对于事务处理没有记忆能力。每次请求-响应都是独立的。 缺点:多次请求间不能共享数据。Java中使用会话技术(Cookie、Session)来解决这个问题 优点:速度快

HTTP请求数据格式

请求数据分为3部分: 1.请求行:请求数据的第一行。其中GET表示请求方式,/表示请求资源路径,HTTP/1.1表示协议版本

2.请求头:第二行开始,格式为key: value形式。

image.png 3.请求体:POST请求的最后一部分,存放请求参数

image.png

image.png GET请求和POST请求区别: 1.GET请求请求参数在请求行中,没有请求体。 POST请求请求参数在请求体中 2.GET请求请求参数大小有限制,POST没有

响应数据格式

响应数据分为3部分: 1.响应行:响应数据的第一行。其中HTTP/1.1表示协议版本,200表示响应状态码,OK表示状态码描述

2.响应头:第二行开始,格式为key: value形式

image.png 3.响应体:最后一部分。存放响应数据

image.png

Web服务器-Tomcat

Web服务器 Web服务器是一个应该程序(软件),对HTTP协议的操作进行封装,使得程序员不必直接对协议进行操作,让web开发更加便捷。主要功能是“提供网上信息浏览服务”

Tomcat的安装过程就没什么好做笔记的了

Servlet

Servlet是Java提供的一门动态web资源开发技术 Servlet是JavaEE规范之一,其实就是一个接口,将来我们需要定Servlet类实现Servlet接口,并由web服务器运行Servlet

image.png

Servlet执行流程

1.Servlet由谁创建? Servlet方法由谁调用?

Servlet由web服务器(Tomcat)创建,Servlet方法由web服务器调用。

2.服务器怎么知道servlet中一定有service方法? 因为我们自定义的Servlet,必须实现Servlet接口并重写其方法,而servlet接口中有service方法

Servlet生命周期

Servlet运行在servlet容器(web服务器)中,其生命周期由容器来管理,分为4个阶段:

1.加载和实例化:默认情况下,当Servlet第一次被访问时,由容器创建Servlet对象

2.初始化:在Servlet实例化之后,容器将调用servlet的init()方法初始化这个对象,完成一些如 加载配置文件、创建连接等初始化的工作。该方法只调用一次

3.请求处理:每次请求servlet时,Servlet容器都会调用servlet的service()方法对请求进行处理。

4.服务终止:当需要释放内存或者容器关闭时,容器就会调用Servlet实例的destroy()方法完成 资源的释放。在destroy()方法调用之后,容器会释放这个Servlet实例,该实例随后会被Java的垃圾收集器所回收

Servlet方法介绍

image.png

Servlet体系结构

我们自定义Servlet,会继承于HttpServlet

HttpServlet其实就是根据调用的是get方法还是post方法来判断应该调用对应的方法

可以自己定义一个类MyServlet并且根据req,res来判断是get方法还是post方法并调用相应方法。再用Servlet继承MyServlet,效果与继承于HttpServlet一样

Servlet urlPattern配置

image.png 精确匹配:

image.png 目录匹配:

image.png 扩展名匹配:

image.png 任意匹配:

image.png 特别的:范围更小的优先级更高

XML配置方式编写Servlet

image.png