JqueryeasyUi+SSH2使用拦截器当用户一段时间内没有任何操作时需要重新登录,返回不了登录页面。

SSH2+jQueryeasyui写的一个项目,使用拦截器拦截所有请求判断是否过期,如果用户一段时间内没有任何操作则需要从新登录,一段时间内没有任何操作清除session... SSH2+jQueryeasyui写的一个项目,使用拦截器拦截所有请求判断是否过期,如果用户一段时间内没有任何操作则需要从新登录,一段时间内没有任何操作清除session这个做到了,拦截器也能判断出session为空,现在的问题是返回不到登录页面,在filebug中可以看到响应的html页面,就是登录页面但是页面上没有变化,还是原来的页面,求解决。。。谢谢!

响应信息中是有登录页面的!

为什么显示不出来呢!下面是本人写的拦截器,可以获取到session为空,也走了return LOGIN
展开
 我来答
属于我的帆帆
推荐于2016-10-13
知道答主
回答量:28
采纳率:0%
帮助的人:12.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);
}
}
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式