Servlet

本文详细介绍了Servlet的工作原理,包括Servlet的生命周期方法、相关类以及监听器和过滤器的使用。此外,还探讨了Web.xml配置、Servlet版本与JDK版本的对应关系,以及HTTP、Servlet和Web容器的关系。
摘要由CSDN通过智能技术生成

一、3w

  1. Why:生成动态Web内容
  2. What:Servlet是用Java编写的服务器端程序,Servlet是处理每个HTTP请求的最小单元
  3. How:WEB容器管控Servlet

二、Servlet 的工作原理

  1. Servlet接口定义了Servlet与servlet容器之间的契约。这个契约是:Servlet容器将Servlet类载入内存,并产生Servlet实例和调用它具体的方法。但是要注意的是,在一个应用程序中,每种Servlet类型只能有一个实例。
  2. 对于每一个应用程序,Servlet容器还会创建一个ServletContext对象,每个应用程序只有一个ServletContext。每个Servlet对象也都有一个封装Servlet配置的ServletConfig对象。
  3. init( ),service( ),destroy( )是Servlet生命周期的方法。代表了Servlet从“出生”到“工作”再到“死亡 ”的过程
  4. ServletRequset接口 ServletResponse接口。 线程域
  5. ServletConfig接口(属于实例配置) ServletContext对象(全局)

三、Servlet相关类

  1. GenericServlet抽象类:保存servletConfig对象
  2. HttpServlet抽象类:service方法解析HttpServletRequest中的方法参数,并调用以下:doGet,doPost,…。
  3. HttpServletResponse对象:getOutSream()和getWriter()是互斥的。
  4. HttpServletRequest对象:getInputStream、getReader、getParameter在一定的场景是互斥的。

四、监听器Listener

  1. 事件源:被监听的三个域对象 request session servletContext》监听生命周期或者监听属性变化
  2. 监听器的编写步骤:
    a)编写一个监听器类去实现监听器接口
    b)覆盖监听器的方法
    c)需要在web.xml中进行配置
    
  3. 八大监听器
    ①、ServletContextListener
    ②、HttpSessionListener
    ③、ServletRequestListener
    这三个是监听器是对servletContext、request、session这三个域的开启和关闭进行监听。(里面需要实现两个事件:创建和销毁)
    ④、ServletContextAttributeListener
    ⑤、HttpSessionAttributeListener
    ⑥、ServletRequestAttributeListener
    这三个是监听器是对servletContext、request、session这三个域中对象的修改、添加、删除进行监听(里面要实现三个事件修改、添加、删除)。
    ①、HttpSessionBindingListener
    这个是需要先创建一个bean对象类让对象类实现HttpSessionBindingListener接口中的绑定和解绑事件,每当session中存入该对象时候HttpSessionBindingListener的绑定事件就会运行,而每当session中的该对象移除时候解绑事件就会运行。
    ②、HttpSessionActivationListener
    这个也是需要先创建一个bean对象类让对象类实现HttpSessionActivationListener接口中的钝化和活化这两个事件,在实现这个接口同时还得实现Serializable序列化这个接口,这样才能实现钝化后活化。(钝化:就是将session中已经存在的对象从session内存挪到磁盘中,活化:就是将磁盘中的session中的对象挪到内存中,钝化和活化可以运用到网站优化上,当用户长时间登陆网站不进行操作的时候就可以将这个用户的session对象进行钝化)
  4. ServletContextListener在Spring中的应用:监听容器的初始化和销毁 使applicationContext和ServletContext共生死!

五、过滤器Filter

  1. 根据需要检查和修改HttpServletRequest、HttpServletResponse
  2. Filter的生命周期:init>doFilter>destroy。
  3. filter初始化参数的filterConfig对象
  4. 过滤器链——FilterChain:一组过滤器对某些web资源进行拦截,过滤器的执行顺序和声明有关

六、Web.xml

  1. 指定欢迎页面welcome-file-list
  2. 指定错误处理页面,可以通过“异常类型”或“错误码”来指定错误处理页面。error-page

七、Servlet 版本 与 JDK 版本的对照表

  1. Servlet 2.5 Java 5 / JDK 1.5 2005年 9月 新增Java 5支持,尤其是注解支持 Tomcat 6.0.x
  2. Servlet 3.0 Java 6 / JDK 1.6 2009年12月 支持注解配置,可以没有web.xml。改进简易性、可插拔性、安全性、文件上传,支持异步Servlet Tomcat 7.0.x
  3. Servlet 3.1 Java 7 / JDK 1.7 2013年 5月 支持 NIO、WebSocket Tomcat 8.5.x
  4. Servlet 4.0 Java 8 / JDK 1.8 2017年 9月 支持 HTTP/2 Tomcat 9.0.x

八、http》 servlet 》Web容器

  1. SpringBoot支持封装Tomcat、Jetty和Undertow三种web容器
  2. Tomcat 实现包:javax.servlet包》org.apache.catalina包 等等
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值