• ベストアンサー

サーブレットで

こんにちは サーブレットで入力しセッションに追加 それをJSPの別画面で表示したいと考えています。 セッションに追加後 JSPでセッションの値をEnumerationで取得→表示 はできるのですが サーブレットで追記されていってもJSPはブラウザで更新してあげないと表示されない状態です 追記されていくたびに JSPのファイルも更新されていくにはどのような方法があるのでしょうか アドバイスお願いします

  • Java
  • 回答数4
  • ありがとう数4

質問者が選んだベストアンサー

  • ベストアンサー
回答No.4

フレームで分けててって話ならそういう動きになっちゃうよ。 使い方を間違っているとかそういう話じゃなく、基本的なところ。 サーブレットはリクエストがないと動かないってこと。 上の入力画面をA 下の表示画面をB Aで入力した内容をサーブレットにリクエスト、セッションに入れてA画面へフォワード B画面は何もしていないので何も変わらない。 明示的にリロード(リクエスト)を投げるとサーブレットにて追加された内容が表示される。 なのでA画面を再読み込みしたタイミングのonloadイベント(JavaScript)でB画面のリロードを実行する。 こうすればA画面にて入力した内容がサーブレットにてセッションに追加された後に画面の更新が自動的にされるので更新される。 画面を遷移しないように作るならAjaxという技術を利用するといいんだけどまだ多分理解できないと思う。 あとフレーム使ってるならあんまり意味が無い。 たとえばだけど下フレームにmetaタグでリフレッシュを1秒毎とかに行うようにしておけば常に最新を取得しにいく。 フレーム自体最近では使わないけどね。 最後にまた言っておくけど、必ずリクエストがあってレスポンスがあることを忘れずに。

gomadango27
質問者

お礼

わかりやすく説明ありがとうございます!! まだまだ勉強不足ですね。。。 これからもがんばりたいと思います

その他の回答 (3)

  • cma3atgoo
  • ベストアンサー率35% (32/90)
回答No.3

入力画面は遷移してても、 出力画面がリロードされてないのでは? だからブラウザで更新しないと表示されない javascriptを仕込んで、 入力画面のロード時に出力画面もリロードしてやるようにすればよいのでは?

gomadango27
質問者

お礼

勉強になりました ありがとうございます

gomadango27
質問者

補足

ジャバスクリプトですか! 難しそうですね>< 一度調べてみます 入力画面でデータ送信→画面遷移しない方法とかあるんですかねぇ・・・ フォワードの使い方が間違っているような・・・・

  • cma3atgoo
  • ベストアンサー率35% (32/90)
回答No.2

2画面表示して、 画面1での入力をセッションに入れて、 画面2でセッションの内容を表示したいということでしょうかね? だとすると、 画面のほうではAJAXとかで数秒ごとにセッションを取りにいく とかしないと更新されないと思いますが。 見当違いならごめんなさい

gomadango27
質問者

お礼

勉強になりました ありがとうございます

gomadango27
質問者

補足

補足 説明不足ですいませ 画面を二つにフレームで割り 上を入力画面 下を出力画面という状態にしています 上で入力 サーブレットでセッションに保存 サーブレットからフォワードし 入力画面にもどしています 下の出力画面は 更新してあげるとセッションの中身を表示してくれてはいます サーブレットからフォワードっていうのが間違っているのか。。。 入力画面で アクションを使いデータ送信、ページも移動してるのですが それが間違っているのかと・・・模索している状態です アドバイスお願いします

回答No.1

サーブレットで入力しJSPの別画面っていうのが良くわからない。 画面で入力(JSP)→サーブレットへリクエスト→画面に表示(JSP)って手順では無いの? >サーブレットで追記されていってもJSPはブラウザで更新してあげないと表示されない状態です リクエストはどっから投げてるの? 普通は先に挙げたような方法になるからJSPに表示される内容は更新された状態になるんだけど。

gomadango27
質問者

お礼

勉強になりました ありがとうございます

gomadango27
質問者

補足

