过滤器与监听器

Filter
1.过滤器(拦截器),如生活中净水器.....
2.在web中的过滤器,当访问服务器的资源的时候,过滤器可以将对应的请求地址
进行拦截下来,来进行完成一些特殊的功能
3.一般情况下,如功能,登陆验证,字符编码格式的统一.....
入门:
public class Test_Filter01 implements Filter{
@Override
public void init(FilterConfig filterConfig) throws ServletException {
System.out.println("初始化的方法--只会进行执行一次");
}

        @Override
        public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse,
                             FilterChain filterChain) throws IOException, ServletException {
            System.out.println("执行业务逻辑的");
            //进行放行的,不进行过滤的
            filterChain.doFilter(servletRequest,servletResponse);
        }

        @Override
        public void destroy() {
            System.out.println("进行销毁的");
        }
    }
之前的版本
   需要在web.xml文件进行配置
            <filter>
                <filter-name>myIsFilter</filter-name>
                <filter-class>com.java.filter.Test_Filter01</filter-class>
            </filter>
         <filter-mapping>
             <filter-name>myIsFilter</filter-name>
             <!--拦截所有的-->
             <url-pattern>/*</url-pattern>
         </filter-mapping>

现在都是使用注解版的,
@WebFilter("/*")
public class Test_Filter01 implements Filter{

    }
    参数的描述
     * public enum DispatcherType {
     *     FORWARD,   转发访问的资源
     *     INCLUDE,  包含了访问资源
     *     REQUEST,  默认的值,浏览器直接进行请求的资源
     *     ASYNC,  异步访问的资源
     *     ERROR;  错误访问的资源
     *   可以在该注解中进行配置多个
     *   dispatcherTypes ={DispatcherType.ASYNC,DispatcherType.ERROR}
 --------------------------

监听器
对某个事件进行监听
需要3个必要的机制
事件 事件源(事件发生的地方) 监听器(创建的一个监听对象)
入门
创建一个类实现监听器
public class Test_Listtener implements ServletContextListener {
@Override
public void contextInitialized(ServletContextEvent servletContextEvent) {
System.out.println("ServletContext对象,创建后会进行调用的方法,初始化监听器");

     }

     @Override
     public void contextDestroyed(ServletContextEvent servletContextEvent) {
         System.out.println("ServletContext对象,被销毁之后,会调动的方法");
     }
 }

在来进行配置,之前的方式
web.xml中

<listener>
<listener-class>com.java.listener.Test_Listtener</listener-class>
</listener>

<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/appliactionContext.xml</param-value>
</context-param>
可以使用注解的方式类进行配置
@WebListener
public class Test_Listtener implements ServletContextListener {


全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务