黑马程序员技术交流社区

标题: 【石家庄校区】Listner& Filter学习笔记 [打印本页]

作者: cyahua    时间: 2018-6-16 11:12
标题: 【石家庄校区】Listner& Filter学习笔记
本帖最后由 小石姐姐 于 2018-6-21 14:23 编辑

Listner& Filter学习笔记

监听器Listener   
[Java] 纯文本查看 复制代码
public class MyServletContextListener implements ServletContextListener{
   
    @Override
    public void contextInitialized(ServletContextEvent sce) {
        System.out.println("ServletContext对象被创建了...");
    }
   
    @Override
    public void contextDestroyed(ServletContextEvent sce) {
        System.out.println("ServletContext对象被销毁了...");
    }
   
   }
   配置
   <web-app>
   <listener>
     <listener-class>
      life.listeners.MyServletContextListener
     </listener-class>
   </listener>
   <servlet/>
   <servlet-mapping/>
   </web-app>
过滤器 Filter
[Java] 纯文本查看 复制代码
需要创建一个Filter实现类,继承javax.servlet.Filter接口。且必须实现这个接口的三个方法.
filter和servlet除了filterchain这一点不同之外,servlet还有几个封装的实现类可以使用,如HttpServlet和GenericServlet,而filter却没有它具体的实现类和接口,需要我们自己封装一个类似于HttpFilter的实现类供我们以后使用.
配置:
    <filter>
        <filter-name>过滤器名称</filter-name>
        <filter-class>过滤器完整类名</filter-class>
        <init-param>
            <description>描述信息,可以省略</description>
            <param-name>参数名称</param-name>
            <param-value>参数值</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>过滤器名称</filter-name>
        <url-pattern>URL</url-pattern>
        <dispatcher>[REQUEST|INCLUDE|FORWARD|ERROR]</dispatcher>
    </filter-mapping>

类型
作用
REQUEST用户直接访问页面时,web容器会调用该过滤器
FORWARD目标资源是通过RequestDispatcher的forward方法访问时,过滤器将被调用
INCLUDE目标资源是通过RequestDispatcher的include方法调用时,过滤器将被调用
ERROR目标资源是通过声明式异常处理机制调用时,过滤器被将被调用
ASYNC(Servlet3.0新增加)支持异步处理








欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2