我读到,设置我需要放置的会话属性:
<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 的地址。但如果我删除/评论所有会话垃圾,它工作正常。为什么会这样?我错过了什么还是我在某个地方犯了错误?