spring mvc 自定义方法拦截器

来源:互联网 发布:sql存储过程怎么写 编辑:程序博客网 时间:2024/06/01 10:28

自定义方法拦截器   @interface 属于annotation 注解

import java.lang.annotation.ElementType;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;import java.lang.annotation.Retention;@Target(ElementType.METHOD)@Retention(RetentionPolicy.RUNTIME)public @interface AccessRequired {}

设计: 继承org.springframework.web.servlet.handler.HandlerInterceptorAdapter,重写preHandle方法.

实现:

xxx-servlet.xml加入:

Html代码  收藏代码
  1. <mvc:interceptors>  
  2.     <mvc:interceptor>  
  3.         <mvc:mapping path="/**"/>  
  4.         <bean class="com.xxx.FrontInterceptor"/>  
  5.     </mvc:interceptor>  
  6. </mvc:interceptors>  
  7.   
  8.   
  9.   
  10. 前台拦截器  
  11. public class FrontInterceptor implrmrnts HandlerInterceptor{  
  12.   
  13. private static  Logger logger=Logger.getLogger(<span style="font-size: 1em; line-height: 1.5;">FrontInterceptor.class </span><span style="font-size: 1em; line-height: 1.5;">)  
  14.   
  15. @override  
  16. public boolean preHandle(HttpServletRequest request,HttpServletresponse,Object </span><span style="font-family: 'Courier New', Courier, monospace; font-size: 1em; line-height: 1.5;">handler</span><span style="font-size: 1em; line-height: 1.5;">){</span>  
Html代码下载    收藏代码
  1. <span style="font-size: 1em; line-height: 1.5;">  
  2.   
  3. </span>  
HandlerMethod handlerMethod = (HandlerMethod) handler;Method method = handlerMethod.getMethod();AccessRequired annotation = method.getAnnotation(AccessRequired.class);if (annotation != null) {   System.out.println("你遇到了:@AccessRequired");   String accessToken = request.getParameter("access_token");/** * Do something */    response.getWriter().write("没有通过拦截,accessToken的值为:" + accessToken);}// 没有注解通过拦截return true;
Html代码 下载   收藏代码
  1. <span style="font-size: 1em; line-height: 1.5;">}</span>  
Html代码 下载   收藏代码
  1. }  
0 0
原创粉丝点击