webservice 被struts拦截.请问有什么好多方法不让它拦截发布的服务吗?

滴滴丶哔哔 发布于 2013/05/01 23:03
阅读 1K+
收藏 0
在程序中,struts拦截了所有的请求,url配置的/*,是否是将其改为/*.action呢?我改了之后会报错的,这种方法有人使用过吗?或者谁有更好的方法。
加载中
0
灰花走湿
灰花走湿

推荐你一篇文章吧,看看http://blog.csdn.net/lishengbo/article/details/5474044

估计是你的过滤器配置的问题,与修改请求拦截没有太大的关系

0
DW_GYT
DW_GYT

可以自定义一个Filter,继承StrutsPrepareAndExecuteFilter,在doFilter方法中把你的webservice路径排除掉就行了,类似下面:

public class StrutsFilter extends StrutsPrepareAndExecuteFilter {

    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        HttpServletRequest request = (HttpServletRequest) servletRequest;
        boolean isFilter = true;
        for (int i = 0; i < Contants.noFilterEXT.length; i++) {
            if (request.getRequestURI().contains(Contants.noFilterEXT[i])) {
                isFilter = false;
                break;
            }
        }
        if (!isFilter) {
                filterChain.doFilter(servletRequest, servletResponse);
            } else {
                super.doFilter(servletRequest, servletResponse, filterChain);
            }
        }


}

返回顶部
顶部