JqueryeasyUi+SSH2使用拦截器当用户一段时间内没有任何操作时需要重新登录,返回不了登录页面。
SSH2+jQueryeasyui写的一个项目,使用拦截器拦截所有请求判断是否过期,如果用户一段时间内没有任何操作则需要从新登录,一段时间内没有任何操作清除session...
SSH2+jQueryeasyui写的一个项目,使用拦截器拦截所有请求判断是否过期,如果用户一段时间内没有任何操作则需要从新登录,一段时间内没有任何操作清除session这个做到了,拦截器也能判断出session为空,现在的问题是返回不到登录页面,在filebug中可以看到响应的html页面,就是登录页面但是页面上没有变化,还是原来的页面,求解决。。。谢谢!
响应信息中是有登录页面的!
为什么显示不出来呢!下面是本人写的拦截器,可以获取到session为空,也走了return LOGIN 展开
响应信息中是有登录页面的!
为什么显示不出来呢!下面是本人写的拦截器,可以获取到session为空,也走了return LOGIN 展开
1个回答
展开全部
为什么没人来回答下,,这个用过滤器可以解决:
//这里的代码解决了两个问题,一个是当session过期的时候,返回登录页面,还有没有登录就直接进主页面或者进其他页面则让他返回登录页面。
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest)request;
HttpServletResponse res = (HttpServletResponse)response;
// String refUrl = req.getRequestURL().toString();//获取当前请求的URL
String requestURI=req.getRequestURI();//获取当前请求的URL
String contextPath=req.getContextPath();//获取绝对路径
String path =req.getContextPath();
requestURI =requestURI.substring(contextPath.length());
if(requestURI.equals("/") || requestURI.equals("/login.jsp")||requestURI.equals("/redirectLogin.jsp")||requestURI.equals("/img.jsp")||requestURI.equals("/images/dll.png")||requestURI.equals("/images/htdl.jpg")){
log.debug("现在在登录页面,或者处理页面");
chain.doFilter(request, response);
}else{
HttpSession session = ServletActionContext.getRequest().getSession();//获取session
Long userId = (Long)session.getAttribute("loginCard");//获取当前登录用户的id
if(req.getSession(false)==null||userId==null){
log.debug("Session已失效,返回到登录页面,登录Id:"+userId);
if(userId==null){
path=path+"/login.jsp";
}else{
path=path+"/redirectLogin.jsp";
}
res.sendRedirect(path);;
}else{
log.debug("登录Id: "+userId);
log.debug("Session没有失效!");
chain.doFilter(request, response);
}
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询