日期:2014-05-18  浏览次数:20783 次

Session监听器问题
目标:用户登录一段时间(如30分钟)没有使用该系统,再操作时系统提示“时间过时,请重新登录”,然后系统自动返回到登录页面。
处理方式:使用Session监听器
WEB.XML文件:
<web-app>
<session-config>  
<session-timeout> 30 </session-timeout>
</session-config>
<listener>
<listener-class> com.jxc.SessionListen </listener-class>
</listener>
监听器类SessionListen
package   com.jxc;
import   java.io.IOException;
import   javax.servlet.ServletException;
import   javax.servlet.http.HttpServletRequest;
import   javax.servlet.http.HttpServletResponse;
import   javax.servlet.http.HttpSessionEvent;
import   javax.servlet.http.HttpSessionListener;
public   class   SessionListen   implements   HttpSessionListener{
      public   void   sessionCreated(HttpSessionEvent   event){
      }
      public   void   sessionDestroyed(HttpSessionEvent   event){
HttpServletRequest   request=null;
HttpServletResponse   response   =   null;
try   {
event.getSession().getServletContext().getRequestDispatcher( "/login.jsp ").forward(request,response);
}   catch   (IOException   e)   {
//   TODO   自动生成   catch   块
e.printStackTrace();
}   catch   (ServletException   e)   {
//   TODO   自动生成   catch   块
e.printStackTrace();
}
}
}
结果不行,请问是哪出问题了?

------解决方案--------------------
request,response都是null啊......
------解决方案--------------------
session为空啊!
怎么也要传request过来啊!
然后request.getSession();
或者
if(request.getSession(false))判断一下,然后怎么样你都知道!
  

------解决方案--------------------
好像session默认的过期时间就是30分钟啊。