0

私のプロジェクトはデバッグ モードではうまく動作しますが、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/NewStudSchoolInfo.jsp ではなく、WEB-INF/NewStudInfo.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

== 演算子ではなく等号で文字列の等価性をチェックする必要があります。session.getAttribute("StuInfoPage").toString() == "NewStudSchoolInfo" に 変更 session.getAttribute("StuInfoPage").toString().equals("NewStudSchoolInfo")

于 2012-10-30T08:35:18.570 に答える