在拦截的时候 会遇到未登录 直接 跳转 到 login.jsp
之前做项目,用到了两种方法
(1)
ajax 异步登录
如果未登录 返回一个 restfulMessage (自定义的返回类)里面定义一个code
拦截器 如果发现未登录 返回 这个 然后判断里面的code 再window.location.href="login.jsp"
(2)
这种 是 个人最近看到的 测试了 以下 ,发现 还不错的
就是 servlet 中 有一个 抽象类 HandlerExceptionResolver
在拦截的时候 如果发现 未登录 直接抛出这个异常
下面这个方法捕捉到这个异常
- public class QADHandlerExceptionResolver implements HandlerExceptionResolver{
- private static Logger logger = Logger.getLogger(QADHandlerExceptionResolver.class);
- @Override
- public ModelAndView resolveException(HttpServletRequest request,
- HttpServletResponse response, Object handler, Exception ex) {
- logger.error("Catch Exception: ",ex);//把漏网的异常信息记入日志
- Object ex=request.getAttribute("ex");
- if(ex instanceof myException) {
- if(myException.getCode=="1"){
- return new ModelAndView("login");
- }
- }
- return new ModelAndView("login");
- }
- }