spring mvc 自定义方法拦截器

自定义方法拦截器   @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加入:

 

<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(FrontInterceptor.class )

@override
public boolean preHandle(HttpServletRequest request,HttpServletresponse,Object handler){


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;
}
}

猜你喜欢

转载自guozhijie87.iteye.com/blog/2306093