springmvc的拦截器
来源:互联网 发布:mac 标志发亮 编辑:程序博客网 时间:2024/04/28 12:39
用户请求到dispatchservlet,DispatchServlet调用HandlerMapping查找Handler,HandlerMapping返回一个拦截链(多个拦截),springmvc中的拦截器是通过HandlerMapping发起的。可用于用户省份认证,权限认证。
public class HandlerInterceptor1 implements HandlerInterceptor { //在执行handler之前来执行的 //用于用户认证校验、用户权限校验 @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { System.out.println("HandlerInterceptor1...preHandle"); //如果返回false表示拦截不继续执行handler,如果返回true表示放行 return false; } //在执行handler返回modelAndView之前来执行 //如果需要向页面提供一些公用 的数据或配置一些视图信息,使用此方法实现 从modelAndView入手 @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { System.out.println("HandlerInterceptor1...postHandle"); } //执行handler之后执行此方法 //作系统 统一异常处理,进行方法执行性能监控,在preHandle中设置一个时间点,在afterCompletion设置一个时间,两个时间点的差就是执行时长 //实现 系统 统一日志记录 @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { System.out.println("HandlerInterceptor1...afterCompletion"); }
public class LoginInterceptor implements HandlerInterceptor {//在执行handler之前来执行的//用于用户认证校验、用户权限校验@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { //得到请求的url String url = request.getRequestURI(); //判断是否是公开 地址 //实际开发中需要公开 地址配置在配置文件中 //... if(url.indexOf("login.action")>=0){ //如果是公开 地址则放行 return true; } //判断用户身份在session中是否存在 HttpSession session = request.getSession(); String usercode = (String) session.getAttribute("usercode"); //如果用户身份在session中存在放行 if(usercode!=null){ return true; } //执行到这里拦截,跳转到登陆页面,用户进行身份认证 request.getRequestDispatcher("/WEB-INF/jsp/login.jsp").forward(request, response); //如果返回false表示拦截不继续执行handler,如果返回true表示放行 return false;}//在执行handler返回modelAndView之前来执行//如果需要向页面提供一些公用 的数据或配置一些视图信息,使用此方法实现 从modelAndView入手@Overridepublic void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { System.out.println("HandlerInterceptor1...postHandle");}//执行handler之后执行此方法//作系统 统一异常处理,进行方法执行性能监控,在preHandle中设置一个时间点,在afterCompletion设置一个时间,两个时间点的差就是执行时长//实现 系统 统一日志记录@Overridepublic void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { System.out.println("HandlerInterceptor1...afterCompletion");}
阅读全文
0 0
- springmvc的拦截器
- springMVC的拦截器
- springmvc的拦截器
- SpringMVC的拦截器
- springmvc的拦截器
- SpringMVC的拦截器
- SpringMVC的拦截器
- springMVC的拦截器
- SpringMvc的拦截器
- springmvc的拦截器
- Springmvc的拦截器
- springMVC的拦截器
- spring拦截器 拦截springMVC的controller
- SpringMvc 拦截器的使用
- springMVC拦截器的使用
- SpringMVC拦截器的使用
- springmvc的拦截器小结
- SpringMVC的interceptor拦截器
- Problem B: 图形计数与求面积
- Windows提权的几种姿势
- get请求、post请求的区别
- 【mycat】mycat中配合mysql自增主键的使用
- 数据结构二叉树线索化
- springmvc的拦截器
- 手机上也能用的快手和火山视频在线解析下载工具
- Problem C: 判断两个圆之间的关系
- Problem D: 自定义实数及其数组
- ajax如何实现局部刷新
- 【Caffe的C++接口使用说明四)】Caffe中分类C++接口Demo源代码的解析
- 编程第五十七天
- 内网渗透之如何玩转Meterpreter?
- 从LINQ开始之LINQ to Objects(下)