Filter--过滤器&&Listener--监听器

2019-06-07  本文已影响0人  于无声处写写写

Fileter-过滤器(掌握)

编写过滤器的步骤

package cn.itcast.web.filter;

import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import java.io.IOException;

/**
 * @ClassName FilterDemo1
 * @Description TODO
 * @Author 王海峰
 * @Date 2019/6/7 10:13
 * @Version 1.0
 */

@WebFilter("/*")//访问所有资源都会执行该过滤器

public class FilterDemo1 implements Filter {
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {

    }

    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {

        System.out.println("fileterDemo1被执行了");
        //放行
        filterChain.doFilter(servletRequest,servletResponse);
    }

    @Override
    public void destroy() {

    }
}

过滤器细节

web.xml配置

    <filter>
        <filter-name>demo1</filter-name>
        <filter-class>cn.itcast.web.filter.FilterDemo1</filter-class>

    </filter>
    <filter-mapping>
        <filter-name>demo1</filter-name>
///拦截路径
        <url-pattern>/*</url-pattern>
    </filter-mapping>

过滤器执行流程

过滤器生命周期方法

过滤器配置详解

拦截路径的配置

拦截方式的配置

指的是资源被访问的方式:例如直接发送请求、转发访问等方式

注解配置

设置dispatcherTypes属性:REQUEST(默认值,浏览器直接请求资源)、FORWARD(转发访问资源)、INCLUDE(了解)、ERROR(错误跳转资源)、ASYNC(异步访问)

web.xml配置

设置<dispatcher></dispatcher>标签即可

过滤器链(配置多个过滤器)

执行顺序

如果有两个过滤器,过滤1和过滤2;

过滤器先后顺序

注解配置:按照类名的字符串比较规则比较,值小的先执行

如AFilter和BFilter,AFilter先执行

web.xml配置:

谁定义在上面谁先执行

Listener-监听器(了解)

事件监听机制


举例

步骤

上一篇 下一篇

猜你喜欢

热点阅读