1

私は、私が置く必要があるセッション属性を設定するために、読んだ:

<sessions-enabled>true</sessions-enabled>

appengine-web.xml内に実装しjava.io.Serializable. (理由はわかりませんが!)

以下は、 HttpSessionを使用するサーブレットの 1 つです。

 @Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) 
        throws ServletException, IOException {
    String userName = request.getParameter("username");
    String password = request.getParameter("password");
    ArrayList list = new ArrayList();
    if(userName.compareTo("user") != 0 ) {
        list.add("Wrong Username");
    } else if(password.compareTo("password") != 0) {
        list.add("Wrong Password");
    }

    if(list.isEmpty()) {
        HttpSession session = request.getSession();
        if(session.isNew()) {
            session.setAttribute("UserRole", "PW :Admin");
            session.setMaxInactiveInterval(900);
            RequestDispatcher rd = request.getRequestDispatcher("abc/cpanel/PcPanel.jsp");
            request.setAttribute("SessionStatus", "JC"); // Just Created 
            rd.forward(request, response);
        }
    } else {
        response.sendRedirect("abc/cpanel/PcPanel_Login.jsp");
    }
}

ユーザー名とパスワードを検証してifブロックに入ると、要求はPcPanel Login.jspに転送されるはずですが、転送されません。代わりに、このサーブレットのアドレスが記載された空白のページが表示されます。しかし、すべてのセッションジャンクを削除/コメントすると、正常に動作します。なぜそれが起こるのですか?私は何かを見逃していますか、それともどこかで間違いを犯していますか?

4

1 に答える 1

1

使用しないでくださいisNew()isNew()セッションが最初に確立されたとき、つまりユーザーが最初にページのいずれかに到達したときにのみ真になります。

この質問への回答を参照してください:セッションが機能していません - GAE/J

于 2012-08-14T18:23:35.140 に答える