首页 > 编程语言 > 详细

javaweb过滤器

时间:2020-09-02 13:04:45      阅读:30      评论:0      收藏:0      [点我收藏+]

 一、filter

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

/*
一、Filter
    1、实现Filter接口
    2、配置:
        注解方式:@WebFilter(String)
        web.xml方式:
            <filter>
                <filter-name>FirstFilter</filter-name>
                <filter-class>filter.FirstFilter</filter-class>
            </filter>
            <filter-mapping>
                <filter-name>FirstFilter</filter-name>
                <url-pattern>/*</url-pattern>
            </filter-mapping>
    3、执行过程:
        1、执行过滤器方法
        2、执行放行后的资源(过滤器链对象.doFilter(请求对象, 响应对象))
        3、继续执行过滤器方法
    4、生命周期:
        1、init:启动tomcat时执行该方法
        2、doFilter:每当请求被过滤规则匹配时执行该方法
        3、destroy:正常关闭tomcat时执行该方法
    5、过滤器配置详解
        * 拦截路径配置
            1、具体资源路径:/index.jsp 只有访问index.jsp资源时,过滤器才会被执行
            2、拦截目录:/user/* 访问/user下的所有资源时,过滤器都会被执行
            3、后缀名拦截:*.jsp 访问所有后缀名为jsp资源时,过滤器都会被执行
            4、拦截所有资源:/* 访问所有资源时,过滤器都会被执行
        * 拦截方式配置
            1、注解配置(设置dispatcherTypes属性):
                * REQUEST:默认值。浏览器直接请求资源
                * FORWARD:转发访问资源
                * INCLUDE:包含访问资源
                * ERROR:错误跳转资源
                * ASYNC:异步访问资源
            2、web.xml配置:
                <filter-mapping>
                    <dispatcher></dispatcher>
                </filter-mapping>
    6、过滤器链(配置多个过滤器)
        * 执行顺序:
            1、执行过滤器1(doFilter前)
            2、执行过滤器2(doFilter前)
            3、执行资源
            3、执行过滤器2(doFilter后)
            4、执行过滤器1(doFilter后)
        * 过滤器先后顺序问题:
            1、注解配置:按照类名的字符串比较规则比较,值小的先执行
                * 如:AFilter和BFilter,AFilter就先执行了
            2、web.xml配置:<filter-mapping>谁定义在上边,谁先执行
 */
@WebFilter("/*")//定义需要过滤的资源名称规则
public class FirstFilter 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("执行filter方法");
        //放行
        filterChain.doFilter(servletRequest, servletResponse);
        System.out.println("继续执行filter方法");
    }

    @Override
    public void destroy() {

    }
}

 

二、listener

javaweb过滤器

原文:https://www.cnblogs.com/linding/p/13600981.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!