説明不足ですいませ 画面を二つにフレームで割り 上を入力画面 下を出力画面という状態にしています 上で入力 サーブレットでセッションに保存 サーブレットからフォワードし 入力画面にもどしています 下の出力画面は 更新してあげるとセッションの中身を表示してくれてはいます サーブレットからフォワードっていうのが間違っているのか。。。 入力画面で アクションを使いデータ送信、ページも移動してるのですが それが間違っているのかと・・・模索している状態です アドバイスお願いします

関連するQ&A

  • jsp/サーブレット

    jsp サーブレットを勉強しています。 jspに入力された値を サーブレットに投げます。 サーブレットからjavaクラスに値を投げて javaクラスで値が正しいかどうかを判断します。 その結果をサーブレットに投げて、 サーブレットからjspに投げて jspで結果を表示する。というのは理解できました。 しかし私が行いたいのは、 クライアントがjspにアクセスしたときに、 javaクラスにある値をjspに表示させたいというものです。 この場合はサーブレットに何も投げるものがないのですが、 jsp→サーブレット→javaクラス→サーブレット→jsp このようにサーブレットを使って表示させるには、 どのようなプログラムを書いたらいいのでしょうか。 わかりにくい説明で大変申し訳ないですが、 具体的なプログラムを教えていただけるとありがたいです。 また、参考になりそうなURLがありましたら教えてください。 よろしくお願いします。

  • JSPとサーブレット

    書き込み一覧が表示してあるJSPの入力フォームがあり、そこで入力をして「書き込み」ボタンを押すと入力したデータが、DBへ登録するサーブレットへ飛び、入力をした画面上では「書き込みました」のようなHTML画面が表示されるとします。その画面で「TOPへ戻る」ボタンを押すと、今度は検索サーブレットが動き、DBから最新の一覧が引っ張り出され、登録更新後の書き込み一覧JSPが画面上に出るとします。ここで質問なのですが、「書き込み」ボタンを押すと同時に登録サーブレットと検索サーブレットを動かすことは出来ないのでしょうか?理想としては、「書き込みました」のようなHTML画面は使用せず、一気に更新後の一覧を表示させたいのです。 この辺の知識はあんまり無いもので、具体的な記述方法を教えて頂くと嬉しいです。

    • ベストアンサー
    • Java
  • 静的ページからのサーブレット起動について

    今、JSPとサーブレットの勉強を行っております。 サーブレット側でデータを取得して JSP側で表示を行いたいと思っているのですが フォームアクション等を行わずに、JSP⇒サーブレット⇒JSPと 実施する事は可能でしょうか? URLアクセス ⇒ JSPからサーブレットの処理を呼び出し ⇒ サーブレットから クラスを利用してデータを取得 ⇒ JSPへデータを渡して表示   というように、URLアクセスのみで一連の処理を行いたいです。 サーブレットからJSPにセッション経由でデータを渡して表示する事や JSPからクラスを利用する方法では成功していますが できるだけMVCモデルに準拠した方法で行いたく思っており かつ、コントローラとしてサーブレットを使ってみたくて このような事に挑戦しております。 可能かどうかだけでもわかると非常に有難いですので ご存知の方、どうかよろしくお願い致します。

    • ベストアンサー
    • Java
  • サーブレットのsessionについて…。

    お世話になります。 サーブレットでリクエストを受付け、JSPで表示させたいのですが サーブレットでファイルの読み込みだけをsessionにし一覧表示や 検索結果はrequestで処理したいのですがsessionにしたものを requestで受け取る事ってできますか? 今はsessionで受け渡しもしてるので一覧表示や検索結果が残って しまい上手く表示できません…。 初心者なので説明不足も多々あるとは思いますが宜しくご教授 お願いします。 捕捉要求下されば書き込みます。

    • ベストアンサー
    • Java
  • サーブレットからJSPへ情報を渡す

    サーブレットからJSPへ情報を渡すことについて質問がございます。 ■質問は、ブラウザからサーブレットにリクエストして      モデルからデータを取り出しJSPがモデルを参照して      ブラウザに結果を表示し、ブラウザの画面のボタンを      クリックすると、またサーブレットにリクエストが      いくようにしたいのですが、      そのJSPから二度目のサーブレットへのリクエスト及び      リクエストする際にデータを渡すのですが、      JSPからサーブレットへ飛んでくれず404エラーがでます。      ★どうしたら、JSPからサーブレットへ飛んで       くれるでしょうか? ■簡単な流れでかきますと   リクエスト(hidden value="patu") ブラウザ  →  サーブレット  →  モデル ←→ テキスト           ↓           ↑(参照)   ブラウザ ← ← JSP →→→→→  上記の流れは一回の流れですが、次JSPからまたサーブレットへ  actionし、(hidden value="patu")をして同じ流れを  くりかえしたいのです。 ■JSPではどのようになっているかと申しますと <form action="http:://localhost:8080/sotu/TextServlet"method="POST"> <input type="image" src="NEXTquiz.gif" value="次の問題"     onclick="http://localhost:8080/sotu/TextServlet'"> <iuput type="hidden" name="patu" value="yonyc.getPatu()"> </form> となっております。 ■サーブレットでは protected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {  String kye = request.getParameter("patu");//value受け取り MondaiSC mondaisc = new MondaiSC(); //モデルクラス生成  mondaisc . mondaisc.DefaultQuiz(kye, i); //モデルにキーを渡す ArrayList textList = mondaisc.getTextList();  //モデルクラスからテキストの情報が入っているArrayListを受ける り  HttpSession session =request.getSession();//sessionに入れる  session.setAttribute("text",textList);  RequestDispatcher rd =getServletContext().getRequestDispatcher("/yomi.jsp"); } このyomi.jspからまたサーブレットへ同じリクエストをおくりたいの です。  ところが飛んでくれません。  恐らく、JSPでの記述の仕方に問題があるのではないこと思っており ますが、どなたかアドバイスをお願い致します。  宜しくお願い致します。

    • ベストアンサー
    • Java
  • JSPからサーブレットを呼び出す際に404エラー

    現在、tomcatでサーブレット/JSPの勉強をしています。 参考書に載っている、jspの入力画面で入力した値をサーブレットで受け取り、そのまま表示させるようなサンプルを作成しています。 JSPの入力画面は表示できるのですが、値を入力してサーブレットに移動する際、404エラーが出てしまいます。 ・ファイルの配置 basic |-input |...|-echo.jsp |-WEB-INF |...|-src |......|-input |.........|-EchoServlet.java |...|-classes |......|-input |.........|-EchoServlet.class |...|-web.xml ・echo.jsp内のサーブレットのパスに関する記述 <FORM ACTION="../servlet/input.EchoServlet"> ・web.xmlの記述 <servlet> <servlet-name>EchoServlet</servlet-name> <servlet-class>input.EchoServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>EchoServlet</servlet-name> <url-pattern>/servlet/EchoServlet</url-pattern> </servlet-mapping> tomcatの/confのinvokerのコメントは外していません。 過去の質問も調べてみて、上記の記述の辺りがおかしいのではないかと 思うのですが、、お気付きの点がありましたら教えて頂けないでしょうか。

    • ベストアンサー
    • Java
  • java JSP/サーブレット

    Javaの参考書をやったのですが(参考書:やさ○いJava)、これはアプレットと聞きました。アプレットは現場では殆ど使われないと聞き、JSP/サーブレットは現場で使うと聞いたのでJSP/サーブレットをやっています。 でも、構文が少し違います。 *********************************** 例えば、Javaなら表示するときには System.out.printlnでしたが、 JSP/サーブレットでは違う構文です。 また、Javaならファイルが一つしかありませんでした。(コンパイルするとclassファイルができる) JSP/サーブレットは、スーパークラスやサブクラスは 別のファイルになっています。 ************************************ JSP/サーブレットはプログラム言語なんですか? JSP/サーブレットの中にもJavaの構文があるんですが、先にも述べたようにJavaと違う構文も含まれています。 ちょっと戸惑っています。 しかも、JSP/サーブレットに関する参考書が本屋さんで殆ど見られないのです。 お勧めの参考書などあればいいのですが、 数が少ないためか見当たりません。 それで、とりあえづ「10日で覚○るJSP/サーブレット」という本を買ったのですが、9割がたJSPです。 1割がサーブレットです。 こうなってくると意味がわからなくなってきます。 現場ではサーブレットと聞いていたのに、そのサーブレットが1割しか載っていない。え!?どういうこと!?更にはJSPとサーブレットの書き方も少し違うような気が・・・・。 もう何が何かさっぱりわからなくなってきました。 結局何を勉強すれば良いのか? そもそも、JSPとは?サーブレットとは? ネットで調べはしたもののピンときません。 現場でJavaをやりたいのですが、独学方法というか、 アドバイスを宜しくお願いします。

    • ベストアンサー
    • Java
  • 動的に作成したラジオボタンの選択肢をサーブレットに渡す

    こんにちは。再度失礼します。 JSPで一覧表示された表からラジオボタンでひとつ選択し、サーブレット・Beanにその値を渡し、更新ページで更新処理、または削除処理を行わせたいと考えています。 更新用・削除用のサーブレットは別々です。 一覧表にはラジオボタンをDBに登録された名前が、DBにあるだけ(select * from テーブル)表示されることになっています。 下のソースはわかりやすいように3個だけもってくることにしてます。 【JSP】----------------------------------------------- <% for (int i = 0; i < 3; i++){ %> <tr><td> <input type"radio" name="choice" value="i"> </td><td> <%= [DBから取得した名前](i) %></td> <%= i %> <% } %> 【servlet】 String str = request.getParameter("choice") -------------------------------------------------------- ここで実行するとサーブレットに渡されたchoiceの値はvalueの変数 i になってしまいます。valueの値がサーブレットに渡されるのはわかっているのですが、i ではなく、[DBから取得した名前]をサーブレットに渡したいのですがどうしたらよいのでしょうか。 良い方法をご存知の方、ご教授よろしくお願いいたします。

    • ベストアンサー
    • Java
  • サーブレットから別フレームのパラメータを取り出すことは可能でしょうか?

    はじめまして。 JAVA&サーブレット初心者です。 現在、サーブレット、JSPを使ったWEBアプリケーションの開発をしてお ります。 左右二つに分かれたフレームを持つWEBアプリケーションを作っています。 大まかな流れとしては以下の通りです。  (1)左側のフレーム(仮にleft.jspとします)からサーブレット  (仮にservlet1とします)を呼び出す。  (2)右側フレームに(1)の処理結果のJSP(right1.jsp)を呼び出す  (3)right1.jspでサーブレット(servlet2)を呼び出す。  (4)右側フレームに(3)の処理結果のJSP(right2.jsp)を呼び出す。  (5)right2.jspでサーブレット(servlet3)を呼び出す。  (6)右側フレームに(5)の処理結果のJSP(right3.jsp)を呼び出す。   上記のように左側フレームが固定で右側フレームのJSPがサーブ  レット処理によって切り替わるようなWEBアプリケーションを開発し  ています。    問題なのは、今回開発しているシステムの要件により、(5)で呼び出され るサーブレット(servlet3)内の処理で左側のフレーム(left.jsp)の入力 パラメータが必要だということです。  servlet1でleft.jspの入力パラメータをセッションオブジェクトに保管 し、servlet3でセッションオブジェクトから復元すれば実現は可能かと思 いました。  しかし、途中servlet2からの処理が大変重いものであり、セッションオ ブジェクトは一定時間がたつと無効になってしまうと聞いたのでタイトル のような方法を考えたのですが、見当がつかず、今回の質問に至りました。  request.getParameter("****"); ではもちろん取り出せないと思いますが、サーブレットで別フレームのパ ラメータを取り出すことは可能でしょうか?

    • ベストアンサー
    • Java
  • サーブレットとJSPの連携

    今、サーブレットとJSPについて勉強しまいます。 HTMLからサーブレットでリクエストを受け付け、 JSPに転送し表示させたいのですが、フォームからの入力の場合は String carname = request.getParameter("cars"); で入力データを取得するコードを書きますよね? (本ではこう書いてました・・・。) では、HTMLの入力フォームからではなくリンクからの 受付けの場合はどう書けばいいのですか? 勉強を始めたばかりで初心者なので、説明不足の点もあるかも 知れませんが分かりやすくご指導宜しくお願いします…。

専門家に質問してみよう