【发布时间】:2013-12-09 13:21:24
【问题描述】:
这个问题可以通过谷歌搜索来解决,我也是,但由于我是 servlet 技术的新手,我无法解决这个问题。
我需要为特定用户分配会话,会话将在 10 秒后过期,当会话过期时,用户将再次被转发到 login.html 页面。
我读了一些关于它的信息,但是当会话到期时我没有收到回调。 这是我的尝试。
Login servlet
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String userName = request.getParameter("user_id");
String pwd = request.getParameter("pwd");
PrintWriter out = response.getWriter();
if(userName.equalsIgnoreCase(pwd)){
HttpSession session = request.getSession();
session.setMaxInactiveInterval(10);
ActiveUser mActiveUser = new ActiveUser();
mActiveUser.setUserName(userName);
session.setAttribute("userName", mActiveUser);
RequestDispatcher rd = request.getRequestDispatcher("welcome.html");
rd.forward(request, response);
}else{
response.setContentType("text/html");
out.print("UserName and password did not match, Please try again");
RequestDispatcher dispatchToIndex = request.getRequestDispatcher("index.html");
dispatchToIndex.include(request, response);
}
}
ActiveUser.java
@WebListener
public class ActiveUser implements HttpSessionBindingListener,
HttpSessionListener {
//overridden methods of the interfaces are included, and simple print statement is there to get know about callback is received or not.
问题:当会话在 10 秒后过期(超时)时,我没有收到所需的回调,但如果我在 10 秒后发送请求,它会正确地知道上一个会话已过期并且我在 @ 上收到回调987654323@
提前致谢
【问题讨论】: