0

我的项目在调试模式下运行良好,但在我部署在 gae 上时运行不佳。会话似乎有问题?

下面列出了关键的java和jsp:

新StudInfoServlet.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");

新校友.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

提前致谢。

4

2 回答 2

1

如文档<sessions-enabled>true</sessions-enabled>中所述,您是否通过添加到 appengine-web.xml 文件来启用 HTTP 会话?

于 2012-10-29T22:12:05.880 回答
0

您应该使用 equals 而不是 == 运算符检查字符串是否相等。更改 session.getAttribute("StuInfoPage").toString() == "NewStudSchoolInfo"session.getAttribute("StuInfoPage").toString().equals("NewStudSchoolInfo")

于 2012-10-30T08:35:18.570 回答