2

私はJSPクラスを受講しましたが、使用する前にHttpSessionのすべての属性を常に削除する必要があることを学びました。そこで、クラスメートの1人が、「使用を終えた後、HttpSessionを完全に削除するのはどうですか?」と尋ねました。

だから、私の質問は「HttpSessionを削除できますか?」です。

これまでのところ、私が理解していることから... HttpSessionは、HttpServletRequestやHttpServletResponseと同じように、サーブレットコンテナによって作成されます。HttpServletRequestを介して取得しますが、手動で削除することはできません。代わりに、セッションを終了するように設定できるタイムアウトがあります。削除できないため、使用する前に必ずセッションをクリーンアップする必要があります。私は正しいですか?

ありがとう!

4

1 に答える 1

15

私はJSPクラスを受講しましたが、使用する前にHttpSessionのすべての属性を常に削除する必要があることを学びました。

removeAttribute()によって取得できるすべての属性を手動で使用してこれを意味する場合getAttributeNames()、これは実際には意味がありません。コース/チューターが悪いのか、コース/チューターを誤解したのかわかりません。


そこで、クラスメートの1人が、「使用を終えた後、HttpSessionを完全に削除するのはどうですか?」と尋ねました。

はい、無効にすることで「削除」できます。

session.invalidate();
response.sendRedirect("login.jsp");

それ以降のリクエストは、サーバーに新しいセッションの作成を強制します。ちなみに、リダイレクトは必須ではありませんが、新しいセッションでビューを表示する場合は必須です。

参照:

于 2011-11-21T18:53:47.323 に答える