• web.xml filter配置


    filter介绍:

    filter主要用于对用户请求request进行预处理,和对Response进行后处理,是个典型的处理链。

    详细解析起来就是:Filter对用户请求进行预处理,接着将请求HttpServletRequest交给Servlet进行处理并生成响应,最后Filter再对服务器响应HttpServletResponse进行后处理。

    其实Filter也可以看做是Servlet的加强版,Filter与Servlet具有完全相同的生命周期,且Filter也可以通过<init-param>来配置初始化参数,获取Filter的初始化参数则使用FilterConfig的getInitParameter()。

    Filter可负责拦截多个请求或响应;一个请求或响应也可被多个Filter拦截。

    常用场合:

    (1)认证Filter

    (2)日志和审核Filter

    (3)图片转换Filter

    (4)数据压缩Filter

    (5)密码Filter

    (6)令牌Filter

    (7)触发资源访问事件的Filter

    (8)XSLT Filter

    (9)媒体类型链Filter

    如何创建Filter?

    类似于servlet,需两步

    第一步:创建Filter处理类(一般我们都用现有的)

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

    (1) void init(FilterConfig config):用于Filter的初始化。FilteConfig用于访问Filter的配置信息。

    (2) void destroy():Filter销毁前的操作,例如完成某些资源的回收

    (3) void doFilter(ServletRequest request,ServletResponse response,FilterChain chain):

    实现过滤功能的核心方法,实现对请求request进行预处理,也可以实现对服务器响应response进行后处理---它们的分界线为是否调用了chain.doFilter(request,response),执行该方法之前,即对用户

    请求request进行预处理,执行该方法之后,即对服务器响应response进行后处理。

    第二步:Web.xml文件中配置Filter

    Filter配置与Servlet的配置非常相似,区别在于Servlet通常只配置一个URL,而Filter可以同时配置多个请求的URL。配置Filter有两种方式:

    (1). 在Filter类中通过Annotation进行配置。

    (2). 在web.xml文件中通过配置文件进行配置。

    这里我们使用web.xml这种配置方式,下面重点介绍<filter>内包含的一些元素。

    (1).<filter-name>用来定义过滤器的名称,该名称在整个程序中都必须唯一。

    (2).<filter-class>元素指定过滤器类的完全限定的名称,即Filter的实现类

    (3). <init-param>为Filter配置参数,与<context-param>具有相同的元素描述符<param-name>和<param-value>。

    (4). <filter-mapping>元素用来声明Web应用中的过滤器映射,过滤器被映射到一个servlet或一个URL 模式。这个过滤器的<filter>和<filter-mapping>必须具有相同的<filter-name>,指定该Filter所拦截的URL。过滤是按照部署描述符的<filter-mapping>出现的顺序执行的。

  • 相关阅读:
    Mysql 命令行连接
    linux下安装MongoDB数据库
    SVN 提交常见报错及解决方案
    解决 SVN Skipped 'xxx' -- Node remains in conflict
    linux svn 切换用户
    SQL基础语法
    yml
    搭建笔记(1)
    文件上传MultipartFile
    18.线程池
  • 原文地址:https://www.cnblogs.com/yanze/p/10383991.html
Copyright © 2020-2023  润新知