• ベストアンサー

JSPの表示について

JSP-java間での操作を行う場合にタイトル部分と明細部分で タイムラグがあります。 以下のような画面でタイトルとページ(リンク)の表示と 明細の表示に微妙なタイムラグが発生し、明細がまだ表示 されていないタイミングでページ(リンク)をクリックすると 明細の修正ボタンがありませんというエラーが発生してしまって います。(スクリプトで修正ボタンをdisabledにしようとしてる為) IEに表示されるときには(クライアントでは)htmlとして表示されて いるという認識でしたがこの認識が間違っているのでしょうか? それとも普通にHTMLで表示速度が速くなるとこのようになって しまうのでしょうか。 (htmlで試してみましたが再現は出来ませんでした) 環境 tomcat,apcheはクライアントで起動してます(開発環境です) 画面イメージ タイトル ページ 1・2・3 ・・・・リンク 明細 氏名 年齢 あああ 12 修正(ボタン) いいい 22 修正(ボタン) ううう 33 修正(ボタン)

  • hammy
  • お礼率84% (32/38)
  • Java
  • 回答数4
  • ありがとう数4

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

  • ベストアンサー
  • momozange
  • ベストアンサー率67% (21/31)
回答No.2

JSPは一度サーブレットに変換され、レスポンスオブジェクトにHTMLを出力した状態で返却されます。 なので「通常」の状態であれば処理はすべて完了しています。 ただしそのHTML自体が冗長であったりすると、ネットワーク層での遅延や ブラウザの解釈遅延による誤動作が発生する可能性は残されます。 また、画面がフレーム仕様になっていたり、ページインポートを使用していたりした場合も同様です。 最近のアプリケーションではあまり見かけなくなりましたが このような場合、クライアント側でJavaScriptによる制御をかけることが多いです。 読み込み中やすでに実行中の場合は画面操作を無効にする、というように。 サーバー側でやる場合はトークン制御などが参考になります。

hammy
質問者

お礼

内部での処理の考え方は間違えていなかったようで ホッとしました。 フレームは使用していますがこの画面については 1つのフレーム内で表示される内容ですのでネットワークの 可能性が高いようです。 画面はタイトル10行明細20行程度ですのでブラウザの 解釈遅延とは考えにくいと思っています。 助かりました。有難うございます。

その他の回答 (3)

  • PED02744
  • ベストアンサー率40% (157/390)
回答No.4

ANo.3です。 >1つのフレーム内にタイトルと明細が存在しているんです。 う~ん。。。ありえない。。 どうしても起こってしまうのなら、METAタグやヘッダ部のキャッシュや有効期限(expires)を変えてみてはいかがでしょう? http://support.microsoft.com/kb/234067/ja

hammy
質問者

お礼

お礼が遅くなり申し訳ありません。 キャッシュについてはノーキャッシュを指定しています。 ただ、キャッシュしないはずがしているときもありましたので かなり怪しいです。 有効期限も設定してみます。 有難うございました。

hammy
質問者

補足

結局本番機で動作させると再現が出来ないようですので 様子をみることにしました。 有難うございました

  • PED02744
  • ベストアンサー率40% (157/390)
回答No.3

