自己写了个过滤器继承struts默认的过滤器,代码如下
public class MyStrutsFilter extends StrutsPrepareAndExecuteFilter { @Override
public void doFilter(ServletRequest req, ServletResponse res,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) res; String requestURI = request.getRequestURI();
//System.out.println(requestURI);
if (requestURI.indexOf("/servlet") != -1) {
chain.doFilter(request, response);
} else {
super.doFilter(req, res, chain);
}
}
}
目的是为了能过滤掉含有servlet的请求,但是加了这个过滤器以后,所以路径都不能访问了,连index.jsp都不能访问,按理说这个过滤器应该不会影响index.jsp,我加断点也没执行,但是去掉这个过滤器后,Index.jsp就能访问了,实在奇怪StrutsServlet继承

解决方案 »

  1.   

    if (requestURI.indexOf("/servlet") != -1) {
     chain.doFilter(request, response);
     }
    如果requestURL含有servlet就放行,按LZ的意思这这里应该是==-1吧 
      

  2.   

    这边的意思是如果找到的是含有servlet的路径,那就执行普通的过滤,如果是不含有servlet的路径,那就按照struts过滤器进行过滤,!=-1应该是含有servlet的路径,所以这边应该没有写错才是啊
      

  3.   

    问题是我设了断点,这个过滤器在访问index.jsp的时候根本没有执行,但是如果去掉了这个过滤器之后就能正常执行了,实在太神奇了
      

  4.   

    要看你web.xml里,filter对应的url-mapping 怎么配置的。建议可以单独针对*.jsp做一个filter
      

  5.   

    配置是针对/*,就是所有的都进行过滤如果是所有的都过滤,怎么可能debug不进去呢,,说不通看后台报错了没,,,还有  看web.xml的配置