您的位置:首页 > 编程语言 > Java开发

spring mvc 自定义方法拦截器

2016-06-20 14:40 495 查看
自定义方法拦截器   @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代码  


<mvc:interceptors>  

    <mvc:interceptor>  

        <mvc:mapping path="/**"/>  

        <bean class="com.xxx.FrontInterceptor"/>  

    </mvc:interceptor>  

</mvc:interceptors>  

  

  

  

前台拦截器  

public class FrontInterceptor implrmrnts HandlerInterceptor{  

  

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;">)  

  

@override  

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代码下载    


<span style="font-size: 1em; line-height: 1.5;">  

  

</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代码 下载   


<span style="font-size: 1em; line-height: 1.5;">}</span>  

Html代码 下载   


}  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息