• Servlet生命周期 、Filter生命周期、Listering(监听器)总结


    Servlet生命周期简述

    (1)加载和实例化 当Servlet容器启动或客户端发送一个请求时,Servlet容器会查找内存中是否存在该Servlet实例,若存在,则直接读取该实例响应请求;如果不存在,就创建一个Servlet实例。

    (2) 初始化 实例化后,Servlet容器将调用Servlet的init()方法进行初始化(一些准备工作或资源预加载工作)。

    (3)服务 初始化后,Servlet处于能响应请求的就绪状态。当接收到客户端请求时,调用service()的方法处理客户端请求,HttpServlet的service()方法会根据不同的请求 转调不同的doXxx()方法。

    (4)销毁 当Servlet容器关闭时,Servlet实例也随时销毁。其间,Servlet容器会调用Servlet 的destroy()方法去判断该Servlet是否应当被释放(或回收资源)

    后面就直接用注解来进行配置

     

    Filter生命周期 

    当服务器启动,就会创建Filter对象(随着Tomcat的启动而创建),并调用init()方法,只调用一次

    当访问资源时,路径与filter拦截路径匹配,会执行Filter中的doFilter方法,这个方法是真正拦截操作的方法。

    当服务器关闭时,会调用Filter中的destroy方法来进行销毁操作。

    监听器

    Listering (监听)  其实就是跟我们的闹钟一样,在上面时候自动触发,

    2个监听

    第一个监听是普通类实现httpSessionBingDinglistering

    它有2个方法,第一个是当我们的对象保存session里面,即,req.getSession.setAttribute是触发valueBound方法。valueUnBound方法也就是当前对象不在session时调用这个方法,第一种是会话失效是失效,,第二种方法是调用remove方法时失效,这个方法不用注解配置,因为他本身不用在web.xml里配置

     

    第二个监听器:实现httpSessionlistering,他同样有2个方法,第一个是当你的session创建的时候触发sessonCreate方法,也就是打开网页的时候就会触发,第二个是当你的session销毁的时候调用sessionDestroy方法,开发之中一般用第二种监听器,它的局限性更好,只要一个注解就解决@WebListen

  • 相关阅读:
    leetcode-594-Longest Harmonious Subsequence
    leetcode-581-Shortest Unsorted Continuous Subarray
    leetcode-575-Distribute Candies(计算一个数组中元素的种类的快速方法)
    leetcode-566-Reshape the Matrix
    leetcode-561-Array Partition I
    leetcode-551-Student Attendance Record I(判断是否出现连续几个相同字符)
    Java之CheckedException
    Java异常机制
    Zookeeper分布式协调即分布式锁机制
    Spring中@Value用法
  • 原文地址:https://www.cnblogs.com/binghuaZhang/p/10780864.html
Copyright © 2020-2023  润新知