- 締切済み
JSPのページが表示されない
JavaServlet&JSPの質問です。 ある業務システムにてVB.NETの商品一覧より明細にある「画像」ボタンをクリックすると、Servletが呼び出されJSPを介してブラウザーに商品画像が表示されるサイトを作成しました。 通常の使用方法では問題は起きないのですが、 既に商品画像のブラウザーが画面に表示されている状態で、別の明細の「画像」ボタンをクリックした場合に、画面ブラウザーが更新されない(前の画像のまま)という現象が起きております。 最初はクラス間にて受け渡すセッションの商品コードが上書きされていないのでは?と調査したところ、セッションは正常に後で選択された商品コードに書き換わっていました。 通常URLを羅列したHTMLを作成し、そこから同じようにA商品の画像→B商品の画像とすると正しく表示されるようです。 ちなみに環境はApache2.0とTomcat5.0です。 また動きとしては以下のような動きとなります。 (1).NETのボタン押下 xxxxxx/servletGazou?SYOUHIN=A (2).servletGazouにて以下を処理 SYOUHIN=Aをセッションに保存 REDIRECT a.jsp (3).a.jsp bサーブレットを呼んで、閉じる (4).bサーブレットがb.jspを介してクライアントへ返す。 ※(3)の処理はURLの隠蔽の為に無理やりダミーページを表示するための処理です。 どなたかこのような現象をクリアされた方はいらっしゃいませんでしょうか?
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- HIRSYU
- ベストアンサー率51% (45/87)
関連するQ&A
- jspからServletを呼び、元のjspページに戻るにはどうしたらよいですか?
・jspページにあるボタンを押すとServletに値を渡す。 ・Servletで処理をする。 ・処理の結果を元のjspページに表示する。 というプログラムを作りたいと考えています。 jspページ→Servletで処理をする、という所までは出来たのですが その後元のページに戻すというところで困っています。 jspページは複数(十数ページ)あり、Servletは1つです。 a.jsp→Servlet→a.jsp b.jsp→Servlet→b.jsp このように、どのjspページから呼ばれても、元のjspページに 戻したいのですが、どのようにすれば実現できるでしょうか?
- ベストアンサー
- Java
- JSPで「処理中」をブラウザに表示
サーブレット+DB、JSPでプログラムをしています。 以下の質問(CGIが対象です) http://www.okweb.ne.jp/kotaeru.php3?q=173368 と似たようなことを、JSPで行うにはどうしたらよいでしょうか。 サーブレットの処理中(長い処理)に、「処理中」のメッセージを表示して、終了したら完了ページに飛ばしたいのです。 「処理中」の表示はJSPでもJavaScriptでも、サーブレットから直接出力しても構いません。 さらに言えば、サーブレットではfor文で処理を回しているので、「○%完了」などが表示できたら最高です。 よろしくお願いします。
- ベストアンサー
- 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のページ移動
書き込み一覧が表示してあるJSPの入力フォームがあり、そこで入力をして「書き込み」ボタンを押すと入力したデータが、DBへ登録するサーブレットへ飛び、入力をした画面上では「書き込みました」のようなHTML画面が表示されるとします。その画面で「TOPへ戻る」ボタンを押すと、今度は検索サーブレットが動き、DBから最新の一覧が引っ張り出され、登録更新後の書き込み一覧JSPが画面上に出るとします。ここで質問なのですが、「書き込み」ボタンを押すと同時に登録サーブレットと検索サーブレットを動かすことは出来ないのでしょうか?理想としては、「書き込みました」のようなHTML画面は使用せず、一気に更新後の一覧を表示させたいのです。
- 締切済み
- HTML
- 静的ページからのサーブレット起動について
今、JSPとサーブレットの勉強を行っております。 サーブレット側でデータを取得して JSP側で表示を行いたいと思っているのですが フォームアクション等を行わずに、JSP⇒サーブレット⇒JSPと 実施する事は可能でしょうか? URLアクセス ⇒ JSPからサーブレットの処理を呼び出し ⇒ サーブレットから クラスを利用してデータを取得 ⇒ JSPへデータを渡して表示 というように、URLアクセスのみで一連の処理を行いたいです。 サーブレットからJSPにセッション経由でデータを渡して表示する事や JSPからクラスを利用する方法では成功していますが できるだけMVCモデルに準拠した方法で行いたく思っており かつ、コントローラとしてサーブレットを使ってみたくて このような事に挑戦しております。 可能かどうかだけでもわかると非常に有難いですので ご存知の方、どうかよろしくお願い致します。
- ベストアンサー
- Java
- サーブレットからJSPへフォワード 画像が・・・
サーブレットからJSPへフォワード 画像が・・・ javaの勉強をしながらサーブレットやJSPを使ったページを作ってるのですが、サーブレットで処理を行った後にJSPへ sc.getRequestDispatcher("/index.jsp").forward(req, res); で転送したら画像が表示されません。 JSPで記述したページを直接開いたりresponse.Redirect(URL)で遷移した場合は画像もちゃんと表示されます。画像だけではなくスタイルシート等も読み込んでいないようなのです・・・orz どうしたらいいのでしょうか? 【ファイル構成】 [プロジェクトフォルダ] JSPファイル(.jsp) [image] 画像ファイル [style] スタイルシート [WEB-INF] [classes] サーブレットファイル(.class)
- ベストアンサー
- Java
- JSPから出力されたHTML画面のcloseについて
こんにちは! 現在、サーブレットからJSPを呼び出して 画面表示させているのですが、その際(JSP呼び出しの時)に「A」と いうJSPを最初に呼んでその中で、「B」、「C」というフレームを 表示していてその「C」でスクリプトの「window.close」を 使っているのですが、画面が閉じません。 最初にサーブレットを呼び出すHTMLで「window.open」を しているのですが、原因が分かりません。 この方法でできればそれはそれでよいのですが、 もし、JSPを呼び出して、画面表示後にすぐ閉じるといった 処理をご存知の方いらっしゃいましたら 教えてください。
- ベストアンサー
- Java
- MVCモデルのJSPの使い方
こんにちは。二回目の質問をさせていただきます。 今MVCモデルとJDBCで、社員データをDBにいれる簡単なプログラムを作ろうとしているのですが、初期の段階で躓きました。 サーブレットにてBeanをSessionに関連付けているのですが、いざJSPにてBeanを使おうとするとエラーが出るのです。 JSPのコードは冒頭部分にきちんと下記のものを記述し、 (Beanクラス名はFileBeanです。サーブレットできちんとSessionで関連付けています) <jsp:useBean id="bean" class="FileBean" scope="session" /> JSPの中で、Beanのメソッドを使うようにしているのですが下記のようなエラーが出てしまいます。 org.apache.jasper.JasperException: JSPのクラスをコンパイルできません注: sun.tools.javac.Main は推奨されません。 JSPファイル: /Nyuryoku.jsp の中の行: 3でエラーが発生しました 生成されたサーブレットのエラーです: C:\Apache Tomcat 4.0\work\localhost\SyainData\Nyuryoku$jsp.java:65: クラス org.apache.jsp.FileBean が見つかりません。 FileBean bean = null; ^ 因みに参考書のもので試してみたところ、JSPにおいてBeanを使おうとすると空のHTMLが吐き出され、ブラウザには真っ白な画面が表示されます。JSPのBeanの部分を削除すると、ブラウザには普通にHTMLの部分が表示されるのです。 以上二つのことから、JSPでのBeanの使い方がおかしい、というのはわかったのですが、自分でどう解決して良いのかわかりません。特に参考書のコードはちゃんと市販されているものなので、問題ないと思うのですが… 最後になりましたが、私の環境は Tomcat4.0 で OSはMEになります。 皆様お忙しいとは思いますが、ご教示の程宜しくお願い致します<(_ _)>
- ベストアンサー
- Java
- コントローラの役割はJSPにはやらせないですよね?
コントローラの役割を、HttpServletだけでなくjspにやらせる構成も 正しい思想の1つなのでしょうか?? 「コントローラ」は、 基本「依頼と、依頼結果をもとにした次の依頼」をする。 という風に役割を捉えていました。 例えば Aに処理依頼をしたあと、 処理が成功したから今度はBに処理依頼をして、 その結果データが 1件以上だったらCに依頼をして、 0件だったら次はDに処理を依頼する。 のような。 そして、それはHttpServletのところにやらせるものなのかと捉えています。 (※間違っているのかもですが。。) しかし、 書こうと思えば、サーブレットを撤廃して、 画面遷移は、x.jsp ⇒ y.jsp ⇒ z.jsp と、サーブレットを介さずにチェーンを作ることも可能だと思います。 (1)そういう仕組もわりと一般的なのでしょうか? (2)jspになんでもやらせすぎると、それぞれのソースが、 ◆A:プレゼンテーション層としての処理なのか?(イテレータでの描画とか) ◆B:ファンクション層の処理なのか?(例えば入力チェック処理など) ◆C:コントローラ層の処理なのか? (各結果を元に、次にどこの処理にどういうデリゲートするのか等処理) がパッと分かりにくく、カオスになりやすいと思っています。 そんな風になるくらいだったら、 コントローラはサーブレットにさせた方が良いと思うのですが、あえて全てJSPにさせるメリットもあったりするのでしょうか? ◆確認 画面遷移は、コントローラの役割だと思っていたのですが、 もしかしたらそこが間違っているのでしょうか? (WEB系の開発かどうかでも違うのかもですが。) .
- 締切済み
- Java
お礼
ありがとうございます。 キャッシュは確認してみました。 結局.NET側からの起動方法を変えて対応してOKでした。