springmvc的拦截器,怎么设置不拦截的url
<!-- 默认首页 -->
<mvc:view-controller path="/" view-name="redirect:/loginpage" />

<!-- 拦截器 -->
<mvc:interceptors>
    <mvc:interceptor>
        <mvc:mapping path="/**"/>
        <mvc:exclude-mapping path="/loginpage/**"/>
        <bean class="com.me.common.LoginInterceptor" />
    </mvc:interceptor>
</mvc:interceptors>

我的配置,我想进默认首页时不拦截,可还是拦截了,怎么回事?

2个回答

mvc:interceptors
mvc:interceptor



/mvc:interceptor
/mvc:interceptors

------------------改成----->



估计是你访问"/"时就到了拦截器

jinnianshilongnian
jinnianshilongnian 因为 <mvc:view-controller path="/" view-name="redirect:/loginpage" /> 这样当你访问/ 时 并没有redirect
7 年多之前 回复
aaron3323
aaron3323 好使了,多谢 但我不太明白原理 第一行<mvc:mapping path="/**"/>拦截所有/** 第二行放行所有/,不太明白啊
7 年多之前 回复
jinnianshilongnian
jinnianshilongnian <mvc:mapping path="/**"/> <mvc:exclude-mapping path="/"/> <mvc:exclude-mapping path="/loginpage/**"/>
7 年多之前 回复
aaron3323
aaron3323 我现在的配置: <!-- 默认首页 --> <mvc:view-controller path="/" view-name="redirect:/loginpage" /> <!-- 拦截器 --> <mvc:interceptors> <mvc:interceptor> <mvc:mapping path="/"/> <mvc:exclude-mapping path="/loginpage/**"/> <bean class="com.me.common.LoginInterceptor" /> </mvc:interceptor> </mvc:interceptors> 访问默认首页还是被拦截了,<mvc:exclude-mapping path="/loginpage/**"/>好像没起作用啊
7 年多之前 回复
jinnianshilongnian
jinnianshilongnian 你看下 1、exclude-mapping 要放到mapping 之后 2、你的版本过低?
7 年多之前 回复
aaron3323
aaron3323 大神报错了 org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 33 in XML document from class path resource [spring-servlet.xml] is invalid; nested exception is org.xml.sax.SAXParseException; lineNumber: 33; columnNumber: 35; cvc-complex-type.2.4.a: 发现了以元素 'mvc:exclude-mapping' 开头的无效内容。应以 '{"http://www.springframework.org/schema/mvc":mapping}' 之一开头。
7 年多之前 回复

在拦截器里注入一个属性 List uncheckUrls
mvc:interceptor




/login
/doLogin

                      </list>
           </property>
        </bean>
    </mvc:interceptor>

public class PermissionInterceptor extends HandlerInterceptorAdapter {

/**
 * 免登入 免检查地址
 */
private List<String> uncheckUrls;

public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)     

    String requestUrl = request.getRequestURI();
    if(uncheckUrls.contains(requestUrl)){
        return true;
    }else{

        //TODO 做拦截的事情
    }
taotao111
taotao111 在bean 中注入一个属性并且添加set 和get方法,用过一些方法 jrebel中不能支持热部署,这个可以
4 年多之前 回复
huapox
huapox 加入mvc:exclude-mapping时报错, <bean class="com.hz.sunday.portalvip.interceptor.PermissionInterceptor"> <property name="uncheckUrls"> 加这个property也报错,XML验证通不过,这个咋弄?
大约 7 年之前 回复
huapox
huapox mvc:exclude-mapping时报错
大约 7 年之前 回复
立即提问