我想用Filter进行身份验证,只有合法的登录用户才能访问某些资源。
我有一个admin目录,下面有许多jsp文件,我想除了login.jsp以外,访问其他的页面都要通过过滤器的验证,但是配置上遇到了写问题。比如写如下的配置文:
<filter-mapping>
    <filter-name>AdminFilter</filter-name>
    <url-pattern>/admin/*</url-pattern>
</filter-mapping>
那么admin目录下所有的文件都将在访问前被过滤器拦截,包括login.jsp。
我想问的就是有没有办法用正则表达式配置除了login.jsp,admin目录下所有jsp页面都被拦截。就像ant中<exclude>的排除某些文件。

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【Young_suse】截止到2008-07-26 11:38:07的历史汇总数据(不包括此帖):
    发帖的总数量:5                        发帖的总分数:60                       每贴平均分数:12                       
    回帖的总数量:21                       得分贴总数量:2                        回帖的得分率:9%                       
    结贴的总数量:5                        结贴的总分数:60                       
    无满意结贴数:0                        无满意结贴分:0                        
    未结的帖子数:0                        未结的总分数:0                        
    结贴的百分比:100.00%               结分的百分比:100.00%                  
    无满意结贴率:0.00  %               无满意结分率:0.00  %                  
    敬礼!
      

  2.   

    用 <url-pattern></url-pattern> 不行,可以自己在 Filter 里用正则表达式进行二次过滤,过滤的正则表达式可以通过:<filter>
    <filter-name>LoginFilter</filter-name>
    <filter-class>com.test.LoginFilter</filter-class>
    <init-param>
    <param-name>UrlRegx</param-name>
    <param-value><!--你的正则表达式--></param-value>
    </init-param>
    </filter>配置,然后在 Filter 里通过 getInitParameter() 读取。