1、servlet


什么是servlet,简单的说下servlet的生命周期。

① 定义:Servlet是JavaWeb的三大组件之一,它属于动态资源。Servlet的作用是处理请求,服务器会把接收到的请求交给Servlet来处理,在Servlet中通常需要:

    l 接收请求数据;

    l 处理请求;

    l 完成响应。

② 生命周期:服务器会在Servlet第一次被访问时创建Servlet,或者是在服务器启动时创建Servlet。如果服务器启动时就创建Servlet,那么还需要在web.xml文件中配置。也就是说默认情况下,Servlet是在第一次被访问时由服务器创建的。而且一个Servlet类型,服务器只创建一个实例对象。在Servlet被创建后,服务器会马上调用Servlet的void init(ServletConfig)方法,这个方法只会被调用一次。

    当服务器每次接收到请求时,都会去调用Servlet的service()方法来处理请求。服务器接收到一次请求,就会调用service() 方法一次,所以service()方法是会被调用多次的。

Servlet通常都是在服务器关闭时Servlet才会离去!在服务器被关闭时,服务器会去销毁Servlet,在销毁Servlet之前服务器会先去调用Servlet的destroy()方法。Servlet生命周期先关的方法均由tomcat容易调用!


2、Filter



Filter?Filter的生命周期

    Filter被称作过滤器或者拦截器,其基本功能就是对Servlet容器调用Servlet的过程进行拦截,从而在Servlet进行响应处理前后实现一些特殊功能或业务上的功能。

    声明周期:  服务器启动的时候加载过滤器的实例,并调用init()方法来初始化实例,每一次请求时都只调用方法doFilter()进行处理,停止服务器时调用destroy()方法,销毁实例。

    Filter的应用

    ①  Filter实现统一全站编码
    ②   细粒度权限控制
    ③   分ip统计网站的访问次数 
    ④   Filter实现页面静态化(详见下图)


3、Listener

的应用



        Listener是Servlet事件监听器,Servlet事件监听器就是一个实现特定接口的Java程序,专门用于监听Web应用程序中ServletContext、HttpSession和ServletRequest等域对象的创建和销毁过程,监听这些域对象属性的修改以及感知绑定到HttpSession域中某个对象的状态。

的应用场景

        ① 统计当前在线人数
        ②  日志监听

        ③  特定要求过滤关键字拦截(域中过滤敏感字符)