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的拦截器。

  • 相关阅读:
    2、react-生命周期1※※※
    4.vue class 绑定- model基础应用
    1.react的基础
    Leetcode 5429 数组中的 k 个最强值
    leetcode 21.合并两个有序链表(迭代)
    【Postman请求无响应】Can not get any response
    【PageHelper】插件不生效的原因及解决办法
    【fasterxml.jackson】字段(反)序列号问题Access.WRITE_ONLY
    【SpringCloud-Maven】依赖版本比对
    【Charles】抓包工具使用
  • 原文地址:https://www.cnblogs.com/snake-hand/p/3177833.html
Copyright © 2011-2022 走看看