Servlet
Servlet的体系结构:
Servlet–接口
GenericServlet–抽象类
HttpServlet–抽象类
GenericServlet:将Servlet接口中其他方法做了默认空实现,只将service()方法作为抽象。将来定义Servlet类时,可以继承GenericServlet,实现service()方法即可。
HttpServlet:对http协议的一种封装,简化操作
1.定义类继承HttpServlet
2.复写doGet/doPost方法
Servlet相关配置:
1.urlpartten:Servlet访问路径
一个Servlet可以定义多个访问路径:@WebServlet({“/d4”,“/dd4”,“/ddd4”})
路径定义规则:
<1> /xxx
<2> /xxx/xxx:多层路径,目录结构
<3> *.do
HTTP:
超文本传输协议
传输协议:定义了客户端和服务端通信时发送数据的格式
特点:
1.基于TCP/IP的高级协议
2.默认端口号:80
基于请求/响应模型的:一次请求对应一次响应
4.无状态的:每次请求之间相互独立,不能交互数据
历史版本:
1.0:每一次请求响应都会建立新的连接
1.1:复用连接
请求消息数据格式:
1.请求行:
请求方式 请求url 请求协议/版本
GET /login.html HTTP/1.1
请求方式:
HTTP协议中有七种请求方式,常用的有2种
GET:
<1>请求参数在请求行中,url后
<2>请求的url长度有限制
<3>不太安全
POST:
<1>请求参数在请求体中
<2>请求的url长度无限制
<3>相对安全
2.请求头: 客户端浏览器高速服务器一些信息
请求头名称:请求头值
常见的请求头:
1.User-Agent:浏览器告诉服务器,我访问你使用的浏览器版本信息
可以在服务器端获取该头的信息,解决浏览器的兼容性问题
2.Referer:http://localhost/login.html
告诉服务器,我(当前请求)从哪里来?
作用:
防盗链
统计工作
3.请求空行
空行,就是用于分割POST请求的请求头和请求体的
4.请求体(正文)
封装POST请求消息的请求参数的
Request
1.request对象和response对象的原理
<1> 均由服务器创建,我们使用
<2>request对象获取请求消息,response对象设置响应消息
2.request对象继承体系结构
ServletRequest --接口
| 继承
HttpServletRequest–接口
| 实现
org.apache.catalina.connector.RequestFacade 类(tomcat)
3.request功能
<1>获取请求消息数据
获取请求行数据:
获取请求头数据:
获取请求体数据:
例子:
<2>其他功能:
获取请求参数通用方式
中文乱码问题:
请求转发:
共享数据:
BeanUtils:
工具类,简化数据封装,用于封装JavaBean的,JavaBean是标准的Java类
优化:把拿到的数据快速封装成很多个同一类对象