2 qq 30067349 qq_30067349 于 2016.03.01 14:18 提问

fiter可以过滤jsp等后缀的url,但就是过滤不了.do请求,fiter该怎么写 求帮忙 2C
/*public void doFilter(ServletRequest arg0, ServletResponse arg1,
        FilterChain arg2) throws IOException, ServletException {
    // 获得在下面代码中要用的request,response,session对象
    log.info(".....ThirdPartyStoresFilter...doFilter.....");    
    HttpServletRequest servletRequest = (HttpServletRequest) arg0;
    HttpServletResponse servletResponse = (HttpServletResponse) arg1;
    HttpSession session = servletRequest.getSession();
    String  user =(String) session.getAttribute("username");
    // 获得用户请求的URI
    String path = servletRequest.getRequestURI();
    System.out.println(servletRequest.getRequestURL()+"(00000000");
    // 登陆页面无需过滤
    if (path.indexOf("/login.jsp") > -1 || path.indexOf("/images") > -1
            || path.indexOf("/js") > -1 || path.indexOf("/style") > -1) {
        arg2.doFilter(arg0, arg1);
        return;
    }

    //得到上下文路径
    String returnUrl = servletRequest.getContextPath();
    try {

        // 判断如果没有取到员工信息,就跳转到登陆页面
        if (StringUtils.isBlank(user)) {
            // 跳转到登陆页面
            servletResponse.sendRedirect(returnUrl
                    + "/shop/login.jsp");
        } else {
            // 已经登陆,继续此次请求
            arg2.doFilter(arg0, arg1);
        }
    } catch (Exception e) {
        servletResponse.sendRedirect(returnUrl
                + "/shop/login.jsp");
    }
}
<filter>
    <filter-name>filter</filter-name>
    <filter-class>...</filter-class> 
</filter>
<filter-mapping>
    <filter-name>filter</filter-name>
    <url-pattern>/shop/*</url-pattern>
    </filter-mapping>
*/

4个回答

a510835147
a510835147   2016.03.01 14:34

你是不是还用了 struts啊? .do 请求应该是被它给拦截了

qq_30067349
qq_30067349 回复_追逐梦想_: 我想重新配置个
2 年多之前 回复
a510835147
a510835147 回复qq_30067349: 那你把 你这个过滤器的配置放在 struts1 的过滤器的上面就好了
2 年多之前 回复
qq_30067349
qq_30067349 是的我用了 struts1
2 年多之前 回复
rui888
rui888   Ds   Rxr 2016.03.01 14:35

 A URL pattern is a URI that is relative to the application context. Patterns can include:

