当前位置:编程学习 > JAVA >>

过滤器的问题 大家都帮忙看下 急。。。

struts过滤器:
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>

<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>

spring过滤器:
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>

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

我现在在web.xml 中配置了这两个过滤器
  怎么让一些请求只执行spring的过滤器 而不经过struts的过滤器。


我现在的情况是   我们公司原有的代码是struts框架的
但是公司现在给我一个spring mvc的框架 ,这个框架上有登陆和菜单的一些代码和配置要保留
 我现在要做的是 怎么把两个框架整合起来而让spring的请求和struts的请求各不干扰 Struts 框架 Spring Filter Spring MVC --------------------编程问答-------------------- 分不够可以在加。。 --------------------编程问答-------------------- 不是配置了后缀了吗,url后缀 --------------------编程问答-------------------- 我试了下这个过滤器好像是按顺序来执行的 始终执行在前面的struts 
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest) request;
String path = req.getRequestURI();
System.out.println(path);
System.out.println("chai:"+chain);
System.out.println("response:"+response);
if(path.contains("main.do")){
chain.doFilter(request, response);//跳过struts
}else if(path.contains("user.do")){
chain.doFilter(request, response);//跳过struts
}else{
super.doFilter(request, response, chain);
System.out.println("giftcardelse:");
}
这个没什么作用还是按web.xml的过滤器的顺序来执行的 --------------------编程问答--------------------
引用 2 楼 wenhaoxp1987 的回复:
不是配置了后缀了吗,url后缀
  现在就是springmvc的后缀也是.do struts的也是.do --------------------编程问答-------------------- 肯定有一个地方要改,改前缀也可以/spring/* --------------------编程问答-------------------- 这其实就好比一个数,比如8
即使合数又是偶数。
两个肯定有共同的地方,也区别的地方。
所以要想只是实现一个,只能如你所做的重写过滤器、
web.xml是一份配置文件,执行的时候是统一读完了之后相应的方法才对其操作。
所以web.xml里面可以认为是没有顺序之分的。
另外这里面的加载顺序是和框架本身的方法执行顺序有关的
过滤前 – 拦截前 – Action处理 – 拦截后 – 过滤后
我觉得spring拦截应该是在action处理的时候 --------------------编程问答-------------------- 楼上是人才呀! --------------------编程问答-------------------- 你可以通过增加个filter实现吧所有的*.do请求,转化为*.action不就可以! --------------------编程问答-------------------- 这个看那个的范围更大, --------------------编程问答-------------------- struts MVC + spring MVC =??? --------------------编程问答-------------------- 哎 我改了  更领导反映了下 框架比较坑爹  重新写框架去了
补充:Java ,  Web 开发
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,