springMVC拦截器使用


新建一个类,实现

HandlerInterceptor 接口

import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class MyInterceptor implements HandlerInterceptor { /*preHandler方法会[早于]控制器中的方法先执行 如果该方法返回false,则不执行控制器的方法(相当于之前没有执行放行代码) 返回true,则继续执行控制器的方法 * */ @Override public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o) throws Exception { System.out.println("MyInterceptor的preHandler方法被执行了"); return true; } /* * postHandle方法[晚于]控制器方法执行-1 * 控制器方法执行完,在准备跳转页面之前,先执行该方法,此时ModelAndView中存储着控制器要跳转的页面路径和 * 存储作用域数据*/ @Override public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception { System.out.println("MyInterceptor的postHandle方法被执行了"); } /*afterCompletion * 方法[晚于]控制器方法执行-2 * 等页面跳转渲染了才会执行*/ @Override public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception { System.out.println("MyInterceptor的afterCompletion方法执行了"); } }

在mvc.xml配置控制器

<!--拦截器相关配置-->
    <mvc:interceptors>
        <mvc:interceptor>
            <!--指定要拦截器的请求路径 /* 只能拦截器http://ip地址:8081/项目名/test3.do请求 /** 拦截所有请求 -->
            <mvc:mapping path="/**"/>
            <!--exclude(排除)排除一些不拦截的请求路径 <mvc:mapping path=""/> -->
           <!--拦截器的全类名-->
            <bean class="com.test.MyInterceptor"/>
        </mvc:interceptor>
    </mvc:interceptors>

 

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM