做用:在訪問controller的方法時,判斷用戶是不是登錄狀態。java
step1:定義註解spring
import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; @Target({ ElementType.TYPE, ElementType.METHOD }) @Retention(RetentionPolicy.RUNTIME) public @interface LoginRequired { public String loginUrl() default ""; }
step2:定義攔截器,繼承HandlerInterceptorAdapter抽象類,從新preHandle方法mvc
public class TicketInterceptor extends HandlerInterceptorAdapter {
@Autowired
private UserDetailMapper userDetailMapper;
@Autowired
private UserRoleService userRoleService;
@Autowired
private UserOrgMapper userOrgMapper;// add by cuiyan 20150604 用戶機構
@Override
public boolean preHandle(HttpServletRequest request,
HttpServletResponse response, Object handler) throws Exception {
LoginRequired loginRequired = MethodInterceptorUtils.getAnnotaion(
handler, LoginRequired.class);
//..........判斷邏輯
}
}
step3:springmvc的配置文件,攔截器app
<mvc:interceptors>
<bean class="xxxx" /></mvc:interceptors>