Day40JavaWeb
跳过了100集的前端知识,后面需要再去补上
servlet的生命周期
-
执行Servlet构造方法
-
执行init初始化方法
第一.二步是在第一次访问的时候,创建Servlet程序会调用
-
执行service方法
第三步. 每次访问都会调用
-
执行destory销毁方法.
第四步, 在web工程停止的时候调用.
通过继承HttpServlet实现Servlet程序
-
编写一个类取继承HttpServlet类
-
根据业务需要重写doGet方法和doPost方法
-
到web.xml中配置Servlet程序的访问地址.
使用IDEA直接实现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类的三大作用
-
可以获取Servlet程序的别名 servlet-name的值
-
获取初始化参数init-param
-
获取ServletContext对象
ServletContext类
-
ServletContext是一个接口,它表示Servlet上下对象
-
一个web工程,只有一个ServletContext对象实例
-
ServletContext对象是一个域对象
-
ServletContext是在web工程部署启动时创建. 在Web工程停止的时候销毁.
域对象: 可以像Map一样存取数据的对象,叫域对象,这里的域指是存取数据的操作范围 .. 整个Web工程
存数据 取数据 删除数据
Map put() get() remove()
域对象 setAttribute() getAttribute() removeAttribute()
ServletContext类的四个作用
-
获取web.xml中配置的上下文参数
-
获取当前的工程路径, 格式: /工程路径
-
获取工程部署后在服务器硬盘上的绝对路径
-
像 Map 一样 存取数据.
Http协议
什么是HTTP协议
客户端和服务器之间通信时,发送的数据,需要遵守的规则,叫HTTP协议
HTTP协议中的数据又叫报文
请求的HTTP协议格式
客户端个i服务端发送的数据叫请求
服务端给客户端回传的数据叫响应
请求又分为GET请求,POST请求
1.GET请求
-
请求行
请求的方式 GET
请求的资源路径(+?+请求参数)
请求的协议的版本号 HTTP/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请求
-
请求行
请求的方式 POST
请求的资源路径(+?+请求参数)
请求的协议的版本号 HTTP/1.1
-
请求头
key : value 不同的请求头有不同的含义
空行
-
请求体 ==>>发送给服务器的数据
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请求有:
-
form 标签里 method = "get"
-
a标签
-
link 标签引入 css
-
Scipt 标签引入 js文件
-
img 标签引入图片
-
iframe 引入 html 页面
-
在浏览器地址栏中输入地址敲回车
POST请求:
-
form 标签里 method ="post"
响应HTTP协议格式
-
响应行
响应的协议和版本号
响应状态码
响应状态描述符
-
响应头 key : value 不同的请求头有不同的含义
空行
-
请求体 ==>>发送给服务器的数据
常用的响应码说明
200 表示请求成功
302 表示重定向
404 表示请求服务器已经收到了,但是你要的数据不存在( 请求地址错误 )
500 表示服务器已经收到请求了, 但是服务器内部错误( 代码错误 )

浙公网安备 33010602011771号