2、Servlet-ALL

1、servlet接口:

  • GenericServlet和HttpServlet分别是servlet接口的实现,客户端发起的请求会被路由到对应的servlet上,servlet的核心是service方法,
  • service方法会把前端的GET,POST等请求转发到对应的doGet,doPost等方法。
  • 一般来说,一个servlet容器中,只对应1个servlet对象。每个请求都由同一个Servlet对象处理。
    但如果Servlet实现了SingleThreadModel接口,则会WEB容器中存在多个servlet对象。每个servlet对应的一个线程,所以不存在线程安全的问题。
  • servlet的生命周期包括:加载实例化、初始化、处理客户端请求、销毁。 加载实例化主要由web容器完成,而其他的三个阶段则对应的servlet的init,service,destory方法
    web容器不会销毁servlet,会服用servlet.

2、ServletRequest接口(ServletRequest接口的对象只在Servlet的service方法或过滤器的doFilter方法作用域内有效,除非启用了异步处理):

servletRequest接口实现类封装了客户端请求的所有信息,而HttpServletRequest则封装了http请求的所有信息。
servletRequest接口的实现类中实现了以下功能
1)获取HTTP请求头部的方法
2)获取请求路径的方法,如:getContextPath,getServletPath,getPathInfo
3)获取Cookie的方法。
4)获取客户端语言环境的方法,如:getLocale
5)获取客户端编码的方法,如:getCharacterEncoding

3、ServletResponse接口(只在Servlet的service方法或过滤器的doFilter方法作用域内有效,除非启用了异步处理):

4、ServletContext接口:定义了运行所有Servlet的web应用的视图,一个web应用只有一个ServletContext对象,提供的内容包括

1)某个WEB应用的Servlet全局存储空间,某WEB应用对应的所有Servlet共有的各种资源和功能的访问。
2)获取WEB应用部署配置文件的方法
3)添加servlet到servletContext里面的方法
4)添加Filter到servletContext里面的方法
5)添加listen到servletContext里面的方法
6)全局的属性保存和获取功能
7)访问web应用静态内容的方法 如:访问/WEB-INF/lib 或 META-INF/resources 下的文件

5、Filter接口:

当WEB容器启动的时候,就会初始化Filter接口,当请求调用的时候,获取第一个过滤器并调用doFilter方法,接着传入ServletRequest对象、ServletResponse对象和过滤器链(FilterChain),
doFilter负责过滤器链中下一个实体的doFilter方法调用
Filter接口允许对请求和相应做统一处理

6、请求分发器(DispaterServlet):

请求分发器负责把请求转发给另一个servlet处理,或者包含另一个servlet的返回结果。用户可通过ServletContext获取DispaterServlet
请求分发器有2个方法:
1)include:是将目标servlet包含到当前servlet中,主控制权在当前servlet中
2)forward:是将当前servlet的请求转移到目标servlet中,主控制权在目标servlet中

7、web应用

当一个WEB应用部署到容器中时,在WEB应用程序开始处理客户端请求之前,必须按照下述步骤顺序执行
1)实例化部署web.xml中标识的每个事件的监听实例
2)对于已实例化且实现了ServletContextListener接口的监听实例,调用contextInitialized()方法
3)实例化部署web.xml中的的每一个实例,并调用每个过滤器实例的init() 方法
4)根据load-on-startup元素值定义的顺序,包含元素的元素为每个servlet实例化一个实例,并调用每个servlet实例的init()方法

你可能感兴趣的:(tomcat)