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