zoukankan      html  css  js  c++  java
  • Filter的开发和使用

      Filter可认为是Servlet的一种“变种”,它主要用于对用户请求进行预处理,也可以对HTTPServletResponse进行后处理。与Servlet的区别在于:Filter不能直接向用户生成响应。其完成流程为:Filter对用户请求进行预处理,然后将请求交给Servlet进行处理并生成响应,最后Filter再对服务器响应进行后处理。Filter作用如下:

      1、在HttpServletRequest到达Servlet之前,拦截客户的HttpServletRequest;

      2、根据需要检查HttpServletRequest,也可以修改HttpServletRequest头和数据;

      3、在HttpServletResponse到达客户端之前,拦截HttpServletResponse;

      4、根据需要检查的HttpServletResponse,也可以修改HttpServletResponse头和数据;

      创建Filter只需两个步骤:

      1、创建Filter类;

      2、在web.xml中配置Filter;

    创建Filter必须实现javax.servlet.Filter接口,该接口中定义了3个方法:

      void init(FilterConfig config):用于完成Filter初始化。

      void destroy():用于Filter销毁前,完成某些资源回收。

      void doFilter(ServletRequest request, ServletResponse response, FilterChain chain):实现了核心的过滤功能,对请求增加额外处理。

      在doFilter()中,通过chain.doFilter()方法来划分对请求的预处理和对服务器响应的后处理。位于chain.doFilter()之前的代码是预处理,位于chain.doFilter()方法之后的是后处理。

      Filter需配置两部分内容:

      配置Filter名:<filter/>;

      配置Filter拦截URL模式:<filter-mapping/>;

    配置实例如下:

    <!--定义Filter-->
    <filter>
        <!--Filter名字-->
        <filter-name>myFilter</filter-name>
       <!--Filter的实现类-->
        <filter-class>com.MyFilter</filter-class>
       <!--使用init-param配置参数-->
        <init-param>
            <!--定义参数名字-->
            <param-name>encoding</param-name>
            <!--定义参数值-->
            <param-value>GBK</param-value>
        </init-param>
    </filter>
    <!--定义Filter拦截的URL地址-->
    <filter-mapping>
        <!--Filter名字-->
        <filter-name>myFilter</filter-name>
        <!--Filter负责拦截的URL-->
        <url-pattern>/*</url-pattern>
    </filter-mapping>            
  • 相关阅读:
    解决request.getRemoteAddr()获取的值为0:0:0:0:0:0:0:1这个小问题
    百度编辑器
    java程序中输出console的日志到文本
    收集常用的.net开源项目
    Html Agility Pack基础类介绍及运用
    HTML Agility Pack 搭配 ScrapySharp,彻底解除Html解析的痛苦
    HTML WEB 和HTML Agility Pack结合
    HtmlWeb类
    简单方便统一封装的傻瓜式GET/POST库AliasNet正式公布~开源喽~
    HtmlAgilityPack.dll的使用 获取HTMLid
  • 原文地址:https://www.cnblogs.com/runnigwolf/p/5226179.html
Copyright © 2011-2022 走看看