Servlet体系结构
一, Servlet 接口(祖籍)
1,GenericSrevlet 是一个抽象类(实现了)Servlet接口(儿子)
2,HttpServlet 是一个抽象类(继承了)GenericSrevlet类(孙子)
二, GenericSrevlet (真正开发中并不用这种方式)
1,GenericServlet;将Servlet中的方法都做了空实现 只将service()方法定义为了抽象方法
2,将来定义Servlet类时只用重写service()方法即可
三,,,HttpServlet (对Http协议的封装和描述)
service
-7/判断请求方式
String method = req. getMethodO)|;
if(“GET”. equals (method)_ ) {
//get方式获取数据
doGet (); (het()post()请求方式)
}else if (“POST”. equals. (method) | ){
//post方式获取数据
doPost () ;
}
'doGet() 0}_
idoPost() {}
如果想要屏蔽get和post这两种请求方式可以使用HttpServlet
1,不用再次重写service()方法因为 Httpservlet里边的servIce方法已经干过了判断请求方式的事情
2,只需要复写doget()或者dopost()方法即可
Servlet的相关配置
7. Servlet相关配置
- urlpartten: Servlet访问路径
1.一个Servlet可以定义多个访问路径: @WebServlet({" /d4" ,"/dd4" ," /ddd4"})
2.路径定义规则: - /xxx :路径匹配
- /xxx/xxx:多层路径, 目录结构
- *.do :扩展名匹配
HTTP :
*概念: Hyper Text Transfer Protocol 超文本传输协议
*传输协议:定义了,客户端和服务器端通信时,发送数据的格式
*特点:
1.基于TCP/ IP的高级协议
2.默认端口号:80
3.基于请求/响应模型的:一次请求对应一次响应
I
4.无状态的:每次请求之间相互独立,不能交互数据
*请求消息数据格式
1.请求行
请求方式_请求url请求协议/版本
请求方式;
HTTP有七种方式常用的有get和post
get;
1,请求参数在请求行后(在url后)
2,请求参数的长度是有限制的
3,不安全
post;
1,请求参数在请求体中
2,请求参数的长度没有限制
2,可以用来上传文件等比较大的数据
4,相对安全(至少不在请求行里显示)
GET /login.html HTTP/1.1
2.请求头
请求头名称:请求头值
*常见的请求头:
- User- Agent :浏览器告诉服务器,我访问你使用的浏览器版本信息
可以在服务器端获取该头的信息,解决浏览器的兼容性问题
2,Referer: http://localhost/login. html
(告诉服务器我当前请求从哪里来)
作用;
1,防盗链(防止别人盗取链接)
2,统计工作
请求头名称:请求头值
3.请求空行
空行(就是一个空行 用来分隔请求头与请求体)
4.请求体(正文)
1,封装post的请求参数
请求消息字符串格式:
POST (请求方式)/login. html (url)
HTTP/1.1 (请求协议 版本信息)
Host: l ocalhost
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; X64; rv:60.0) Gecko/ 20100101 Firefox/60.0
(告诉浏览器可以接受什么样的信息)
Accept: text/html, application/ xhtml+xml ,application/xml ;q=0.9,/*;q=0.8.
(可以接受的语言)
Accept- Language: zh-CN,zh;q=0. 8, zh- TW;q=0.7,zh-HK;q=0.5, en-US;q=0.3,en;q=0.2
(接受的压缩格式)
Accept-Encoding: gzip, deflate
(告诉服务器我当前请求从哪里来)
Referer: http://localhost/login. html
Connection: keep-alive
Upgrade- Insecure- Requests: 1
(请求空行)
username= zhangsan (请求体)
一,resquest对象和response对象的原理
1,resquest对象和response对象是由tomcat创建的我们只是使用它们
2,resquest对象是获取请求消息 response对象是来设置相应消息
二,resquest的继承体系
2. request对象继承体系结构:
ServletRequest ---->接口
| —>继承
HttpServletRequest – 接口
| —> 实现(tomcat实现)
org. apache . catalina . connector . RequestFacade类( tomcat)
tomcat在处理request和response对象的过程
-
tomcat服务器会根据请求ur1中的资源
路径,创建对应的ServlqtDemo1的对象。 -
tomcat服务器,会创建request和
response对象,request对 象中封装请求
消息数据。 -
tomcat将request和response两个对象
传递给service方法,并且调用service方
法。
4.程序员(我们),可以通过request
对象获取请求消息数据,通过通过
response对象设置响应消息数据
5.服务器在给浏览器做出响应之前,
会从response对象中拿程序员设置
的响应消息数据。