- ベストアンサー
サーブレットで
こんにちは サーブレットで入力しセッションに追加 それをJSPの別画面で表示したいと考えています。 セッションに追加後 JSPでセッションの値をEnumerationで取得→表示 はできるのですが サーブレットで追記されていってもJSPはブラウザで更新してあげないと表示されない状態です 追記されていくたびに JSPのファイルも更新されていくにはどのような方法があるのでしょうか アドバイスお願いします
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
フレームで分けててって話ならそういう動きになっちゃうよ。 使い方を間違っているとかそういう話じゃなく、基本的なところ。 サーブレットはリクエストがないと動かないってこと。 上の入力画面をA 下の表示画面をB Aで入力した内容をサーブレットにリクエスト、セッションに入れてA画面へフォワード B画面は何もしていないので何も変わらない。 明示的にリロード(リクエスト)を投げるとサーブレットにて追加された内容が表示される。 なのでA画面を再読み込みしたタイミングのonloadイベント(JavaScript)でB画面のリロードを実行する。 こうすればA画面にて入力した内容がサーブレットにてセッションに追加された後に画面の更新が自動的にされるので更新される。 画面を遷移しないように作るならAjaxという技術を利用するといいんだけどまだ多分理解できないと思う。 あとフレーム使ってるならあんまり意味が無い。 たとえばだけど下フレームにmetaタグでリフレッシュを1秒毎とかに行うようにしておけば常に最新を取得しにいく。 フレーム自体最近では使わないけどね。 最後にまた言っておくけど、必ずリクエストがあってレスポンスがあることを忘れずに。
その他の回答 (3)
- cma3atgoo
- ベストアンサー率35% (32/90)
入力画面は遷移してても、 出力画面がリロードされてないのでは? だからブラウザで更新しないと表示されない javascriptを仕込んで、 入力画面のロード時に出力画面もリロードしてやるようにすればよいのでは?
お礼
勉強になりました ありがとうございます
補足
ジャバスクリプトですか! 難しそうですね>< 一度調べてみます 入力画面でデータ送信→画面遷移しない方法とかあるんですかねぇ・・・ フォワードの使い方が間違っているような・・・・
- cma3atgoo
- ベストアンサー率35% (32/90)
2画面表示して、 画面1での入力をセッションに入れて、 画面2でセッションの内容を表示したいということでしょうかね? だとすると、 画面のほうではAJAXとかで数秒ごとにセッションを取りにいく とかしないと更新されないと思いますが。 見当違いならごめんなさい
お礼
勉強になりました ありがとうございます
補足
補足 説明不足ですいませ 画面を二つにフレームで割り 上を入力画面 下を出力画面という状態にしています 上で入力 サーブレットでセッションに保存 サーブレットからフォワードし 入力画面にもどしています 下の出力画面は 更新してあげるとセッションの中身を表示してくれてはいます サーブレットからフォワードっていうのが間違っているのか。。。 入力画面で アクションを使いデータ送信、ページも移動してるのですが それが間違っているのかと・・・模索している状態です アドバイスお願いします
- Taiyonoshizuku
- ベストアンサー率37% (183/489)
サーブレットで入力しJSPの別画面っていうのが良くわからない。 画面で入力(JSP)→サーブレットへリクエスト→画面に表示(JSP)って手順では無いの? >サーブレットで追記されていってもJSPはブラウザで更新してあげないと表示されない状態です リクエストはどっから投げてるの? 普通は先に挙げたような方法になるからJSPに表示される内容は更新された状態になるんだけど。
お礼
勉強になりました ありがとうございます
補足
説明不足ですいませ 画面を二つにフレームで割り 上を入力画面 下を出力画面という状態にしています 上で入力 サーブレットでセッションに保存 サーブレットからフォワードし 入力画面にもどしています 下の出力画面は 更新してあげるとセッションの中身を表示してくれてはいます サーブレットからフォワードっていうのが間違っているのか。。。 入力画面で アクションを使いデータ送信、ページも移動してるのですが それが間違っているのかと・・・模索している状態です アドバイスお願いします
お礼
わかりやすく説明ありがとうございます!! まだまだ勉強不足ですね。。。 これからもがんばりたいと思います