日期:2014-05-20  浏览次数:20612 次

关于web.xml中filter设置的一个问题!
各位专家好:
  我的web.xml中有这样一段代码,
<filter>
<filter-name>SessionFilter</filter-name>
<filter-class>cn.telecom.cmpf.framework.filter.SessionFilter</filter-class>
<init-param>
<param-name>freePages</param-name>
<param-value>
/login.do; /logout.do; /pxadmin.do;
/ajax.do;
</param-value>
</init-param>
<init-param>
<param-name>loginPage</param-name>
<param-value>/login.do?method=direct</param-value>
</init-param>
</filter>

<filter-mapping>
<filter-name>SessionFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>

但我不想过滤掉所有的jsp文件,需要某个jsp,如showReport.jsp例外不受限制,该如何配置这段脚本? 谢谢大家了。

------解决方案--------------------
没记错的话,filter是不支持类似于exclude这样的配置的。所以你只能在SessionFilter这个类里面,写死或通过参数配置,将某些特殊的URL忽略掉;从性能角度考虑可以用个Map记录忽略的URL。

另一个建议的做法是,所有JSP不要放在WebContext的跟目录,而是放在如某个:\jsp\目录下;然后那些不需要SessionFilter的放在另一个目录下,如:\login\目录中。那么你的url-pattern就可以修改为\jsp\*.jsp


------解决方案--------------------
楼主可以自己写一个过滤器 然后获取url最后排除自己不需要过滤的url