他の人はすでに#1をカバーしています。
#2の推奨事項を作成します。もう 1 つのオプションは、AJAX (Asynchronous Javascript and XML) を簡単に調べることです。「舞台裏」の HTTP リクエストを起動し、ユーザーがページを更新する必要なくページを調整できます。クライアントは、数秒ごとにサーバーで更新を確認してボードを更新する JavaScript を持つことができる HTML ページをロードできます。
ここに小さな例があります。また、ブラウザ固有の JavaScript を気にしたくない場合は、jQuery をいじることができます。ajaxリクエストを起動するための非常にユーザーフレンドリーなAPIがあり、ブラウザ固有のものを処理します.
編集
#1 - サーブレットは、すべてのリクエストを処理するために使用されますが、並行して処理される可能性があります。ゲームボードをサーブレット b/c に直接配置することはできません。20 人が同じゲームを編集しようとする可能性があります。
public class GameServlet extends HttpServlet {
private GameBoard board; // everyone would share the same board!
いくつかのオプションがあり、ユーザーがアクセスするコレクションにボードを保存できます。HttpSession も参照してください。HttpSession は、サーブレットが追跡するサーバー側メモリのセクションであり、リクエスト間でアクセスできます。
public void doGet(HttpServletRequest req, HttpServletResponse resp) {
HttpSession session = req.getSession();
session.setAttribute("board", new GameBoard()); // this way each user will have their own game board
// and you can retrieve it in another HTTP request
GameBoard board = session.getAttribute("board");
}
ボードの更新は実際には 2 つのユーザーのボードを更新する必要があるため、HttpSession の使用は少し難しいかもしれません。ユーザーによって索引付けされたサーブレットのコレクション・メンバーのみを優先する場合があります。うまくいけば、それで十分です。