【问题标题】:How to make Filter applicable only to a Module如何使过滤器仅适用于模块
【发布时间】:2011-08-22 07:22:44
【问题描述】:

我的应用程序中有各种模块,例如 Authentication 、 Tickets 、 Reports ---等。 我只想将过滤器应用于 Authentication Module 而不是任何其他 Modules 。 我写了一个身份验证过滤器,我的问题是,我怎样才能应用这个仅适用于身份验证模块的身份验证过滤器。

<filter>
   <filter-name>AuthenFilter</filter-name>
   <filter-class>AuthenFilter</filter-class>
   <init-param>
      <param-name>test-param</param-name>
      <param-value>Initialization Paramter</param-value>
   </init-param>
</filter>


<filter-mapping>
   <filter-name>AuthenFilter</filter-name>
   <url-pattern>/*</url-pattern>
</filter-mapping>

url-pattern 标签下应该有什么,以便它只适用于 AuthenFilter 模块

【问题讨论】:

    标签: servlets servlet-filters


    【解决方案1】:

    您应该将过滤器映射到特定的 URI,如下所示:

    <filter-mapping>
       <filter-name>AuthenFilter</filter-name>
       <url-pattern>/modules/login</url-pattern>
    </filter-mapping>
    

    <filter-mapping>
       <filter-name>AuthenFilter</filter-name>
       <url-pattern>/modules/authentication/*</url-pattern>
    </filter-mapping>
    

    【讨论】:

    • 所以你的意思是说所有与登录相关的jsp都应该保存在登录文件夹下?我们还需要在 /modules/login 文件夹下保留什么? servlet 是否也应该保存在 servlets 下?
    • 您也可以在过滤器中检查请求的URI,对不相关的资源无效。
    猜你喜欢
    • 2017-10-11
    • 1970-01-01
    • 2018-11-12
    • 2016-06-14
    • 2020-02-06
    • 2014-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多