Servlet目录
文章目录
前言
学习本文需要掌握tomcat如何部署项目,运行原理和目录结构等前置知识。
一、servlet原理
1.1 servlet继承结构
HttpServlet -> GenericServlet -> Servlet, ServletConfig(配置对象 ), Serializable
1.2 servlet生命周期
new init service destory
1.3 路径匹配
urlpattern 精确匹配 /servlet.do
扩展名匹配 .do
路径匹配 /a/b.do
任意匹配 / (不包含jsp)
全部匹配 / (包含jsp)
匹配优先级 :精确路径 > 最长路径 >扩展名
二、会话管理
2.1 HTTP协议无状态
http每一次请求都是单独的请求,如果上次请求出了问题,应该继续处理,但是由于无状态的原因,应该下次在发送的请求来处理,但是也只是自己的设想,http可不会按照你的来,那么接下来的cookie和session就能很好的解决这个问题。
cookie客户端 / session服务器端的会话管理。
2.2 cookie/session解决问题的原理
cookie客户端 / session服务器 解决HTTP协议无状态的问题
原理是客户端第一次发送请求时,服务器端接收到会创建一个cookie和session,将cookie和JSEESIONID一起发送给客户端,如果客户端在发送请求,会判断JSEESIONID和服务器端自己的JSESSIONID是否一致,来判断是否为同一请求。
2.3 cookie不能处理中文的办法
使用URLencode将需要传输的中文进行编码
String name = "胡总";
URLencode.encode(name,"UTF-8");
三、请求转发和重定向
3.1 请求转发的两个方法 forward / include
forward和include都是服务器端的行为,可理解为客户端发送请求的servlet无法处理,由服务器选择可以处理的servlet来处理此次请求并响应。
forward是全权交给另一个servlet处理
include则是servlet1包含请求转发的servlet2的输出,两个servlet的输出一起响应给客户端。
3.2 重定向 sendRedirect
重定向是客户端的行为,服务器告诉客户端浏览器重新发起一个新的请求,从而访问不同的资源。重定向后,请求对象和响应对象都发生了变化,客户端浏览器的地址栏中显示的是新的URL地址。
四、三个域对象
解决在web应用中的数据传递问题,有效范围如下:
request 一次请求 – HttpServletRequest
session 一次会话 – HttpSession
application 整个应用 – ServletContext
总结
servlet的知识其实就是为了接下来JavaEE,学习框架知识的铺垫和积累。如果你没学过,那我建议你是学一遍,懂概念,不需要真的上手。