zoukankan      html  css  js  c++  java
  • JavaWeb的三大组件之过滤器

    JavaWeb过滤器

    过滤器可以让请求得到目标资源,也可以不让请求达到!
             * 过滤器有拦截请求的能力,且过滤器是单例模式!

    过滤器的实现方法:

    1. 写一个类实现Filter接口(注意导入的是:javax.servlet.Filter接口)
    2. 在web.xml中进行配置,以下为具体配置格式

      <filter>
      	<filter-name>helloFilter</filter-name>
      	<filter-class>包名.类名</filter-class>
      </filter>
      <filter-mapping>
      	<filter-name>helloFilter</filter-name>
      	<url-pattern>/要过滤的资源(/*时为过滤所有资源)</url-pattern>
      </filter-mapping>
    

    Filter接口的方法:

                  void init(FilterConfig):创建Filter后执行,在服务器启动时创建

                        * FilterConfig参数-->与ServletConfig相似
                                   * 获取初始化参数:getInitParameter()
                                   * 获取过滤器名称:getFilterName()
                                   * 获取appliction:getServletContext()
                  void destory():过滤器销毁之前执行!在服务器关闭时销毁
                  void doFilter(ServletRequest,ServletResponse,FilterChain):每次过滤时都会执行,判断是否通过过滤器

                          * FilterChain参数
                                    * doFilter(ServletRequest, ServletResponse):通过当前过滤器,若有多个过滤器则到达下一过滤器。

    过滤器的过滤顺序:根据web.xml的<filter-mapping>的位置从上到下过滤,与过滤资源无关(即与<url-pattern>值无关)。

    过滤器的四种过滤方式:需要在<filter-mapping>里配置以下标签,四种过滤方式可以随意搭配使用来面对不同的情况

      <dispatcher>REQUEST</dispatcher>:过滤请求,没有设置时的默认方式,当设置了其它过滤方式时会

                                                                      使用其它过滤方式,默认过滤方式消失。

     <dispatcher>FORWARD</dispatcher>:过滤转发

     <dispatcher>INCLUDE</dispatcher>:过滤包含

     <dispatcher>ERROR</dispatcher>:   过滤错误

     

  • 相关阅读:
    Java 开发必装的 IntelliJ IDEA 插件
    paoding-rose 之 maven配置
    jetty之maven配置
    paoding rose controller包及文件名命名规则
    PowerMock进行mock测试
    谈谈我的windows服务器运维管理
    谈谈RPC中的异步调用设计
    系统:WSL(win10的子系统Linux)
    信息安全攻防基础
    线性规划计算工具Lingo
  • 原文地址:https://www.cnblogs.com/MrQlyn/p/10236311.html
Copyright © 2011-2022 走看看