基本的に、セッションチェッカーで特定のセッション名属性を要求して存在するかどうかを確認するセッションチェッカーが必要です。存在しない場合は、ログインページにリダイレクトされます。シンプルに聞こえますが、私はリダイレクトに問題があります。Java - セッションの確認とリダイレクトが存在しない場合
リダイレクトを削除し、if文の下にテキストを印刷すると、ページに印刷されます。しかし、リダイレクトしようとすると、それはできません。 コードは、私がこのようなコードを書いた
<jsp:include page="/radnikSession" />
でページの先頭に含まれているコントローラファイルのいずれかの下です。
String id;
HttpSession session = request.getSession(false);
id = (String)session.getAttribute("sessionRadnikID");
if(id == null) {
//out.println("No session id");
response.sendRedirect("login.jsp");
}
私は間違っていますか?そのような
session'がnullの場合も 'ことを警戒してください:
その後のようなものは、あなたのweb.xmlにそれを設定! 'getSession'は現在のセッションを返します。存在しない場合は、メソッドに 'true'が渡されない限りnullが返され、新しいセッションが作成されて返されます。あなたが提供したものは動作するはずです(あなたがNullPointerExceptionを実行していないと仮定して)。 – nasukkin
「ヌル」だけでなく、コンテンツがあるかどうかを確認することもできます。ほぼすべての文字列の 'null'チェックをやめ、' StringUtils.isBlank(...) 'と' StringUtils.isNotBlank(...) 'に切り替えました。那須キンは言ったように、セッションが「ヌル」の場合は、隠れたエラーで終了することもあります。 –
'request.getSession()'に 'false'を渡す点は何ですか?要求が既にセッションの一部ではない場合は、確かにあなたは*作成して*作成したいと思うでしょうか?それ以外の場合は、ログインページでセッション属性を保存する場所はどこですか? 'true'を渡す(あるいは' getSession() 'の他のバージョンを使用する)場合、' null'が返されることを心配する必要はありません。 –