zoukankan      html  css  js  c++  java
  • JAVAEE filter总结

    1.  为什么需要filter?

    filter相当于客户端和服务器端之间的一扇门,就像保安一样。作用:比如说设置字符集和权限控制等等。

    2.  细节; 

          * . 只能对post请求起作用

          *  .可以使用多种匹配模式:

                  *.jsp (*.后面带后缀名)           /servlet/* (某个路径下的所有请求)     /* (匹配所有)

          *  注意:当客户端发出请求到服务器端才会被拦截(假如从servlet转发到另一个jsp页面,这个时候不会被拦截)

    3. java代码:

    package com.huxin.filter;
    
    import java.io.IOException;
    import javax.servlet.*;
    public class SetCharacterEncodingFilter implements Filter {
            private String encoding ="";
            public void destroy() {}
            public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse,FilterChain filterChain) throws IOException, ServletException {
    	        servletRequest.setCharacterEncoding(encoding);
    	        filterChain.doFilter(servletRequest, servletResponse);
            }
            public void init(FilterConfig filterConfig) throws ServletException {
              this.encoding =  filterConfig.getInitParameter("encoding");
            }
    }


     

       <filter>
              <filter-name>SetCharacterEncodingFilter</filter-name>
              <filter-class>com.huxin.filter.SetCharacterEncodingFilter</filter-class>
            <init-param>
               <param-name>encoding</param-name>
               <param-value>utf-8</param-value>
            </init-param>
       </filter>
       <filter-mapping>
             <filter-name>SetCharacterEncodingFilter </filter-name>
             <url-pattern>/*</url-pattern>
       </filter-mapping>


    关于filter的生命周期问题:

    当tomcat容器启动的时候,会加载这个filter,并且调用init()方法,给encoding赋初值。当生命周期结束,就调用destroy()的方法。

     原理猜想:

      应该也是一个递归实现的,类似于struts2的拦截器。

  • 相关阅读:
    stress工具使用指南和结果分析
    copy.c实现
    sysbench测试阿里云CPU
    sysbench测试阿里云ECS云磁盘的IOPS,吞吐量
    iostat详解
    sysbench_fileio.sh
    rm -f /var/lib/rpm/__db*;rpm --rebuilddb
    HeadFirst 13 (包装器, 过滤器) not Finish
    基于Linux的oracle数据库管理 part5( linux启动关闭 自动启动关闭 oracle )
    基于Linux的oracle数据库管理 part4( shell管理 上 )
  • 原文地址:https://www.cnblogs.com/snake-hand/p/3177833.html
Copyright © 2011-2022 走看看