我读过,要设置我需要放置的会话属性:
<sessions-enabled>true</sessions-enabled>
在 appengine-web.xml 中,并实现java.io.Serializable.
(虽然我不明白其原因!)
以下是使用 HttpSession 的servlet之一:
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String userName = request.getParameter("username");
String password = request.getParameter("password");
ArrayList list = new ArrayList();
if(userName.compareTo("user") != 0 ) {
list.add("Wrong Username");
} else if(password.compareTo("password") != 0) {
list.add("Wrong Password");
}
if(list.isEmpty()) {
HttpSession session = request.getSession();
if(session.isNew()) {
session.setAttribute("UserRole", "PW :Admin");
session.setMaxInactiveInterval(900);
RequestDispatcher rd = request.getRequestDispatcher("abc/cpanel/PcPanel.jsp");
request.setAttribute("SessionStatus", "JC"); // Just Created
rd.forward(request, response);
}
} else {
response.sendRedirect("abc/cpanel/PcPanel_Login.jsp");
}
}
验证用户名和密码并输入if
块后,请求应转发到 PcPanel Login.jsp ,但不会发生。请显示空白页面,其中包含地址这个servlet。但是,如果我删除/评论所有会话垃圾,它工作正常。为什么会这样?我错过了什么或者我在某处弄错了吗?
答案 0 :(得分:1)
请勿使用isNew()
。 isNew()
仅在会话首次建立时=当用户首次登陆您的任何网页时才会生效。
请参阅此问题的答案:Session is NOT working - GAE/J