博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SpringMVC12拦截器
阅读量:4362 次
发布时间:2019-06-07

本文共 3796 字,大约阅读时间需要 12 分钟。

创建对应的登陆界面

      
姓名:

 

创建对应的controller

@Controllerpublic class LoginController  {        /**     * 默认用户登录时候的方法     */    @RequestMapping("/login")    public String  addStudent(String userName,HttpSession session) {        System.out.println("进入了  login");        session.setAttribute("name", userName);       return   "/user/list";  //转发    }    }

 

@Controller@RequestMapping("/user")public class UserController {        @RequestMapping("/list")    public ModelAndView list(){        System.out.println("进入了List");          ModelAndView  mv=new ModelAndView();          mv.addObject("name", "大家辛苦了!").setViewName("/success.jsp");        return  mv;    }}

 

创建对应的拦截器

public class MyInterceptor implements HandlerInterceptor {    /**     * 在处理器映射器 映射出所要执行的处理器类时,已经将拦截器和处理器组合成一个处理器执行链!并返回给了中央调度器!     *      * preHandle:预处理     * request:请求     * response:响应     * handler:即将执行的controller     *      * 01.preHandle  return是false的时候 不会执行后续的操作   只有一个拦截器的时候     * 02.有两个拦截器   而且两个preHandle都是return===false     *     只输出第一个拦截器中的语句!后续不会执行     * 03.有两个拦截器  第一个拦截器中preHandle的return===true     *      执行的方法:     *         001.第1个拦截器的preHandle     *         002.第2个拦截器的preHandle     *         003.第1个拦截器的afterCompletion     *         004.没有执行controller     * 04.有两个拦截器  两个拦截器中preHandle的return===true     *         001.第1个拦截器的preHandle     *         002.第2个拦截器的preHandle     *         003.执行controller     *         004.第2个拦截器的postHandle     *         005.第1个拦截器的postHandle     *         006.第2个拦截器的afterCompletion     *         007.第1个拦截器的afterCompletion     */    @Override    public boolean preHandle(HttpServletRequest request,            HttpServletResponse response, Object handler) throws Exception {        System.out.println("进入了 MyInterceptor1的   preHandle=====》");        return true;    }    /**     * Controller执行之后的方法       * 如果有多个拦截器     * 那么  执行顺序和 perHandle相反!     *      * ModelAndView:就是从controller中返回的数据!     * 我们可以操作!     */    @Override    public void postHandle(HttpServletRequest request,            HttpServletResponse response, Object handler,            ModelAndView modelAndView) throws Exception {        System.out.println("进入了 MyInterceptor1的   postHandle=====》");        System.out.println(modelAndView.getViewName());    }    /**     * afterCompletion:后处理     * 想要执行必须满足一个条件!  本类中的perHandle  执行并且返回true!     */    @Override    public void afterCompletion(HttpServletRequest request,            HttpServletResponse response, Object handler, Exception ex)            throws Exception {        System.out.println("进入了 MyInterceptor1的   afterCompletion=====》");            }    }

 

 

public class MyInterceptor2 implements HandlerInterceptor {    @Override    public boolean preHandle(HttpServletRequest request,            HttpServletResponse response, Object handler) throws Exception {        System.out.println("进入了 MyInterceptor2的   preHandle=====》");        return true;    }    @Override    public void postHandle(HttpServletRequest request,            HttpServletResponse response, Object handler,            ModelAndView modelAndView) throws Exception {        System.out.println("进入了 MyInterceptor2的   postHandle=====》");            }        @Override    public void afterCompletion(HttpServletRequest request,            HttpServletResponse response, Object handler, Exception ex)            throws Exception {        System.out.println("进入了 MyInterceptor2的   afterCompletion=====》");            }    }

 

在xml文件中配置

 

 

 

 

转载于:https://www.cnblogs.com/HHR-SUN/p/7218698.html

你可能感兴趣的文章
SQL查询原理及执行顺序
查看>>
浅拷贝深拷贝Python对象的拷贝
查看>>
列表代码我的第一个封装js代码-----展开收起效果
查看>>
5_4学生类
查看>>
利用cv与matplotlib.pyplot读图片与显示图片
查看>>
算法——(转)动态规划入门
查看>>
webpack 的sass-loader打包出错问题,提示 Module not found: Error: Can't resolve '*.css' 的问题...
查看>>
HDOJ---2066 一个人的旅行[Dijkstra算法]
查看>>
35个jQuery小技巧!
查看>>
20140308 std::fill
查看>>
【题解】大床Nim (2019,5.23)
查看>>
[考试反思]0818NOIP模拟测试25:清心
查看>>
常用类string的用法
查看>>
语句- for () 循环语句-迭代法
查看>>
jQuery.动画
查看>>
suoi16 随机合并试卷 (dp)
查看>>
五 : springMVC拦截器
查看>>
数据结构七大排序
查看>>
你真的了解iOS的深浅拷贝吗?
查看>>
对症下药,找到Visual Studio每次编译都提示不是最新的根本原因
查看>>