怎么很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编程问题。新手求助。 JPanel上的addKeyListener方法没有起作用,为什么? 寻找优秀java源代码 我想根据当前日期 取到前一日 前一月 前一年 应该怎么做? 如何用javascrip实现动态的往html画表格 请问怎样才能使TextField()中的字符一开始就被设置为选中状态? (请举个例子)谢谢 关于数据在网间加密传输所用的类,新手请教 这地方有没有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代码帮我看看怎么不行啊