A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 范斌 初级黑马   /  2019-3-20 13:38  /  777 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


        * 1.概念

                *
生活中的过滤器:净水器,空气净化器,土匪、
                *
web中的过滤器:当访问服务器的资源时,过滤器可以将请求拦截下来,完成一些特殊的功能
                *
过滤器的作用:一般用于完成通用的操作。如:登录验证、统一编码处理、敏感字符过滤...
        *
2.快速入门

                *
1.步骤:

                        *
1.定义一个类,实现接口Filter
                        *
2.复写方法
                        *
3. 配置拦截路径

                                *
1. web.xml
                                *
2. 注解(@WebFilter(urlPatterns))
                *
2. 代码:
                *
        @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("filterDemo1被执行了....");
                *

                *
                //放行
                *
                filterChain.doFilter(servletRequest,servletResponse);   

                *
           
                *
}   
                *
   

                *
            @Override
                *
            public void destroy() {        

                *
            }
                *
        }
        *
3. 过滤器细节:

                *
1.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>
                *
2.过滤器执行流程

                        *
1.执行过滤器
                        *
2.执行放行后的资源(Servlet调用Service里的方法)
                        *
3.回来执行过滤器放行代码下边的代码
                *
3.过滤器生命周期方法

                        *
1.init:在服务器启动后,会创建Filter对象,然后调用init方法。只执行一次,用于加载资源


                        *
2.doFiter:在每一次请求被拦截资源时,会执行。执行多次
                        *
3.destroy:在服务器关闭后,Filter对象被销毁。如果服务器是正常关闭,则会执行destroy方法。只执行一次,用于释放资源

                *
4.过滤器配置详解

                        *
1.拦截路径配置:

                                *
1.具体资源路径配置:/index.jsp 只有访问index.jsp资源时,过滤器才会被执行
                                *
2.拦截目录:/user/* 访问/user下的所有资源时,过滤器都会被执行
                                *
3.后缀名拦截: *.jsp 访问所有后缀名为jsp的资源时,过滤器都会被执行
                                *
4.拦截所有资源:/* 访问所有资源时,过滤器都会被执行
                        *
2.拦截方式配置:资源被访问的方式

                                *
注解配置
                                *
web.xml配置
                *
5.过滤器链(配置多个过滤器)

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马