私はを使用してセッションを作成しています
HttpSession session = request.getSession();
セッションを作成する前に、セッションが存在するかどうかを確認します。どうすればいいですか?
作成する前にを確認する場合は、次のようにします。
_HttpSession session = request.getSession(false);
if (session == null) {
// Not created yet. Now do so yourself.
session = request.getSession();
} else {
// Already created.
}
_
このafter作成をチェックする必要がない場合は、次のようにすることもできます。
_HttpSession session = request.getSession();
if (session.isNew()) {
// Freshly created.
} else {
// Already created.
}
_
行とboolean
が保存されます。 request.getSession()
は request.getSession(true)
と同じです。
関数があります request.getSession(boolean create)
パラメータ:
create
-必要に応じてこのリクエストの新しいセッションを作成する場合はtrue。現在のセッションがない場合にnullを返す場合はfalse
したがって、false
を渡すだけで、getSession
にセッションが存在しない場合にnullを返すように指示できます。
if(null == session.getAttribute("name")){
// User is not logged in.
}else{
// User IS logged in.
}
HttpSession session = request.getSession(true); if(session.isNew()){...何かをする} else {...他の何かをする}
.getSession(true)
は、Javaが存在しない場合に新しいセッションを作成するように指示します。
もちろんあなたもするかもしれません:
if(request.getSession(false) != null){
HttpSession session = request.getSession();
}
ご覧ください: http://Java.Sun.com/javaee/6/docs/api/javax/servlet/http/HttpServletRequest.html
乾杯、ヨルゲン
あなたがあなたのウェブサイトに接続するすべての新しいユーザーのために新しいセッションを作成するなら、あなたのパフォーマンスは大きな打撃を受けるでしょう、と付け加えます。 request.getSession(false)を使用して、ユーザーにセッションがあるかどうかを確認します。このメソッドを使用すると、ユーザーが認証されているかどうかに基づいてビューをレンダリングする場合、新しいセッションを作成しません。