解决struts2过滤器冲突的简单方法
2015-07-15 17:00
441 查看
struts2使用FilterDispatcher进行url过滤,默认是所有的url都过滤,但是项目中有些url是不想用struts2进行过滤的,网上搜了不少方法
只让过滤器对加有.action后缀的路径有效,如果需要拦截.jsp,加上*.jsp就行了。
但是这样如果有无后缀名的url(如/demo/)就不能过滤了
改为struts.action.extension=action,do,jsp,
但我改了之后发现根本没效果,不知为何
这种方法试验成功
source:http://www.blogjava.net/wkkyo/archive/2010/10/15/335219.html
1.修改web.xml文件
<filter-mapping> <filter-name>struts2</filter-name> <url-pattern>*.action</url-pattern> </filter-mapping>
只让过滤器对加有.action后缀的路径有效,如果需要拦截.jsp,加上*.jsp就行了。
但是这样如果有无后缀名的url(如/demo/)就不能过滤了
2.修改struts2核心jar中的default.properties文件
把struts.action.extension=action,,改为struts.action.extension=action,do,jsp,
但我改了之后发现根本没效果,不知为何
3.自定义一个继承StrutsPrepareAndExecuteFilter的过滤器,将配置换成自己自定义的过滤器。(推荐此法)
public class ExtendStrutsFilter extends StrutsPrepareAndExecuteFilter { @Override public void doFilter(ServletRequest req, ServletResponse res,FilterChain chain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) req; //不过滤的url,可以不断添加,如fck可用/fckeditor/editor/filemanager/connectors/fileupload,下面的是flex if ("/fpms/messagebroker/amf".equals(request.getRequestURI())) { //System.out.println("使用自定义的过滤器"); chain.doFilter(req, res); }else{ //System.out.println("使用默认的过滤器"); super.doFilter(req, res, chain); } } }
4. 修改web.xml
<!-- sturts2过滤器 --> <filter> <filter-name>struts2</filter-name> <!-- 改为自己的过滤器 --> <filter-class> com.filter.ExtendStrutsFilter </filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
这种方法试验成功
source:http://www.blogjava.net/wkkyo/archive/2010/10/15/335219.html
相关文章推荐
- eclipse clean up与formatter的区别
- eclipse Package, Source folder, folder认识
- 简述上转型对象和接口回调
- Java ArrayList、Vector、LinkedList 异同
- java写的控制台万年历
- java汉字转拼音
- spring annotation注解@Component 通用:@Controller,@ Service,@ Repository区别
- eclipse Code Style设置
- eclipse 代码格式化的必要性
- 深入浅出 Java Concurrency (7): 锁机制 part 2 AQS
- struts2 CVE-2014-0050(DoS), CVE-2014-0094(ClassLoader manipulation) S2-20 DoS attacks and ClassLoader manipulation
- 关于Eclipse注解项目ButterKnife的使用,记录而已。
- eclipse Package Explorer视图设置过滤功能
- Spring Bean生命周期
- eclipse 新建一个Java Project所要注意的几个设置选项
- 【转】java中创建对象的方法
- Java LinkedList 源码分析
- Eclipse和Android Studio的偏好设置Preferences的导出与导入
- Java新手须知
- eclipse Package Explorer的设置探索