SpringMVC 拦截器路径怎么写

相对这样的请求进行拦截 /HTML/xxx.html

clipboard.png

拦截器我是这么写的

<mvc:interceptors>
    <mvc:interceptor>
    <mvc:mapping path="/HTML/*" />
    <mvc:mapping path="/HTML/*.html" />
    <bean class="com.staffos.interceptor.CommonInterceptor"></bean> 
</mvc:interceptor>        
</mvc:interceptors>


但实际上没有拦截到, 那像  /HTML/xxx.html 的请求拦截器怎么写,是我哪里错了?
阅读 5.6k
4 个回答

为何不从根目录起设置?或者用**代替前缀

你如何判断没有拦截到?
CommonInterceptor里面是如何实现的?

首先,你的拦截路径需要根据的实际应用场景来定,按照你的拦截配置,我猜测你可能是要拦截HTML/路径下,.html的页面请求,如果这个猜测成立,那么你的配置和CommonInterceptor类需要实现如下几步:

1.修改配置

<mvc:interceptors>
    <mvc:interceptor>
        <mvc:mapping path="/HTML/**" />
        <bean class="com.staffos.interceptor.CommonInterceptor"></bean>
    </mvc:interceptor>        
</mvc:interceptors>

2.implements HandlerInterceptor (@Override 让IDE去帮你完成)

3.重写 preHandle 方法,其中需要你写自己的业务逻辑

Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
    //此判断需完善
    if(StringUtils.contains(request.getRequestURL().toString(),".html")){
        //doBus...
        return false; //如果需要跳转
    }
    //如果不处理则直接 
    return true;
}

希望能帮到你~

新手上路,请多包涵

拦截器拦截的是请求噢~从根目录开始写起

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题