Day40JavaWeb

Day40JavaWeb

 

跳过了100集的前端知识,后面需要再去补上

servlet的生命周期

  1. 执行Servlet构造方法

  2. 执行init初始化方法

第一.二步是在第一次访问的时候,创建Servlet程序会调用

  1. 执行service方法

第三步. 每次访问都会调用

  1. 执行destory销毁方法.

第四步, 在web工程停止的时候调用.

 

通过继承HttpServlet实现Servlet程序

  1. 编写一个类取继承HttpServlet类

  2. 根据业务需要重写doGet方法和doPost方法

  3. 到web.xml中配置Servlet程序的访问地址.

 

使用IDEA直接实现Servlet程序.

直接创建Servlet类.

 

 

Servlet类的继承体系

Servlet类的继承体系

 

ServletConfig类

Servlet 程序和ServletConfig对象都是由Tomcat负责创建,我们负责使用

Servlet 程序默认是第一次访问的时候创建 .. ServletConfig是每个Servlet程序创建时,就创建一个对应的ServletConfig对象.

一一对应的关系,一个Servlet对应一个ServletConfig对象.

 

如果重写了init方法,一定要在方法里面,加上super.init(config)

原因: 当子类中定义了init方法,则如不在子类中明确的调用父类的init 方法, 父类的init方法将不会被调用 。

1. 调用重写后的init,它由于子类和父类都有config,它调用了子类的config,父类里面的保存config的操作就会丢失.出现空指针异常.

ServletConfig类的三大作用

  1. 可以获取Servlet程序的别名 servlet-name的值

  2. 获取初始化参数init-param

  3. 获取ServletContext对象

 

ServletContext类

  1. ServletContext是一个接口,它表示Servlet上下对象

  2. 一个web工程,只有一个ServletContext对象实例

  3. ServletContext对象是一个域对象

  4. ServletContext是在web工程部署启动时创建. 在Web工程停止的时候销毁.

 

域对象: 可以像Map一样存取数据的对象,叫域对象,这里的域指是存取数据的操作范围 .. 整个Web工程

存数据 取数据 删除数据

Map put() get() remove()

域对象 setAttribute() getAttribute() removeAttribute()

ServletContext类的四个作用

  1. 获取web.xml中配置的上下文参数

  2. 获取当前的工程路径, 格式: /工程路径

  3. 获取工程部署后在服务器硬盘上的绝对路径

  4. 像 Map 一样 存取数据.

 

Http协议

什么是HTTP协议

客户端和服务器之间通信时,发送的数据,需要遵守的规则,叫HTTP协议

HTTP协议中的数据又叫报文

 

请求的HTTP协议格式

客户端个i服务端发送的数据叫请求

服务端给客户端回传的数据叫响应

请求又分为GET请求,POST请求

1.GET请求

  1. 请求行

    请求的方式 GET

    请求的资源路径(+?+请求参数)

    请求的协议的版本号 HTTP/1.1

  1. 请求头

    key : value 组成 . 不同的键值对 , 表示不同的含义.

Accept: 告诉服务器,客户端可以接受的数据类型.

text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,/;q=0.8,application/signed-exchange;v=b3;q=0.9


Accept-Language: 告诉服务器客户端可以接受的语言类型

zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6


User-Agent: 浏览器的信息

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.85 Safari/537.36 Edg/90.0.818.46


Accept-Encoding: 告诉服务器,客户端可以接收的数据编码(压缩)格式

gzip, deflate, br


Host:表示请求的服务器ip和端口号.

localhost:8080


Connection: 告诉服务器请求连接如何处理

keep-alive:告诉服务器回传数据不要马上关闭,保持一小段时间的连接

Closed : 马上关闭.

 

2.POST请求

  1. 请求行

    请求的方式 POST

    请求的资源路径(+?+请求参数)

    请求的协议的版本号 HTTP/1.1

  1. 请求头

    key : value 不同的请求头有不同的含义

    空行

  1. 请求体 ==>>发送给服务器的数据

 

Accept: 表示客户端可以接收的数据类型.

Accept-Language: 表示客户端可以接收的语言类型

Referer: 表示请求发起时, 浏览器地址中的地址 (从哪里来)

User-Agent: 浏览器的信息

Content-Type: 表示发送的数据类型

application/x-www-form-urlencoded --> 表示提交的数据格式是: name =value& name = value,然后对其进行

url编码,url编码是把非英文内容转换为%xx%xx

multipart/form-data -->表示以多段的形式提交数据给服务器(以流的形式提交 , 用于上传)

Content-Length:表示发送的数据的长度

Cache-Control: 表示如何控制缓冲 . no-cache不缓存

 

常用请求头的说明

Accept: 表示客户端可以接受的数据类型.

Accept-Languege: 表示 客户端可以接受的语言类型

User-Agent: 浏览器的信息

Host: 表示请求的服务器ip和端口号.

如何区分哪些是GET请求,哪些是POST请求

GET请求有:

  1. form 标签里 method = "get"

  2. a标签

  3. link 标签引入 css

  4. Scipt 标签引入 js文件

  5. img 标签引入图片

  6. iframe 引入 html 页面

  7. 在浏览器地址栏中输入地址敲回车

POST请求:

  1. form 标签里 method ="post"

 

响应HTTP协议格式

  1. 响应行

    响应的协议和版本号

    响应状态码

    响应状态描述符

  2. 响应头 key : value 不同的请求头有不同的含义

空行

  1. 请求体 ==>>发送给服务器的数据

常用的响应码说明

200 表示请求成功

302 表示重定向

404 表示请求服务器已经收到了,但是你要的数据不存在( 请求地址错误 )

500 表示服务器已经收到请求了, 但是服务器内部错误( 代码错误 )

 

 

posted @ 2021-04-27 15:32  独眼龙  阅读(54)  评论(0)    收藏  举报