Path mapping, starting with / and ending with /*
This pattern identifies any resource that starts with a given path, for example: /catalog/* or /europe/poland/*

Extension mapping, starting with *.
This pattern identifies any resource with the given extension, for example, *.jsp or *.gif

Default servlet mapping, containing only / This pattern identifies the default servlet of the application.
Exact matches
This pattern uses a string that represents a specific resource, for example, /snoop is a servlet mapping and /list/banner.jsp is a file mapping.

So if you need mapping like /secure*, you need either redesign your app to /secure/* so each resource will be a subpath, or apply multiple patters to one web resource collection like /secureA , /secureB, /secureEtc
qq_30067349
qq_30067349 我是指定目录下的所有请求,就是login.jsp不被过滤其他的都要实现过滤
2 年多之前 回复
qq_20039385
qq_20039385   2016.03.01 20:15

struts1没用过,对于struts2还是比较熟悉,struts2只要配置了filer拦截器所有的请求都会先进入拦截器的包括静态资源,只有在filer(拦截器)里面doFilter(放行)的才不拦截,建议把配置贴出来看看,拦截器是根据配置的url目录拦截的,/* 拦截所有请求

u013772876
u013772876   2016.03.10 17:05

看看你的web.xml配置是不是对请求后缀做了限制

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
过滤器fiter 和拦截器 interceptor 的区别
先记住下面这几点: 1、filter是servlet,jsp里面的东西,应该说是属于规范了,而拦截器是struts的东西,不通用。 2、一个请求,get,post等方式,到后台,必须先经过filter,然后经过Interceptor,最后在通过在filter或者Interceptor里面的跳转,跳到指定的页面或者action或者servlet中。 3、Interceptor只能拦
Filter过滤不了action
最近使用ssh2做一个网站,因为需要对action和jsp都进行访问控制,因此使用Filter来对请求进行过滤。在web.xml中配置好之后发现对jsp的访问能够过滤,但是过滤不了对action的请求。调试后发现访问action时用于请求过滤的Filter根本就没执行。于是在web.xml中改变Filter的映射顺序,将请求过滤的Filter放到Struts2的核心过滤器之前,则可成功对actio
Filter过滤器周期、Filter拦截过滤、Filter执行链
Servlet过滤器的概念: Servlet过滤器本身并不生成请求和响应对象,它只提供过滤作用。Servlet过滤器能够在Servlet被调用之前检查Request对象,修改Request Header和Request内容。在Servlet被调用之后检查Response对象,修改Response Header和Response内容。Servlet过滤器负责过滤的Web组件可以是Servlet、JS
通过过滤器Filter来完成url访问权限限制
1.新建过滤器类: package com.xiami.manager.filter;import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.Servl
filter过滤、servlet过滤
看配置文件感觉servlet的配置方式跟filter在形式上差不多,他们都可以进行过滤拦截,他俩有啥区别呢?         首先看他们位置:“filter是servlet中最实用的技术,servlet Api提供了Filter接口;filter可以拦截web的所有资源,包括servlet”,怎么感觉filter隶属于servlet,是servlet的一部分???!!!         查资料
UNITY3D shader学习心得<四> 贴图Fiter mode过滤器模式
Fiter mode过滤器模式  因为贴图在屏幕里肯定会存在放大,缩小的情况,这种时候就会出现锯齿。 今天看到一个视频有讲解到这一块。 在UNITY3D中点开一张贴图,Fiter mode过滤器模式 ,下面有3个选项  point  , Bilinear ,Trilinear  point      :点采样模式,屏幕像素会需找最近的贴图像素点,来作为输出,这种比较生硬,但是性能好,
过滤器对指定的路径不进行过滤的方法 filter exclude path struts fckeditor date datetimepicker
<br />问题是这样的,工程中使用了struts提供的 sx:datetimepicker 这个widget,这个widget就是用来选择日期的,挺好用的就用了。另外编辑器使用fckeditor。之前使用struts的过滤器StrutsPrepareAndExecuteFilter的时候指定的url-pattern都是使用/*,也就是所有请求这个过滤器都将处理,后来发现fckeditor的上传功能经过上面过滤器时会发生错误(当然这里我们是不希望上面的过滤器对fckeditor的上传文件进行过滤操作的)。然
JSP——过滤器篇
一、过滤器的基本概念 1、什么是过滤器 过滤器是一个服务器端的组件,它可以截取客户端的请求和服务端的响应信息,并对这些信息进行过滤。 2、过滤器的工作原理 过滤器的工作原理可以依据下图进行分析(图片转自慕课网)。 用户在请求Web资源时,用户的请求会先被过滤器拦截,过滤器对用户的请求进行过滤,过滤之后过滤器再将用户的请求发送到Web资源,Web资源在将响应返回给用户时,响应也会先
spring mvc url匹配禁用后缀访问
在spring mvc中默认 访问url 加任意后缀名都能访问 比如:你想访问 /login ,但是通过 /login.do /login.action /login.json 都能访问 在spring 3.1之后,url找对应方法的处理步骤,第一步,直接调用RequestMappingHandlerMapping查找到相应的处理方法,第二步,调用RequestMappingHandlerAd
springboot url拦截定制
构建web应用程序时,并不是所有的URL请求都遵循默认的规则。有时,我们希望RESTful URL匹配的时候包含定界符“.”,这种情况在Spring中可以称之为“定界符定义的格式”;有时,我们希望识别斜杠的存在。Spring提供了接口供开发人员按照需求定制。 在之前的几篇文章中,可以通过WebConfiguration类来定制程序中的过滤器、格式化工具等等,同样得,也可以在这个类中用类似的办