我的项目在调试模式下运行良好,但在部署gae时效果不佳。会议似乎有些不对劲?
下面列出了密钥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'%>
<%
}
%>
在调试模式下,它运行良好:用户填写第一个名称并按下提交按钮,然后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
提前致谢。
答案 0 :(得分:1)
您是否已通过将<sessions-enabled>true</sessions-enabled>
添加到appengine-web.xml文件来启用HTTP会话,如the documentation中所述?
答案 1 :(得分:0)
您应该使用equals而不是==运算符检查字符串相等性。更改
session.getAttribute("StuInfoPage").toString() == "NewStudSchoolInfo"
至
session.getAttribute("StuInfoPage").toString().equals("NewStudSchoolInfo")