1. Servlet:
本质是一个接口
A)继承体系
(1)Servlet
(2)GenericServlet
(3)HttpServlet
B)配置方式
(1)xml配置
(2)注解配置
C)生命周期
(1)先执行init() -创建后执行,只执行一次
(2)再执行service() -每次访问url时执行,可以执行多次
(3)最后执行destory() -销毁前执行,只执行一次
D)线程安全问题的解决方案
不使用成员变量
E)servlet创建时间
(1)默认为第一次访问时创建
(2)配置servlet开启时服务器自动创建
在xml中配置,第一次访问时创建<load-on-startup>的值为负数
服务器启动时创建<load-on-startup>的值为0或正整数
F)Servlet执行流程
(1)通过浏览器地址栏获取ServletDemo(访问路径)
(2)通过ServletDemo去xml配置中找到<url-pattern>/ServletDemo
(3)通过<url-pattern>/ServletDemo找到<servlet-name>test1
(4)通过<servlet-name>test1找到servlet的名称test1
(5)通过servlet的名称找到Servlet的全路径
(6)通过全路径访问Servlet的实现类
G)Servlet的访问路径的配置
/info
/user/*
*.do
/hehe.do
2. request
A)原理
B)作用
(1)获取请求参数
请求行:
getMethod()
getContextPath()
getRequestUri()
getRequestUrl()
请求头:
getHeader()
请求参数:
getParameter()
getParameterValues()
getParameterMap()
设置编码:
setCharacterEncoding()
(2)请求转发
request.getRequestDispatcher("路径").forward(request,response)
特点:
1.地址栏不发生改变
2.只能访问服务器内部资源(包括WEB-INF)
3.只有一次请求
4.在request域中数据共享
注意: WEB-INF只能通过请求转发访问
(3)域对象进行共享数据
request.getAttribute();
request.setAttribute();
request.removeAttribute();
(4)获取ServletContext
request.getServletContext();
C)请求的协议格式
D)请求头
content-type 提交数据的格式
user-agent 判断浏览器版本
referer 防盗链
E)解决中文乱码问题
(1)tomcat8之后get请求不需要设置
post请求设置request.setCharacterEncoding("utf-8");
3.response
访问服务器时创建,响应后销毁
A)原理
B)作用
(1)回写数据
(2)重定向跳转页面
response.sendRedirect()
1.两次请求
2.地址栏改变
3.访问外部和服务器内部资源(不能访问/WEB-INF下的资源)
4.不能在request域中数据共享
(3)响应的协议格式
(4)响应头
Content-Type -设置编码集
Content-Disposition -下载方式
C)乱码问题
response.setContentType("text/html;charset=utf-8")
|
|