
下記の環境でWebアプリケーションを開発しています。
java 1.5
eclipse 3.3
tomcat 5.5
ある画面Aは検索ボタンを押して結果一覧を表示したり、
結果一覧の詳細を知るためにリンクを押して、ポップアップ画面Bを表示したりします。
web.xmlに
<session-timeout>10</session-timeout>
と記述し、10分でタイムアウトとしています。
Servlet処理の最初で
request.getSession(false)
によりセッションを取得し、nullであればタイムアウト画面に遷移させています。
結果一覧を表示した後、10分間何もせずに画面Bを表示しようとすると
ポップアップの画面はタイムアウト画面で表示されます。
Servletにブレークポイントをつけて確認したところ
このときのrequest.getSession(false)の結果はnullでした。
タイムアウト画面を×ボタンで閉じ、A画面内で検索ボタンを押したところ、
request.getSession(false)の結果はnullではありませんでした。
ただし、session内にsetAttributeしていたBeanが全てnullになっており、
その後の処理で例外が発生してしまいました。
なぜ検索ボタンを押したところで
sessionがnullになっていないのでしょうか?
No.3ベストアンサー
- 回答日時:
もう解決されているかもしれませんが、
(4)で表示されるタイムアウト画面ってJSPではないですか?
<@ page session="false" %>
の記述が無い場合、JSP表示時に暗黙的にsessionオブジェクトが作られます。
ですので、(5)では別IDのsessionになっているのではないでしょうか。
No.2の補足にある、(3)と(4)の手順を飛ばして
(5)の操作(10分経過後に再度検索ボタンを押す)したらどうなりますか?
ご回答ありがとうございます。
>(4)で表示されるタイムアウト画面ってJSPではないですか?
タイムアウト画面はJSPで作成しています。
><@ page session="false" %>
>の記述が無い場合、JSP表示時に暗黙的にsessionオブジェクトが作られます。
>ですので、(5)では別IDのsessionになっているのではないでしょうか。
記述はありませんでした。ここでsessionが生成されていたんですね…。
記述を追加したら(5)でsessionがnullになり、
画面Aもタイムアウト画面に遷移することができました。
>No.2の補足にある、(3)と(4)の手順を飛ばして
>(5)の操作(10分経過後に再度検索ボタンを押す)したらどうなりますか?
直接(5)を行うと画面Aがタイムアウト画面になります。
タイムアウト画面は他の画面に遷移することはできず、
ウィンドウの×ボタンを押す以外、何もできないので特に問題ないと思っています。
No.2
- 回答日時:
isNewで、新規に作成されたSessionかどうかを
確認してみてはどお?
trueならそこに来るまでのどこかでgetSessionしているんだわ
isNewを入れてみたところ、falseでした。
ただし、セッションIDは別のものになっていました。
Servlet開始直後のgetSessionに続けて
isNewを入れた結果は以下の通りです。
((1)だけは別のServletで他は同じServletです)
(1)システム起動(request.getSession(true))
isNew→true
(2)検索(request.getSession(false))
isNew→false((1)と(2)のセッションIDは同じ)
(3)10分以内に画面B表示(request.getSession(false))
isNew→false((2)と(3)のセッションIDは同じ)
(4)10分以上何もせず画面B表示(request.getSession(false))
sessionがnullであるためisNewできず。
(5)検索(request.getSession(false))
isNew→false((3)までとセッションIDは異なる)
Servletの最後に遷移処理を実装しています。
RequestDispatcher dispatcher = context.getRequestDispatcher("JSP名称");
dispatcher.forward(request, response);
のような形です。
(4)はnull判定直後に上記処理でタイムアウト画面に遷移しています。
「ServletでセッションIDが異なる場合はタイムアウト画面に遷移させる」
という方法は"あり"なのでしょうか?
(jsp内のhidden項目でセッションIDを持たせ、session.getId()で取得したIDと比較)
試しにやってみましたが、(5)の時点で、
hidden → null
getId() → (3)とは別のID
でした。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PHPで入力フォームでデータを確認表示画面まで送る流れを日本語で理解したいのです。 1 2023/05/29 19:12
- PHP php 確認表示画面で値をSESSIONから取り出す理由の解釈は正しいでしょうか? 1 2023/06/09 17:39
- Visual Basic(VBA) Excel VBAのリストボックスの値を他のフォームに反映させる方法を教えてください。 2 2023/07/14 14:06
- Java Javaプログラミングの質問になります。 ボタンを押下した時に画面遷移して 画面から戻ってきた時のi 1 2023/06/26 07:50
- PHP php 入力画面から確認表示画面へ情報の受け渡しについて。 1 2023/06/07 18:00
- MySQL PHPとMySQLを使った掲示板の作り方 1 2022/06/02 13:00
- PostgreSQL DBFluteについて質問です。 環境:PostgreSQL java8 前提:webアプリケーショ 1 2022/07/07 00:49
- エッセイ・随筆 尋常小学校唱歌『さくら さくら』の解釈について以下のものは成立しますか?普通じゃおもろない? 7 2023/02/26 16:52
- InternetExplorer(IE) お気に入りの「一覧」の表示 2 2022/11/21 13:59
- Chrome(クローム) Chromeで検索するたびにウイルス感染(?)の警告がでます。 どうすれば解決しますか? 5 2023/02/06 14:40
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・【お題】甲子園での思い出の残し方
- ・【お題】動物のキャッチフレーズ
- ・人生で一番思い出に残ってる靴
- ・これ何て呼びますか Part2
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・あなたが好きな本屋さんを教えてください
- ・かっこよく答えてください!!
- ・一回も披露したことのない豆知識
- ・ショボ短歌会
- ・いちばん失敗した人決定戦
- ・性格悪い人が優勝
- ・最速怪談選手権
- ・限定しりとり
- ・性格いい人が優勝
- ・これ何て呼びますか
- ・チョコミントアイス
- ・単二電池
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・泣きながら食べたご飯の思い出
- ・一番好きなみそ汁の具材は?
- ・人生で一番お金がなかったとき
- ・カラオケの鉄板ソング
- ・自分用のお土産
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
非アクティブな画面を操作する...
-
プログラミングに詳しい方、HTA...
-
F5でリロードしないとセッシ...
-
三菱GOTの画面切り替えについて
-
Webページの画面分割
-
このサービスの仕組みが知りた...
-
ServletからServletへの値渡し
-
アンケートの回答時間を計り,...
-
テキストフィールドの値をほか...
-
自分のファイル名取得
-
log4jでログレベルが取得できな...
-
C言語でプログレスバーを表示す...
-
CPUを2つ搭載するといいのです...
-
VB6 開発環境のエディタに行...
-
文字化けについて
-
腕時計の時報をならないように...
-
JAVA JSPにてSQL UPDATE文が実...
-
JSPから値を送ったときのServle...
-
ActiveWorkbook.Pathの一つ下の...
-
Struts 1.3.10 でoptionタグ
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
三菱GOTの画面切り替えについて
-
C言語で今まで表示していた画面...
-
ServletからServletへの値渡し
-
遷移元を判定したい!
-
C# ログイン画面からメイン画面...
-
location.hrefでページ切替時の...
-
ASP.NET 画面遷移前の状態を保...
-
画像の縦横比固定の計算方法。
-
Java-jspの画面入力値保持について
-
FormのsubmitでFormの内容がnull
-
登録後、呼び出し元ページに戻...
-
セッション切れでのリクエスト...
-
Javaプログラミングの質問にな...
-
検索画面→結果画面→検索画面と...
-
非アクティブな画面を操作する...
-
画面を隠す・消す方法を教えて...
-
親ウィンドウの画面遷移
-
javaのstrutsを使った画面遷移...
-
strutsで、JSP→アクションクラ...
-
system("cls")について
おすすめ情報