Spring Mvc拦截器不起作用

在Spring MVC 中配置了拦截器不起作用

  spring mvc一部分配置文件

 1     <!-- 启动 mvc 注解驱动 -->
 2     <mvc:annotation-driven/>
 3     <!-- 静态资源处理 -->
 4     <mvc:default-servlet-handler/>
 5
 6     <!-- 后台访问拦截器 -->
 7      <mvc:interceptors>
 8         <mvc:interceptor>
 9             <mvc:mapping path="/**"/>
10             <mvc:exclude-mapping path="/system/login"/>
11             <mvc:exclude-mapping path="/system/get_cpacha"/>
12             <mvc:exclude-mapping path="/h-ui/**"/>
13             <mvc:exclude-mapping path="/easyui/**"/>
14             <bean class="cn.fereli.interceptor.LoginInterceptor"></bean>
15         </mvc:interceptor>
16      </mvc:interceptors>
17
18       <!-- 3.视图的解析器-->
19       <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
20             <property name="prefix" value="/WEB-INF/views/"></property>
21             <property name="suffix" value=".jsp"></property>
22       </bean>

网上有的说是因为在spring-mvc.xml文件中配置了

<mvc:annotation-driven/>导致拦截器不起作用,因为在这个标签中默认有一个拦截器《这句会其实它已经注册了一个DefaultAnnotationHandlerMapping ,而在后面你自己注册的优先级没它内部的高,所以一直都不会调用你注册的拦截器
既然 <mvc:annotation-driven/>的拦截器优先级高,所以你在配置你的视图解析器的时候就将将他优先级提高
 1 <!-- 后台访问拦截器 -->
 2      <mvc:interceptors>
 3         <!--在这里把拦截器的全类名声明好,结果问题解决了-->
 4         <bean class="cn.fereli.interceptor.LoginInterceptor"/>
 5         <mvc:interceptor>
 6             <mvc:mapping path="/**"/>
 7             <mvc:exclude-mapping path="/system/login"/>
 8             <mvc:exclude-mapping path="/system/get_cpacha"/>
 9             <mvc:exclude-mapping path="/h-ui/**"/>
10             <mvc:exclude-mapping path="/easyui/**"/>
11             <bean class="cn.fereli.interceptor.LoginInterceptor"></bean>
12         </mvc:interceptor>
13      </mvc:interceptors>

原文地址:https://www.cnblogs.com/Fereli/p/11588741.html

时间: 2024-12-08 01:32:42

Spring Mvc拦截器不起作用的相关文章

Spring Boot 2.X(九):Spring MVC - 拦截器(Interceptor)

拦截器 1.简介 Spring MVC 中的拦截器(Interceptor)类似于 Servlet 开发中的过滤器 Filter,它主要用于拦截用户请求并作相应的处理,它也是 AOP 编程思想的体现,底层通过动态代理模式完成. 2.定义实现类 拦截器有两种实现方式: 1.实现 HandlerInterceptor 接口 2.继承 HandlerInterceptorAdapter 抽象类(看源码最底层也是通过 HandlerInterceptor 接口 实现) 3.HandlerIntercep

对于Spring MVC 拦截器的一些了解

Spring MVC 拦截器的执行顺序 应用场景 假设请求 localhost:8080/ 则要求直接重定向到 localhost:8080/login ; 定义拦截器顺序 permission login 执行顺序 pre 先执行先定义的,而 post 和 after 先执行后定义的. 原文地址:https://www.cnblogs.com/bjio/p/12242920.html

spring MVC拦截器01

spring MVC拦截 作用:身份校验,权限检查,防止非法訪问. 场景:一个bbs系统,用户没有登录就无法发帖或者删除评论; 一个博客系统,没有登录就无法发表博文,无法添加分类,无法删除博文. spring MVC 拦截实现分为2步 (1)编写拦截器类,必须继承org.springframework.web.servlet.HandlerInterceptor 核心方法: public boolean preHandle(HttpServletRequest request, HttpServ

spring mvc拦截器和&lt;mvc:annotation-driven /&gt;的详解

MVC的拦截器 经本人在Spring mvc中对方案1和方案2的测试表明,并没有拦截静态资源,所以可以放心使用方案1和方案2,方案3可以放弃,并且可以放心使用<mvc:annotation-driven />注解. 方案一,(近似)总拦截器,拦截所有url <mvc:interceptors> <bean class="com.app.mvc.MyInteceptor" /> </mvc:interceptors> 为什么叫“近似”,前面

Spring MVC拦截器

一.定义自己的拦截器 需要我们定义的类继承HandlerInterceptor 变成自定义的拦截器 package cn.interceptor; import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import javax.servl

Spring MVC拦截器+注解方式实现防止表单重复提交

原理:在新建页面中Session保存token随机码,当保存时验证,通过后删除,当再次点击保存时由于服务器端的Session中已经不存在了,所有无法验证通过. 注,如果是集群的方式,则需要将token放入到缓存中即可. 注解Token代码:java源码  Java代码 复制代码 收藏代码 1[email protected](ElementType.METHOD) 2[email protected] (RetentionPolicy.RUNTIME) 3.public @interface T

自定义 spring mvc 拦截器(近期项目需求实现)

需求背景:特定文件夹下任何文件不经过登录,全部拦截强制跳转登录,并客户端禁止下载服务器定制文件夹文件 经过1天多时间的各种尝试,自定义式的强大拦截器实现了,废话不说了,直接贴代码啦. demo: 1>   根目录下 index.html 内容: <a href="html/index.html">index</a><br/> <a href="html/login3.html">login3.html---<

Spring mvc 拦截器配置

首先在web.xml中配置spring mvc入口:DispatcherServlet SpringMVC具有统一的入口DispatcherServlet,所有的请求都通过DispatcherServlet.    DispatcherServlet是前置控制器,配置在web.xml文件中的.拦截匹配的请求,Servlet拦截匹配规则要自已定义,把拦截下来的请求,依据某某规则分发到目标Controller来处理.  所以我们现在web.xml中加入以下配置: <servlet><!--s

spring mvc拦截器HandlerInterceptor

本文主要介绍springmvc中的拦截器,包括拦截器定义和的配置,然后演示了一个链式拦截的测试示例,最后通过一个登录认证的例子展示了拦截器的应用 拦截定义 定义拦截器,实现HandlerInterceptor接口.接口中提供三个方法. public class HandlerInterceptor1 implements HandlerInterceptor{ //进入 Handler方法之前执行 //用于身份认证.身份授权 //比如身份认证,如果认证通过表示当前用户没有登陆,需要此方法拦截不再