zoukankan      html  css  js  c++  java
  • 过滤器

    过滤器

    过滤器:在客客户端访问目标资源之前,进行拦截的一个中间组件

    作用:对客户端的请求和服务器端相响应的类容进行修改、拦截

    过滤器链:多个过滤器针对同一个请求或响应生效。

    请求过滤1 2 3;响应过滤 3 2 1

    1 2 3 (过滤器链)的顺序与(web.xml文件中映射的先后||使用注解的全类名(包括包名)的字母先后顺序)有关 / 推荐在.xml文件中书写注册映射,不推荐使用注解

    过滤器的书写 / filter

    //1.开发过滤器需要实现 javax.servlet.Filter接口
        public class FontFilter implements Filter {
            
            //过滤器初始化方法
            @Override
            public void init(FilterConfig filterConfig) throws ServletException {}
    
            //过滤处理的方法
            @Override
            public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
            
                filterChain.doFilter(servletRequest,servletResponse);
                //对请求完成验证、处理后一定要放行,不然请求会直接返回
                HttpSesion sesion = ((HttpServletRequest)servletRequest).getSession();
                //在过滤器中需要把请求对象,响应对象转化为http下的响应与请求,才能获取对应sesion
            }
            
            //过滤器销毁的方法
            @Override
            public void destroy() {}
        }
    <!--2.注册和映射和servlet映射相似-->
        <!--注册-->
        <filter>
            <filter-name>过滤器类名</filter-name>
            <filter-class>过滤器类的全路径</filter-class>
        </filter>
    
        <!--映射-->
        <filter-mapping>
            <filter-name>过滤器类名</filter-name>
            <url-pattern>过滤路径(/* : 表示所有路径)</url-pattern>
        </filter-mapping>
        <!--注册一次,映射多次。与servlet相似-->
    
    <!--或者使用注解@webFilter(name="名字",value="路径")-->

    过滤器-请求转发

    过滤器默认只对请求有作用,对请求转发无作用

    <!--如果需要对请求转发也进行过滤,需要在web.html中进行配置-->
    <filter-mapping>
        <filter-name>过滤器类名</filter-name>
        <url-pattern>/过滤地址</url-pattern>
        <!--配置转发过滤-->
        <dispatcher>FORWARD</dispatcher>
            <!--REQUEST(默认) : 只对请求过滤,不过滤转发-->
            <!--FORWARD : 只过转发,不过滤请求->
    </filter-mapping>    

    其他

    1. 路径映射:在请求的路径前加上一层,在后台的处理可以对一类路径进行处理

      路径: /vip/one /vip/two 处理:/vip/*

  • 相关阅读:
    StringGrid 实例3: 本例功能: 1、修改 TStringGrid的默认宽与高; 2、添加行; 3、确认当前单元并赋值.
    StringGrid 实例2:1、获取 StringGrid 的行数、列数; 2、给单元赋值.
    StringGrid 实例1:初始化StirngGrid的首行和首列
    stringgrid事件大全
    firemonkey中stringgrid属性大全
    DELPHI声明一个指针变量,什么时候需要分配内存,什么时候不需要分配内存?
    CoolTrayIcon4.0
    Delphi七个版本
    基础
    按钮打开链接,按钮click代码
  • 原文地址:https://www.cnblogs.com/-Archenemy-/p/12781585.html
Copyright © 2011-2022 走看看