1.Servlet主要类结构
1)Servlet
Servlet:Servlet接口,包括初始化方法init、销毁方法destroy和请求处理方法service,可通过init方法获得ServletConfig实例
GenericServlet:基础Servlet类,对Servlet一些常用的方法做简单的封装
HttpServlet:HTTP协议相关的Servlet类,将服务方法拆分成doGet、doPost、doDelete等
ServletConfig:可通过ServletConfig获得相关的Servlet的配置信息和获得应用全局上下文信息
2)全局环境
ServletContext:ServletContext接口定义了servlet运行环境的信息,通过该对象servlet能够获得log事件,资
源的URL,设置或存储servlet之间通信的变量。对于每个web应用,在每个java虚拟机上有且只有一个ServletContext实例
3)请求
ServletRequest:代表了Web请求的对象,通过该对象可以获取到请求内容、参数、请求客户端相关数据等
HttpServletRequest:除ServletRequest的功能之外,增加一些跟http相关的功能,譬如获取Cookie、Head信息等
ServletResponse:代表了Web响应的对象,通过该对象可以设置响应的内容等
HttpServletResponse:除ServletResponse的功能之外,增加一些跟http相关的功能,譬如Cookie、响应码等
HttpSession:超文本转移协议(HTTP)是无状态的协议,servlet规范中提供了一个简单的HttpSession接口,不需要开发者关心会话跟踪的具体细节,可通过该接口处理会话相关的功能
2.过滤器
过滤器支持在处理请求前通用地处理一些切面功能,譬如日志、安全、数据压缩等
3.事件监听器
1)生命期
ServletContextListener:在Web应用启动和销毁时调用,可以做一些Web应用全局的初始化和清除工作
HttpSessionListener:在会话被创建和销毁时调用,可以做一些Session的统一追踪工作
HttpSessionActivationListener:在Session数据被钝化为持久数据和激活成内存数据时调用
ServletRequestListener:在请求被创建和销毁时调用
2)属性变化
ServletContextAttributeListener:ServletContext的setAttribute和removeAttribute方法被调用后调用
ServletRequestAttributeListener:ServletRequest的setAttribute和removeAttribute方法被调用后调用
HttpSessionAttributeListener:HttpSession的setAttribute和removeAttribute方法被调用后调用
HttpSessionBindingListener:当Session中的数据被绑定或者解除绑定时调用,与HttpSessionAttributeListener的区别在于,可能是由于Session被invalidated或超时导致的数据解除绑定