我的项目在 Debug模式下运行良好,但在 gae 上部署时运行不佳。 session 似乎有问题?
下面列出了关键的java和jsp:
NewStudInfoServlet.java
public class NewStudInfoServlet extends HttpServlet {
public void doPost(HttpServletRequest req, HttpServletResponse resp)
throws IOException {
if (req.getParameterValues("StuFirName") != null
&& req.getParameter("StuFirName") != ""
) {
Stud stud = new Stud();
stud.setFirstName(req.getParameter("StuFirName"));
req.getSession().setAttribute("NewStud", stud);
req.getSession().setAttribute("StuInfoPage", "NewStudSchoolInfo");
req.getSession().setAttribute("NewLackInfo", "successful!");
} else {
req.getSession().setAttribute("StuInfoPage", "NewStudInfo");
req.getSession().setAttribute("NewLackInfo", "First name, Last name, Graduation Year is required");
}
resp.sendRedirect("/NewAlumni.jsp");
NewAlumni.jsp
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<%@include file='WEB-INF/Header.jsp'%>
<%
if (session.getAttribute("StuInfoPage") != null
&& session.getAttribute("StuInfoPage").toString() == "NewStudSchoolInfo") {
%>
<%@include file='WEB-INF/NewStudSchoolInfo.jsp'%>
<%
} else {
%>
<%@include file='WEB-INF/NewStudInfo.jsp'%>
<%
}
%>
在 Debug模式下,效果很好:用户填写名字并按提交按钮,然后NewAlumni.jsp将包含WEB-INF/NewStudSchoolInfo.jsp以让用户提交更多信息;
但是,当我在 GAE 中部署该应用程序后,它的工作方式有所不同。用户填写名字并按提交按钮后,NewAlumni.jsp 不断包含 WEB-INF/NewStudInfo.jsp,而不是 WEB-INF/NewStudSchoolInfo.jsp。我确信
req.getSession().setAttribute("NewStud", stud);
req.getSession().setAttribute("StuInfoPage", "NewStudSchoolInfo");
req.getSession().setAttribute("NewLackInfo", "successful!");
被处决是因为我可以看到该死的“成功!”在 NewStudInfo.jsp 中。
怎么了?需要您的帮助。
我已准备好在 appengine-web.xml 中设置 true
提前致谢。
最佳答案
您是否通过添加 <sessions-enabled>true</sessions-enabled>
来启用 HTTP session 到您的 appengine-web.xml 文件,如 the documentation 中所述?
关于java - GAE session 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13130227/