ログイン認証のページを作っていて、session==nullの場合はこのクラスのページにアクセスしても自動的にログインページにリダイレクトする仕様でコードを書いたんだが、ログイン認証を経ることなくいきなりアクセスしたこのクラスのページが表示される
要は、このページにアクセスするにはログインの認証を突破しなければ表示されないという仕様にしたくて、sessionがnullだったら自動的にログインページに飛ぶようにコードを書いたんだ。
ところが、nullになるはずの場面でnullにらずに、ifの分岐処理が常にelseを選択してしまい、このクラスのページにアクセスしてもリダイレクトの処理がされずにページが遷移しない。
HttpSession session = request.getSession(false);このコードでsessionの値がnullになることは間違いないと思うんだが何故かelseに処理が進んでしまう。
このサイトによると
一番簡単にnullの状態を試すには、ブラウザのクッキーを破棄した後、サーブレットへ直接リクエストを飛ばすと、HttpSession.getSession(false) は null になります。
ということなので、Safariのブラウザから環境設定→プライバシー→webサイトのデータを管理→全てのキャッシュ削除。
なんかうまくいった。