spring拦截器
来源:互联网 发布:淘宝中老年衣服 编辑:程序博客网 时间:2024/06/15 03:33
1.自定义拦截器
SpringMVC的拦截器HandlerInterceptorAdapter对应提供了三个preHandle,postHandle,afterCompletion方法。preHandle在业务处理器处理请求之前被调用,
postHandle在业务处理器处理请求执行完成后,生成视图之前执行,afterCompletion在DispatcherServlet完全处 理完请求后被调用,可用于清理资源等 。所以要想实现自己的权限管理逻辑,需要继承HandlerInterceptorAdapter并重写其三个方法。
首先在springmvc.xml中加入自己定义的拦截器我的实现逻辑CommonInterceptor
--配置springMVC拦截器, 多个拦截器,顺序执行 --><mvc:interceptors> <!-- 使用bean定义一个Interceptor,直接定义在mvc:interceptors根下面的Interceptor将拦截所有的请求 --> <!--<bean class=""></bean>--> <mvc:interceptor> <!-- 匹配的是url路径, 如果不配置或/**,将拦截所有的Controller --> <mvc:mapping path="/api/**" /> <bean class="com.jason.system.CommonInterceptor"/> </mvc:interceptor> <!-- 当设置多个拦截器时,先按顺序调用preHandle方法,然后逆序调用每个拦截器的postHandle和afterCompletion方法 --></mvc:interceptors>
4、最后实现类:CommonInterceptor
package com.jason.system;import com.jason.utils.date.DateUtils;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.web.servlet.HandlerInterceptor;import org.springframework.web.servlet.ModelAndView;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;/**公共拦截器 * Created by liupu on 2015/10/26. */public class CommonInterceptor implements HandlerInterceptor { private static final Logger logger= LoggerFactory.getLogger(CommonInterceptor.class); /** * 在请求之前拦截,返回true则进入请求Controller * @param request * @param response * @return * @throws Exception */ @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object o) throws Exception { logger.info("==============执行顺序: 1、preHandle================"); String requestUri = request.getRequestURI(); String method = request.getMethod(); String url = request.getContextPath(); logger.info("RequestUri:"+requestUri); logger.info("method:"+method); logger.info("url:"+url);// String username = (String)request.getSession().getAttribute("user");// if(username == null){// request.getRequestDispatcher("/tool/login/login.jsp").forward(request, response);// return false;// }else{return true;} return true; } /** * 在业务处理器处理请求执行完成后,在返回试图前拦截, * 可在modelAndView中加入数据,比如当前时间 * @param response * @param request * @param modelAndView * @throws Exception */ @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object o, ModelAndView modelAndView) throws Exception { logger.info("==============执行顺序: 2、postHandle================"); if (null!=modelAndView){ modelAndView.addObject("serverTime", DateUtils.getDate(DateUtils.YYYY_MM_DD_HH_mm_ss)); } } /** * 在DispatcherServlet完全处理完请求后被调用,可用于清理资源等 * 当有拦截器抛出异常时,会从当前拦截器往回执行所有的拦截器的afterCompletion() * @param request * @param response * @param e * @throws Exception */ @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object o, Exception e) throws Exception { logger.info("==============执行顺序: 3、afterCompletion================"); }}
阅读全文
0 0
- spring拦截器.学习.
- spring拦截器配置
- Spring 拦截器
- spring 拦截器例子
- Spring拦截器
- Spring MVC 拦截器
- Spring MVC 拦截器
- Spring MVC 拦截器
- spring MVC拦截器
- spring 拦截器例子
- Spring aop拦截器
- Spring MVC拦截器
- spring mvc 拦截器
- Spring动态拦截器
- spring mvc 拦截器
- spring拦截器配置
- spring mvc 拦截器
- Spring mvc 拦截器
- 重放攻击(Replay Attacks)[转载]
- linux 内核修炼之道——系统调用
- INF文件在批处理中的应用
- LeNet-5模型详解及其TensorFlow代码实现
- 部分总结
- spring拦截器
- Angular 基础部分 1.2 创建投票网站
- 防火墙状态
- 使用git报错error: RPC failed; HTTP 504 curl 22 The requested URL returned error: 504 Gateway Time-out
- 169/229 Majority Element(寻找众数)
- 细数二十世纪最伟大的10大算法
- Scanner从控制台获取数据
- Maximum Sequence HDU 6047
- js.三元表达式