• 締切済み

クライアントの画面にちょっとずつ表示

お世話になります。 JSPなどをもちいてクライアントの画面(ブラウザ)にちょっとずつ画面を表示していくにはどうしたらよいですか? イメージ的にはプログレスバーみたいなものをブラウザに表示したいのです。 JavaScriptではなしに 今現在サーバで処理されている状況をクライアントにちょっとずつ流したいのです。 もちろんセッションが切れるほど長い処理ではなく、 数秒から数十秒で終わる処理です。

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

みんなの回答

noname#16216
noname#16216
回答No.1

> JSPなどをもちいてクライアントの画面(ブラウザ)にちょっとずつ画面を表示していくにはどうしたらよいですか? > イメージ的にはプログレスバーみたいなものをブラウザに表示したいのです。 > JavaScriptではなしに > 今現在サーバで処理されている状況をクライアントにちょっとずつ流したいのです。 これは、普通では出来ません。 HTTPによる通信は、クライアント(ブラウザなど)からサーバに、 URLに指定したページ(CGIとかサーブレットとかでもそうですが)に アクセスしたいと要求を出し、それに対してサーバが要求を処理して返却します。 (サーブレットなら、Javaのプログラムを実行、CGIなら対象の言語で実行) サーバの処理進捗をクライアントに表示したいということですが、 サーバからクライアントに応答を返却するためには、サーバ上の 処理が終わっていないといけないので、サーバからクライアントに ちょっとずつ何度も応答を返却することはできません。。。 ということで、もしどうしても行う必要があるなら、 ブラウザ - サーブレット - ブラウザ         |     別スレッドで処理を実行中 というようなイメージで、最初のサーブレットへのアクセス時に、 処理を別スレッドで起動して、ブラウザに応答を返却。 このとき、ブラウザに表示する画面に <meta http-equiv="Refresh" content="xx"> などを使って、xx秒後に再びサーブレットにアクセスし、そのときの 別スレッドの実行状況を取得して、再びクライアントに応答を返却、、、 という処理を別スレッドの実行が終了するまで行うようにしなければ なりません。 当然、エラー時の処理など非常に複雑なものになると思います、、、

watapen
質問者

お礼

ご回答有り難うございます。 また、お礼が遅くなったことをお詫びします。 上記の件ですが どこかのページでみたことがあるのでそれで解析してみます。 最終的にはご指摘の通りになってしまうかもしれませんが、 とりあえず調査いたします。 ありがとうございました。

関連するQ&A

  • サーバ側とクライアント側のjavaScript

    「サーバサイドでjavascriptを実行させる」というのはどういうことなのでしょうか? node.js や、 イントラマートを使っているときは、 サーバサイドでのjavascriptというのも 全然理解できるのですが、 それらの基盤を使用していなくても、 サーバサイドの処理に、javascriptを使うことができるのでしょうか? 基本、jspの上の方に、 「サーバ上にあるjavascript」が クライアントサイドで動くと捉えており、 そういう意味では、基本、javascriptはクライアントサイドで動くと捉えているのですが違うのでしょうか? ※java+jspで実装しています。 .

  • ログイン後の画面をアドレスバーから来たユーザに見せないようにする

    こんばんは。お世話になります。 JSPでログイン画面を作成したのですが、ログイン後のページを、ブラウザのアドレスパーで直接アドレスを打ってきたユーザに表示したくないのですが、どの様にすればよいんでしょうか? セッションを使えばよいと聞いたのですが、どの様に使えばよいのかが分かりません。 どなたか、分かる方ご返事ください。

    • ベストアンサー
    • Java
  • CGIとJavascriptの違いについて

    Javascriptの初心者です、宜しくお願いします。 CGIでは「クライアントがサーバーに処理要求を出してサーバーが処理をし、クライアントにhtmlを返す」。 Javascriptでは「クライアントがサーバーに処理要求を出すが、サーバーは処理をしないで、クライアントにhtmlを返してサーバーが処理をして、ブラウザが表示させる」 と本には書いています。 CGIの場合、(1)サーバーからクライアントに返すhtmlとは、具体的にはどのような内容のものでしょうか。htmlファイルという意味でしょうか。(2)またサーバーがする処理とはどのようなものでしょうか。 また、Javascriptの場合、(1)サーバーの役割とはどのようなものでしょうか、(2)サーバーから返されるhtmlとはどのようなものでしょうか、CGIと同じ内容なのでしょうか。(3)この時のブラウザの役割、作業はCGIとはどのように違うのでしょうか。 以上、宜しくお願いします。

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

  • クライアントとサーバという言葉の使い方

    「クライアントPC」とは、ユーザが操作している側のPCのことでブラウザ等を介して使用するPCというのが一般的です。 クライアントPC(ブラウザ) <-> サーバ(Webサーバ+CGI/PHP/JSP等) そこでクレジットカードの決済業者が提供しているAPI(代表的な例:WebPay)みたいに、 webサーバのプログラム(サービス利用者)にwebサーバのプログラム(サービス提供者)のサービスを提供するような場合、 クライアントPC???(Webサーバ+CGI/PHP/JSP等) <-> サーバ(Webサーバ+CGI/PHP/JSP等) この場合もサービス利用者側のことをクライアントPCと呼ぶのでしょうか?WebサーバなのにクライアントPCというのもなんか違和感があるのですが・・・適切な名称があったら教えてください。

  • JAVASCRIPTでの画面を再表示させない方法

    JAVASCRIPT初心者です。よろしくお願いします。 ちょっと特殊なのですが、JSPで <a href=\"javascript:nextPattern()\"> のような形で<A>タグで遷移を行うように指定しています。 JAVASCRIPTではフラグに応じて処理を分けたいと思っています。 function nextPattern() {  if (flg == 1) { ☆☆処理1☆☆  } else { ☆☆処理2☆☆  } } そこで、このflgが1であるときに、画面遷移を行わないようなメソッドにしたいのです。 画面の再表示がされず、処理が自画面に戻ってくるだけ。っというようなことをしたいのですが、思いつくことを(return false;やbreak;など・・・)してみたところ うまくいきません。 どうしても<A>タグの内容を変えたくないので、ややこしくなっているとは思うのですが、何とかお知恵をお貸しください。 よろしくお願い致します。

  • セッション管理におけるクライアント同時接続制限について。

    皆さんこんにちは。セッション管理について教えて下さい。 Perlを使用し、cgiでWebのUIを作製中でして、CGI::Session.pmのモジュールで セッション管理を行っており、クライアントの同時接続数を1台に制限したいのですが、 うまくいかずに困っております。 クライアントからアクセスがあった場合に、最新のセッションを $session->expire 及び $session->empty で確認し、期限切れ、又は無効となっていたら新規セッションを発行している為、 クライアントがログアウトした場合は$session->deleteでサーバ内のセッションファイルを 削除できて問題はないのですが、ブラウザのxボタンで閉じてしまった場合、サーバ内の セッションファイルが削除されず、他のクライアントがログインできない状況になってしまいます。 セッションのデータはサーバ内のディレクトリに、セッションIDのみcookieで クライアントに保存という形態をとっております。 何か良い方法はないでしょうか?何卒ご教授のほど、お願い致します。 OS:FedraCore3 使用言語:Perl 5.8.6 Webサーバ:thttpd

  • javaScriptのセキュリティ

    javascriptの処理は、 クライアントサイドで改竄可能だと思っており、 高いセキュリティが求められる処理は、 サーバサイドがよい認識で合っていますでしょうか? 例えば、SQLインジェクション対策をjavascriptでしていたとして、以下の手順だとすり抜けられたりしないでしょうか? (1)ウェブページを表示して、ブラウザの「html保存」でクライアントサイドに保管する。 (2)html内で宣言されたjavascriptの各リンクも、一旦ダウンロードする。 (3)クライアントに落としてきたjavascriptを改竄する。 (4)クライアントに落としてきたhtml内のjavascriptのリンクをローカルのjavascriptに差し替えて、 サーバにリクエストする。 高いセキュリティが求められる処理は、 サーバサイドがよい認識で合っていますでしょうか?

  • クライアント画面にサーバプッシュでダイアログをポップアップ表示。何か良い方法ないですか?

    Webアプリケーション環境で1台の端末がある操作を行った際、他の端末が操作をしないように操作中止のポップアップダイアログを他の数台の端末画面上に表示させたいのですが、サーバプッシュで実装出来ないでしょうか? ダイアログのポップアップ表示はクライアント側でJavascriptからActiveXをCALLすることで実装しているので、何らかの方法でサーバからクライアントのJavascript関数をCALLできればよいのですが・・・ Ajaxですかね?出来ればクライアントプルにはしたくないのですが、やっぱダメですかね。 Cometという技術を使えば出来そうですが・・・Comet+Ajaxで擬似サーバプッシュはできるのでしょうか?

  • クライアントからサーバの関数を呼び出して実行させるには・・・?(2)

    こんにちわ。再び質問させていただきます。 前回の追加説明もさせていただきたいと思います。 クライアントサーバシステムでの関数呼び出しをしたいと言っていましたが、実際に行うのはサーバで処理をし、クライアントに結果を返すということをしたいと思ってます。クライアント側から関数ライブラリのある関数に対して、引数となる値をブラウザもしくは他の方法で、サーバに送信し、サーバは受け取った引数を関数ライブラリの関数に渡し実行させる。その結果をクライアントのブラウザ上などに表示させるといった感じです。 こういうことを可能にする手段のうち、最適なものはどういうものなのか教えていただきたいと思います。そしてその具体的なやり方についても知りたいので、よいサイトなどもありましたら、教えていただけないでしょうか。 よろしくお願いします。

専門家に質問してみよう