restful风格,用springmvc的拦截器,在每次请求之前进行session比对,如果过期则重定向到一个controller,因为是前后端分离,所以不能直接重定向到前端登录页。那么问题随之而来:重定向到另一个controller前端是接收不到返回值的。最后为了实现后端拦截功能,在拦截器里直接把请求转发。
@Override
public boolean preHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2) throws Exception {
String requestUri = arg0.getRequestURI();
for (String url : excludedUrls) {
if (requestUri.endsWith(url)) {
return true;
}
}
HttpSession session = arg0.getSession();
if (session.getAttribute("user") == null) {
**arg0.getRequestDispatcher("/tbuser/noUser").forward(arg0, arg1);** //请求转发,不做任何操作
return false;
} else {
return true;
}
}