JSPは一度サーブレットに変換され、サーバ側で処理されてHTMLのレスポンスとして応答が返って来ます。 なので、各ページ単位の処理が完了した時点で各ページの読み込みが終わってしまいます。 フレーム割をして各フレームに別々のJSPが割りついている場合(多分これですよね?)は、各ページ(JSP)が別々のサーブレットに展開されている形になってしまうので、タイムラグが発生することになります。 一般的にはJavaScriptで制御します。 ボタンを押したとき、指定されたオブジェクトが存在しなければ無視するような処理を入れる事になります。 例えばこんな感じ。 ボタン側  <input type='button' onClick='hoge();' /> function hoge(){ obj = window.top.明細ドキュメント.フォーム.修正ボタン; if(obj == null) return; // 修正ボタンオブジェクト自身がnullなら無視 } もしくは、明細側のbodyでonloadされたら、ボタン側のアイテムをdiabled=false にするとか。

hammy
質問者

お礼

有難うございます。 >フレーム割をして各フレームに別々のJSPが割りついている場合 >(多分これですよね?)は、各ページ(JSP)が別々のサーブレットに >展開されている形になってしまうので、タイムラグが発生すること >になります。 1つのフレーム内にタイトルと明細が存在しているんです。 なので???となってしまっていました。 javascriptでの制御は参考にさせていただきます。 助かります。

  • momozange
  • ベストアンサー率67% (21/31)
回答No.1

まずこれはJSPやHTMLの問題ではなく、アプリケーションの画面仕様または処理仕様、および設計上の問題です。 「明細の修正ボタンがありません」というエラーはTomcatやJ2EEが出力しているのではなく あくまでもアプリケーションが出力しているものです。 このメッセージを設定いる箇所を探して、どのパラメータが不足しているかを調査してみるとよいかもしれません。 > JSP-java間 この表現は曖昧です。 JSPも所詮Java(サーブレット)であり、出力ストリームにHTMLが存在するだけです。 > IEに表示されるときには(クライアントでは)htmlとして表示されて > いるという認識でしたがこの認識が間違っているのでしょうか? この認識はさほど間違ってはいません。 ブラウザから送信したリクエストに対し、レスポンスがHTMLとして返却されたものです。 ところで、何を回答すれば正解なのでしょうか・・・。 エラーの原因?制御Scriptの処理内容?調査方法?

hammy
質問者

お礼

有難うございます。 >このメッセージを設定いる箇所を探して、どのパラメータが不足して>いるかを調査してみるとよいかもしれません。 これについてはIEが出しているメッセージということは認識できています。 画面が全て表示されてから操作すると問題なく処理できていました。 問題が発生するのはタイトル部分が表示されていて明細部分が表示 されていないタイミングでページのリンクをクリックした時ですので 画面上に明細情報が存在しない為だと思われます。 やはり、IEの問題なのでしょうか・・・。 IEのバージョンはIE6.0 SP2です。 (すみませんバージョン情報かいてませんでしたm(_ _)m )

hammy
質問者

補足

すみません。頭がゴチャゴチャしている状態で質問してしまいました。 リクエストを送信してから画面に表示されるまでに 内部でどのようになっているか判らなくなってしまい 質問させていただきました。 IEのリンククリック(submit) ↓ サーバでjavaの処理 ↓ サーバでjspの処理を行いhtml化 ↓ htmlとしてクライアントにレスポンス ↓ クライアントではIEにhtmlを表示 上記の順に処理されていると思っているのですが クライアントでIEに表示される時点でタイトル部分と 明細部分の表示にタイムラグが発生している為 jspでHTML化されたものは部分分けしてレスポンス されるのかと考えてみていました。 (明細部分はSQLの結果をループさせて表示しています) 教えて頂きたいと思っているのはサーバでJSPからHTMLを 生成してレスポンスするのは完全なHTMLになってから なのかある程度での部分わけしているのかということです。 下手な文章で申し訳ありませんが宜しくお願い致します。

関連するQ&A

  • JSP

    現在画面開発で困っております。 JSPのタグで教えていただきたいことがあります。 例にして説明させていただきますと 第一画面に、ある検索結果のCollectionを表示させます。 そしてCollectionの明細にそれそれボタンを追加します。 ボタンのリンク先は第二画面で明細それぞれの詳細情報が見ることが出来ます。 そこで実現したいのが、明細数が多い場合、第二画面から戻ると明細が最初から表示されてしますので、ボタンを押した途中の明細の場所にリンクさせたいのです。 HTMLのNAMEタグを使ってアンカーを埋め込んで試そうとしましたが、Strutsを利用しているため第二画面の戻るボタンがHREFタグではないためどうしたらいいか分からなくなってしまいました。 分かりにくい文章ですが、皆様のお知恵を拝借できませんでしょうか。宜しくお願い致します。

  • 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の隠蔽の為に無理やりダミーページを表示するための処理です。 どなたかこのような現象をクリアされた方はいらっしゃいませんでしょうか?

  • Servlet+Beans+JSPでのページング方法

    Win2000+j2sdk1.4.2でEclipse2.1を使用して、 開発を行っております。 商品明細の画面を作っているんですが、 1ページ30明細にしたいと思っています。 つまり、検索サイトの検索結果画面のように、 30明細表示したら、次ページ+前ページの リンクボタンを表示して、そのリンクボタンを押されたら、 同じJSP内で次ページの明細を表示するようにしたいんです。 いわゆるページング処理ってやつです。 で、今明細を表示する際には、BeansでDBを読み込んで、 そのRecordsetをJSPに渡して、getObject()を使用して、 明細表示しています。 ResultSet rs = (ResultSet)request.getAttribute("rs");  while(rs.next()){   out.println("<tr>");    for(int i=0;i<columns.length;i++){ out.println("<td>"+rs.getObject(i+1));    }  } 上のような感じで明細書いてます。 ASPの場合だとページ処理用にRecordsetオブジェクトにプロパティがあったので、割と簡単だったのですが、 JAVAの場合getObject(x)のxの数値をうまく変更してページ処理をするのがベターな方法なんでしょうか? それでもできないわけじゃないんですが…めんどくさいし…バグ増えそうだし… 質問内容をまとめると、 1.JAVAのWebページ処理はどうやってやるのか?または、やっていますか? 2.RecordSetオブジェクトにページ処理用のプロパティ等あるのか? という2つになります。 そもそも、RecordSetオブジェクトをまんま使って、明細書かないよっ!てなツッコミでもいいです。 回答お待ちしてます。よろしくお願いします。

    • ベストアンサー
    • Java
  • jspファイルをリンクしたい

    素人なので質問自体もトンチンカンかもしれませんが、 やりたいことは、自分のHPのリンクボタンに、 別のサイトの検索結果ページをリンク先として 貼り付けたいのです。 ただし、検索結果のページのアドレスをコピー して、リンクボタンに貼り付けただけではエラー (null)が表示され目的のページが表示されません。 検索結果のページは常に同じページが表示されれば 良いので、検索条件は固定です。 検索結果ページのファイルの拡張子はjspです。 どのような処理をすれば、目的の検索結果ページを 表示できるのでしょうか? 教えてください。

    • ベストアンサー
    • Java
  • ブラウザの戻るボタンを押すと警告画面が表示される。

    こんにちは!! ブラウザで、あるページを表示し、しばらくして ブラウザの[戻る]をクリックすると、 下記のメッセージ画面が表示され、 [更新]をクリックしないと前画面に戻れません。 -------------------------------- -------------------------------- 警告: ページの有効期限切れ 要求したページは、 フォームで送信された情報を 使用して作成されました。 このページは、 もう利用できません。 セキュリティ保護のため、 情報は自動的には、 再送信されません。 情報を再送信し、 このwebページを表示するには、 ツールバーの[更新]ボタンを クリックしてください。 -------------------------------- -------------------------------- この画面を表示させずに[戻る]機能を 使えるようにするには、 サーバ、あるいはクライアントの どこの設定を変更すればいいのか 教えてください。 (現在、実行環境のみが上記のように なっています。 開発環境は上記の警告画面は 表示されません。) 実行環境: サーバ :AS400 webサーバ :Websphere クライアント:Windows98, IE5.0 開発環境: サーバ :WindowsNT4.0 webサーバ :IIS クライアント:Windows98, IE5.0

  • IE8だとブログの表示がおかしい

    IE8だとブログの表示がおかしい ブログ(FC2)を作成していますが、Firefoxだと正常に表示されるのに、 IE8で表示するとおかしな現象が発生します。 (説明下手なので、分かり難い表現があるかと思いますがご了承下さい。) 【症状】 IE8でブログを表示させる。 初回の表示は、問題無く全て表示される。 しかし、「更新」ボタンを押したり、違う画面にして「戻る」を押した時に 表示される画面が正しく表示されなくなります。 どのように正しく表示されないかと言うと、 ブログ内のアクセスランキングやサイト内ページランキング等、 外部とリンクしている(?)画面が全く表示されなくなります。 表示しているのは、サイドバーに(プラグインの)タイトルが ただ表示されるだけになります。 改めて、アドレスを直接入力して表示し直すと正しく表示します。 しかし、「更新」ボタンを押すと同じ症状となります。 何故、IE8で画面を更新したりすると表示が出なくなってしまうのでしょうか? ご存知の方がいましたら是非教えて下さい。

  • 検索結果の画面に戻るとページを表示できない

    下記事象が発生しております。 対処方法ご存知の方、ご教示いただければ幸いです。 なお、例としてOK Webとしておりますが、他のサイト であっても同様の動きをするサイトでは不具合が再現 されます。 (「同様の動き」とは、検索を行い、検索結果のリンク をたどった後に戻るボタンで検索結果一覧に戻ること) 【環境】 Windows XP Pro SP2 Internet Explorer 6.0.2900 【発生事象】 ・OK WebトップページにてQ&A検索を行う。 ・検索結果が表示される。 ・検索結果のリンクをクリックし、内容を表示する。 ・ブラウザの「戻る」ボタンをクリックする。 ・「ページを表示できません」と表示され、本来検索結果 の画面が表示されるはずであるが、表示されない。

  • jspファイルの表示チェックする環境を作りたい

    jspのHTML部分(スタイルシート含)だけを修正し、 担当のプログラマーさんに渡しているのですが、 表示チェックだけでも自分(自宅)でできればいいなと 思ってます。 jspファイルを見れる環境を作りたいと思ってます。 一番簡単な方法を教えていただけませんか。 環境:windows XP、IE7

    • ベストアンサー
    • Java
  • IE6をインストールし、リンクで他のサイトに飛ぶと画面が表示されず、タイトルバーのみ表示されます。

    IE6をインストールし、ページに張られたリンクで他のサイトに飛ぶと画面が表示されず、飛んだ先のページのタイトルバーのみが小さく表示され、通常の画面で表示されません。拡大ボタンをクリックすると大きくなりますが、初めから画面を表示できるようにするには、何処の設定を直せばよろしいのでしょうか。 お願いします。

  • ホームページを開くと常に最小化されて表示されてしまう

    タイトルのとおりです。以前はリンクしたページを開くと、最大化されて表示されていたのですが、いつの頃からか最小化されて表示されてしまいます。リンク先を最大化画面で表示するにはどうしたらよいでしょうか?

専門家に質問してみよう