有时候,在特定的情况下,虽然项目的PC端和移动端是同数据库,功能相同,但是页面的设计可能不尽相同,这就需要我们判断当前用户使用的是PC端还是移动端,以便我们准确的渲染页面。
在这里,我们以不同终端退回登录页面为例,当session过期时,将自动退回到对应的登录页,拦截器的代码如下:
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
User userInfo = (User)request.getSession().getAttribute("user");
int id = (int)request.getSession().getAttribute("id");
if(userInfo == null||id<=0){
boolean isMoblie = JudgeIsMoblie(request);
if(isMoblie){
log.info("Interceptor:跳转到移动登录页面!");
request.getRequestDispatcher("/mobile/login.jsp").forward(request, response);
}else {
log.info("Interceptor:跳转到PC登录页面!");
request.getRequestDispatcher("/index.jsp").forward(request, response);
}
return false;
}else
return true;
}
实现判断逻辑的代码如下: