• ベストアンサー

JSPかサーブレットでオセロゲーム

サーバに配置したサーブレットオセロをブラウザAとブラウザBが行う ブラウザAが石を置いたときにはその応答としてサーバからブラウザAの画面が更新されるが 相手が石を置くのを待っているブラウザBはブラウザAが石を置いても自分の画面を更新する方法がない という問題をどのように解決したらいいのでしょうか? HTTP定期的更新機能によって定期的に画面を更新すればできますがこれでは定期的に画面が更新されてしまいクール性に欠けます 何かいい方法は有るでしょうか?

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

  • ベストアンサー
  • kazsharp
  • ベストアンサー率37% (16/43)
回答No.5

アプレットは死んでるどころか、今は大流行ですよ。 yahooゲームもそうですし、世界中のサイトでめちゃめちゃ使われています。 確かに「遅さ」が原因で避けられていた時期もありましたが、それ以上に汎用性やセキュリティの強さでウェブでは人気の技術になってしまいました。 質問者さんの要件のような場合にも、普通はサーブレットよりもアプレットを使うことが多いのではないでしょうか

guuman
質問者

お礼

ありがとうございます 日本では高速インターネットが普通になっていますからこれからはアプレットが有望かもしれませんね

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (4)

回答No.4

> これならクールじゃないかな? だめですか… そうとなると、別にJSPやサーブレットという、webサーバー上の言語は無関係に、HTTPを利用したシステムでは実現不可能です。HTTPとはそういう仕様のプロトコルです。 それを実現する方法でJavaを使うとすれば、アプレットでソケットを利用してやることになるでしょうね。友人がちょうどJavaで通信対戦プログラムを作っていましたが、ちょうどそれと似たような感じになるのかと思います。

guuman
質問者

お礼

ありがとうございます 死んだと思っていましたが、アプレットはまだ利用価値があるのですね

全文を見る
すると、全ての回答が全文表示されます。
  • osumitan
  • ベストアンサー率33% (102/307)
回答No.3

> ありがとうございます > 待っている側が何らかのアクションをしなければならない > ということは変わりないのですね そうですね。 Servlet/JSPはサーバサイドで動くものですから、 サーバ側からは通知のパケットをクライアントに投げられても クライアント側でそれを受ける処理ができませんからね。 ブラウザはあくまで自分からURLにリクエストを飛ばして その応答を待つことしかできないわけですから、 サーバ側がクライアントに通知するタイミングはそこしかなく、 (目立たないように)自動更新するしかないでしょう。

guuman
質問者

お礼

ありがとうございます やはり本質的に無理みたいですね

全文を見る
すると、全ての回答が全文表示されます。
回答No.2

Ajaxを学んでみるのがいいかも。 新しい技術で、ちょこっとだけしか知らないので、なんともいえませんが、おそらくこれで実現します。 基本はJavaScriptなので、恐れなくても大丈夫かと思います。 とりあえずちょっと抜粋。 Webブラウザを使ったWebアプリケーションでは、データをサーバに通知して処理結果を得るにはページ全体をロードしなおさなければならず、ネイティブアプリケーションのような操作性を得ることは難しかった。Ajaxでは、指定したURLからXMLドキュメントを読み込む機能を使い、ユーザの操作や画面描画などと並行してサーバと非同期に通信を行なうことで、サーバの存在を感じさせないシームレスなWebアプリケーションを実現することができる。 これならクールじゃないかな?

参考URL:
http://e-words.jp/w/Ajax.html
guuman
質問者

お礼

ありがとうございます 待っている側が何らかのアクションをしなければならないということは変わりないのですね サーバが待っている側に更新すべきことを知らせる手段は自動定期更新しかない事は避けられないので更新範囲を小さくすることによってシームレス的にするということですね

全文を見る
すると、全ての回答が全文表示されます。
  • kazsharp
  • ベストアンサー率37% (16/43)
回答No.1

>定期的に画面が更新されてしまいクール性に欠けます というのは、画面のちらつきのようなものが気になるということでしょうか? それでしたら、幅が0のフレームをページに作っておいて、そのフレーム内だけ定期更新するようにして、相手が石を置いていたらメインのフレーム内を更新という方法もあります。 しかし「定期的に更新」という処理自体が「ダサイ」と考えられるなら、ちょっとサーブレット(orJSP)では実現するのは難しいと思います。 そもそも、サーブレットでオセロをやろうなんてクール性にかけます。(ジョークです)

guuman
質問者

お礼

ありがとうございます JSPでオセロを作るのは少し無理があるということですね

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • phpでオセロゲーム

    サーバに配置したphpオセロをブラウザAとブラウザBが行う ブラウザAが石を置いたときにはその応答としてサーバからブラウザAの画面が更新されるが 相手が石を置くのを待っているブラウザBはブラウザAが石を置いても自分の画面を更新する方法がない という問題をどのように解決したらいいのでしょうか? http-eqivによって定期的に画面を更新すればできますがこれでは定期的に画面が更新されてしまい不細工です 何かいい方法は有るでしょうか?

    • ベストアンサー
    • PHP
  • HTTPS(SSL)通信とサーブレットについて

    ショッピングサイトなどで、買い物カゴに入れたあと、支払いするときにHTTPS(SSL)通信になりますが、この場合の仕組みがよくわかりません。 (1)これは、WebサーバをHTTP用とHTTPS(SSL)用の2台構成として、買い物カゴにいれるまでは、HTTP用のWebサーバでアクセスしておいて、支払いするときにHTTPS(SSL)用のWebサーバにアクセスさせることで実現してるのでしょうか? (2)ショッピングサイトを見ると、URLはHTTP://がHTTPS://に変わるだけで、サーバが変わっているようには見えませんが、これは、apacheなどのWebサーバが持つバーチャルホスト機能で実現してるのでしょうか? (3)アプリケーションを開発する側としては、HTTP通信を行うサーブレットはHTTP用のサーバに配置して、HTTPS(SSL)通信を行うサーブレットはHTTPS(SSL)用のサーバに配置しておいて、HTTPS(SSL)通信をしたいときは、HTTP用のサーバに配置したサーブレットから、HTTPS(SSL)用のサーバに配置したサーブレットを呼びだすだけでOKでしょうか? (4)また、(3)が正しい場合、サーブレットの配置さえ気にしていれば、特にHTTPS(SSL)用のプログラムを組む必要はないでしょうか? 調べたのですが、最初からHTTP(SSL)通信する場合の方法しか記載がなくて困っています。

  • JSPとサーブレット

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

    • ベストアンサー
    • Java
  • サーブレットで

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

    • ベストアンサー
    • Java
  • オセロに関してはビギナーですが、オセロをやっていて

    オセロに関してはビギナーですが、オセロをやっていて 「オセロで一色にするための最小の数っていくつなのか」 という疑問がわきました。 詳しく説明しますと 「どちらの石も通常のオセロのルールに則って好きなようにおける。 一方の石が自分の色で挟めない場合は、他方の石が連続してプレイする。 このルールでどちらかが一色になるまでの最小の石の数はいくつなのか。 ただし、黒が先行、白が後攻として、どちらの色で一色になってもいい」 ということです。 自分で試行錯誤した結果、1手目から下記に示します14個が今のところ最小です。 d4, e5に白石, d5, e4に黒石をおいた状態を初期状態として 黒:e6 f5 e7 f7 c6  白: f6 d6 f8 f4 b6 です。おわかりいただけますでしょうか。 かつて知りたいと思った人はゼッタイいると思うんですけど、 検索しても見つからなかったのでここで質問させて頂きます。 マス目の位置はwikipediaにあるものを参考としました。 http://ja.wikipedia.org/wiki/%E3%82%AA%E3%82%BB%E3%83%AD_%28%E9%81%8A%E6%88%AF%29

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

  • サーブレットインスタンスを割り当てられません・・・とは

    データベースを作成中にサーブレットでのエラーがどうしてもわかりません・・・。 設定のファイル(web.xmlやserver.xml)のファイルがおかしいのか、サーブレットの配置がおかしいのか、プログラム自体がおかしいのか・・・どうなのでしょうか? エラーは以下のように出るんですが・・・ HTTPステータス 500 - -------------------------------------------------------------------------------- type 例外レポート メッセージ 説明 The server encountered an internal error () that prevented it from fulfilling this request. 例外 javax.servlet.ServletException: パス /rits/servlet/rits.SrvMain にサーブレットインスタンスを割り当てられません org.apache.catalina.servlets.InvokerServlet.serveRequest(InvokerServlet.java:388) org.apache.catalina.servlets.InvokerServlet.doGet(InvokerServlet.java:133) javax.servlet.http.HttpServlet.service(HttpServlet.java:689) javax.servlet.http.HttpServlet.service(HttpServlet.java:802) 原因 java.lang.OutOfMemoryError: Java heap space 注意 原因のすべてのスタックトレースは、Apache Tomcat/5.5.20のログに記録されています -------------------------------------------------------------------------------- Apache Tomcat/5.5.20 sampleのサーブレットなどはちゃんと表示されるのですがどうしてでしょうか・・?? 原因などがわかれば教えてください。 ちなみにweb.xmlはinvokerを有効にして使っています。 よろしくおねがいします。

  • Javaサーブレット

    Javaサーブレットの初心者です。 「標準 MySQL 改訂第3版」(2007,3月発行)という本でMySQLを勉強しようと始めたのですが、それ以前の場所で詰まってしまいました。 本の流れは  Apache,MySQL,Tomcat,J2SEをインストール → Apacheの動作確認 → Tomcatの動作確認 → ApacheとTomcatを連携させる。(ここまでは正常に動いています。)→Javaサーブレットの動作確認 ここでブラウザから http://localhost/java/Test と入力すると 「Hello Java」と表示されるはずなのですが HTTPステータス 404 - /java/Test というエラー画面になってしまい、表示されません。 すべて本に書いてあるとおりにやりました。 ファイルの中身なども何度も見直しました。 なぜ表示されないのか教えてください。 お願いします。

  • Javaサーブレット

    Javaサーブレットの初心者です。 「標準 MySQL 改訂第3版」(2007,3月発行)という本でMySQLを勉強しようと始めたのですが、それ以前の場所で詰まってしまいました。 本の流れは  Apache,MySQL,Tomcat,J2SEをインストール → Apacheの動作確認 → Tomcatの動作確認 → ApacheとTomcatを連携させる。(ここまでは正常に動いています。)→Javaサーブレットの動作確認 ここでブラウザから ​http://localhost/java/Test​ と入力すると 「Hello Java」と表示されるはずなのですが HTTPステータス 404 - /java/Test というエラー画面になってしまい、表示されません。 すべて本に書いてあるとおりにやりました。 ファイルの中身なども何度も見直しました。 なぜ表示されないのか教えてください。 お願いします。

  • 別サーバへのクライアント入力情報のポスト

    クライアントPCからHTTP POST で一旦サーバAで受け取った情報をサーバAから別のサーバBのサーブレットへPOSTするプログラムはどのように記述すればいいのでしょうか?サーバBではサーバAのIPアドレスをチェックするためクライアントPCからサーバBに直接POSTできません。 プログラムサンプルなどがあれば助かります。 なお、サーバAはMS NT4.0 IIS4です。 クライアントPC    ----->     サーバA  -----> サーバB          http POST HTTP POST よろしくお願いします。

大阪と東京の民度比較
このQ&Aのポイント
  • なぜ大阪府民は民度低いと言われ都民は褒められる?
  • 私は東京に住んでいますが、東京の人間は大阪より民度が圧倒的に低いと思います。
  • 一方、大阪では「平日は働き土日は休む」「平日休みは休暇をきちんと取るし旅行は稀」「働いてる人は偉いし芸能人よりも賞賛すべき」「マナーを守らない人はカッコ悪い」という意識があります。
回答を見る