Servlet之过滤器filter



一、过滤器Filter概述(灰常重要)
            1、过滤器就是一个保安。
            2、可以对请求和响应进行拦截。


二、编写过滤的步骤
            1、编写一个类,实现javax.servlet.Filter接口,这样的类一般称之为过滤器类
                      public class FilterDemo1 implements Filter {
                              // 对于用户每一次的访问,都会调用该方法
                              public void doFilter(ServletRequest request, ServletResponse response,
                                  FilterChain chain) throws IOException, ServletException {
                                      // 拦截前
                                      System.out.println("FilterDemo1拦截了该资源前");
                                      // 放行: 让目标资源执行
                                      chain.doFilter(request, response);
                                      // 拦截后
                                      System.out.println("FilterDemo1拦截了该资源后");
                              }
                              public void init(FilterConfig filterConfig) throws ServletException { }
                              public void destroy() { }
                      }
            2、在web.xml中进行配置,要拦截哪些资源。
                        <filter>
                              <filter-name>FilterDemo1</filter-name>
                              <filter-class>cn.itcast.filter.FilterDemo1</filter-class>
                        </filter>
                        <filter-mapping>
                              <filter-name>FilterDemo1</filter-name>
                              <url-pattern>/*</url-pattern>
                        </filter-mapping>
 
 
三、过滤器的执行过程
              多个过滤器的拦截顺序是按照web.xml中filter-mapping元素的出现顺序进行拦截的。             
              过滤器只会被初始化一次,应用被加载时就完成了初始化。
              

四、过滤器简单案例:
            1.  统一全站字符编码过滤器
            2.  禁止浏览器缓存所有动态页面(servlet  jsp)的过滤器
            3.  控制静态资源(html,css,js)的缓存时间的过滤器
            4.  实现用户自动登录的过滤器




五、过滤器的高级配置  (访问WEB资源的各种方式的限制拦截情况)
           <filter-mapping>
                  <filter-name>FilterDemo3</filter-name>
                  <url-pattern>/*</url-pattern>
                  <dispatcher>REQUEST</dispatcher> 默认情况。如果写了另外一种情况,默认的就没有了
                  <dispatcher>FORWARD</dispatcher>
                  <dispatcher>INCLUDE</dispatcher>
                  <dispatcher>ERROR</dispatcher>
            </filter-mapping>
            
           
            
六、过滤器高级案例:
              6.1   全站中文乱码过滤器(post和get方式都有效)
              6.2   脏话过滤器
              6.3   转义HTML标签
              6.4   全站Gzip压缩(相当有难度)
              
七、  权限系统





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值