12

JAVA でログイン アプリケーションを作成しています。JSP でプレゼンテーションを作成し、サーブレットですべてのロジック (データベース接続) を作成しています [これは、私が知っている正しいアプローチではありません]。サーブレットでユーザー名のパスワードを確認し、セッション変数を作成します。このようにセッションを追加します

sess.setAttribute("username",oName);

次に、ユーザーをそのホームページにリダイレクトします。たとえば、student.jsp です。

response.sendRedirect("student.jsp");

セッション変数を削除します。セッション変数を保持し、student.jsp に移動する方法が必要です。forwading を使用しようとしましたが、うまくいきませんでした。

RequestDispatcher dispatcher =
                getServletContext()
                    .getRequestDispatcher("/student.jsp");

            if (dispatcher != null) {
                dispatcher.forward(request, response);
            }

リクエストを転送しますが、ページのアドレスが Student.jsp に変更されず、良くありません。この点で何か助けていただければ幸いですありがとう

4

4 に答える 4

7

リダイレクトされたリクエストが戻ってきて同じセッションにアタッチするには、セッション ID が必要です。通常は、JSESSIONID (または別の名前) Cookie または URL でパラメーターとして保持されます。

この Cookie または URL パラメーターは、サーブレット コンテナーによって追加される必要があり、自分で追加する必要はありません。

ブラウザに Cookie が表示されず、JSESSIONID を URL に添付していない場合は、リクエストごとに新しいセッションが作成され、同じセッションに添付されていません。

于 2012-11-19T21:49:44.780 に答える
0

tomcat ファイルを編集して、タグをにcontext.xml置き換えてみてください。これは役に立ちました。<Context><Context useHttpOnly="false">

于 2017-04-28T10:55:06.363 に答える
-1

を使用し、を使用しRequestDispatcherてユーザー名変数を設定しますrequest.setAttribute()forward()この場合、ディスパッチャは新しいリクエストを作成しませんが、メソッドを使用して同じリクエストが転送されます。

于 2013-01-10T16:35:45.450 に答える