Spring拦截器

自定义拦截器步骤

  1  创建拦截器类实现HandlerInterceptor

    

复制代码
@Controller
public class TargetController {

    @RequestMapping("/target")
    public ModelAndView show() {
        System.out.println("目标资源执行");
        ModelAndView modelAndView = new ModelAndView();
        modelAndView.addObject("name","zl");
        modelAndView.setViewName("index");
        return modelAndView;
    }
}
复制代码
复制代码
public class MyInterceptor1 implements HandlerInterceptor{

    //在目标方法执行之前执行
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
            throws Exception {
        System.out.println("preHandle");
        String param = request.getParameter("param");
        if("yes".equals(param)) {
            return true;
        }
        else {
            request.getRequestDispatcher("/error.jsp").forward(request, response);;
            return false;//返回true代表放行
        }
    }

    //在目标方法执行之后,视图对象返回之前执行
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
            ModelAndView modelAndView) throws Exception {
        // TODO Auto-generated method stub
        modelAndView.addObject("name", "zhangsan");
        System.out.println("postHandle");
    }

    //在流程都执行完毕后执行
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
            throws Exception {
        // TODO Auto-generated method stub
        System.out.println("afterCompletion");
    }
    
}
复制代码

 

  2  配置拦截器

复制代码
<!-- 配置拦截器 -->
    <mvc:interceptors>
        <mvc:interceptor>
            <!-- 对哪些资源执行拦截操作 -->
            <mvc:mapping path="/**"/>
            <bean class="com.zl.interceptor.MyInterceptor1"></bean>
        </mvc:interceptor>
        
        <mvc:interceptor>
            <!-- 对哪些资源执行拦截操作 -->
            <mvc:mapping path="/**"/>
            <bean class="com.zl.interceptor.MyInterceptor2"></bean>
        </mvc:interceptor>
    </mvc:interceptors>
复制代码

 

  3  测试拦截器的拦截效果

 

posted @   Cuora  阅读(175)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
历史上的今天:
2021-11-28 JSP页面中的<%!%><%=%><%%><%@ %>
点击右上角即可分享
微信分享提示