怎么很Session timeout时自动显示登入页面 就是你登入之后一段时间没有任何操作。它自动就跳转到登入页面了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 一般都是执行某一操作时,判断Session是否过期,如果过期跳转到登陆页面。如果你要实现某个页面没有操作然后跳转到登陆页面,需要加入倒计时方法。当用户有操作时计时器置初始值。操作完成后开始倒计时,当时间为0时,跳转到登陆页面。 写个filter,检测session,如果为空(过期或没有登录都为空),就跳转到登录页面。 不再有任何操作Filter,还能检测到session为空吗?我刚开始也是这么做的,不过好像不行public class SecurityFilter implements Filter{ public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequest req = (HttpServletRequest) request; HttpServletResponse res = (HttpServletResponse) response; request.setCharacterEncoding("GBK"); HttpSession session = req.getSession(); try{String un=SessionMgr.getUsersSession(req).getUserNO(); if(un!=null){ chain.doFilter(req, res); }else{ res.sendRedirect("/error.jsp"); } }catch(Exception e){ res.sendRedirect("/error.jsp"); } } @Override public void destroy() { // TODO Auto-generated method stub } @Override public void init(FilterConfig arg0) throws ServletException { // TODO Auto-generated method stub } 不再有任何操作,filter当然不会检测到,但是,既然没有任何操作,为什么要显示登录界面呢?肯定是要继续操作才让他重新登录。 楼主的想法是不行的 试想一个web都不发请给你,你怎么判断session是否已经过期列?? 一般就是用一个Filter 拦截请求,判断session里面的值。。如果过期,重定向到登陆页。。必须要用户执行某一个操作才行。你可以看任何系统,都是这样 拦截器 拦截每个对action的访问 session失效重定向到login页面 session中的对象没有时就进行跳转到登陆页面,这样当session超时后session中的对象没有就自然的跳转了页面了。 public class SecurityFilter implements Filter{ public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequest req = (HttpServletRequest) request; HttpServletResponse res = (HttpServletResponse) response; request.setCharacterEncoding("GBK"); HttpSession session = req.getSession(); try{String un=SessionMgr.getUsersSession(req).getUserNO(); if(un!=null){ chain.doFilter(req, res); }else{ res.sendRedirect("/error.jsp"); } }catch(Exception e){ res.sendRedirect("/error.jsp"); } } @Override public void destroy() { // TODO Auto-generated method stub } @Override public void init(FilterConfig arg0) throws ServletException { // TODO Auto-generated method stub }这是我写的Filter代码帮我看看怎么不行啊 流程控制问题。 java+ireport打印问题 急 js验证不了,求解 ERP报表难题 初学java应该先看些什么书籍呢?java里面的东西是不是很多,什么j2ee,j2se到底是些什么东西呢? 求助!!如何在Jlist中动态的添加删除项,然后刷新显示? 请教一个path问题 关于变量定义类型的问题 关于编码转换的思考,请大家帮忙? JAVA初学者,很想知道各位在公司用JAVA具体做什么.有什么小项目适合新手做? JXTA跨网关通信问题 linux下java程序怎么得到自身进程被杀死的信息
public class SecurityFilter implements Filter{
public void doFilter(ServletRequest request,
ServletResponse response,
FilterChain chain)
throws IOException, ServletException { HttpServletRequest req = (HttpServletRequest) request;
HttpServletResponse res = (HttpServletResponse) response;
request.setCharacterEncoding("GBK");
HttpSession session = req.getSession();
try{String un=SessionMgr.getUsersSession(req).getUserNO();
if(un!=null){
chain.doFilter(req, res);
}else{
res.sendRedirect("/error.jsp");
}
}catch(Exception e){
res.sendRedirect("/error.jsp");
}
} @Override
public void destroy() {
// TODO Auto-generated method stub
} @Override
public void init(FilterConfig arg0) throws ServletException {
// TODO Auto-generated method stub
}
不再有任何操作,filter当然不会检测到,但是,既然没有任何操作,为什么要显示登录界面呢?肯定是要继续操作才让他重新登录。
拦截器 拦截每个对action的访问 session失效重定向到login页面
public void doFilter(ServletRequest request,
ServletResponse response,
FilterChain chain)
throws IOException, ServletException { HttpServletRequest req = (HttpServletRequest) request;
HttpServletResponse res = (HttpServletResponse) response;
request.setCharacterEncoding("GBK");
HttpSession session = req.getSession();
try{String un=SessionMgr.getUsersSession(req).getUserNO();
if(un!=null){
chain.doFilter(req, res);
}else{
res.sendRedirect("/error.jsp");
}
}catch(Exception e){
res.sendRedirect("/error.jsp");
}
} @Override
public void destroy() {
// TODO Auto-generated method stub
} @Override
public void init(FilterConfig arg0) throws ServletException {
// TODO Auto-generated method stub
}
这是我写的Filter代码帮我看看怎么不行啊