GAE会话不起作用?

时间:2012-10-29 21:54:53

标签: java google-app-engine jsp session

我的项目在调试模式下运行良好,但在部署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

提前致谢。

2 个答案:

答案 0 :(得分:1)

您是否已通过将<sessions-enabled>true</sessions-enabled>添加到a​​ppengine-web.xml文件来启用HTTP会话,如the documentation中所述?

答案 1 :(得分:0)

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