6

すでに動作しているサーブレットで websockets を使用しようとしています。私の問題は、「ライター」クラスを使用してHTMLをブラウザに投稿したことですが、WebSocket用の同様のクラスが見つかりません。

私のサーブレットは次のようになります。

@WebServlet("/TestServlet")

public class TestServlet extends HttpServlet {
private List<ISort> sortierListe = new ArrayList<ISort>();
private File file1;
private PrintWriter writer2;
private boolean sortFinished;
boolean bSubmitForFilenamePressedCopy;
BufferedReader in;
// private String sEingabe;
private static final long serialVersionUID = 1L;

/**
 * @see HttpServlet#HttpServlet()
 */
public TestServlet() {
    super();    
    this.initSortierverfahren();
}

private void initSortierverfahren() {
    sortierListe.add(new BubbleSort());
    sortierListe.add(new QuickSort());
}

/**
 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
 *      response)
 */
protected void doGet(HttpServletRequest request,
        HttpServletResponse response) throws ServletException, IOException {

[...]

PrintWriter writer = response.getWriter();
    writer2 = writer;
    writer.println("<html>");
    writer.println("<head><title>Text Sortieren!</title>");
    writer.println("</head>");

    writer.println("<body marginwidth='40' leftmargin='40' bgcolor='#E5E5E5'>");

    writer.println("<table bgcolor='#FFFFFF' height='100%' width='57%' border='0' cellpadding=10>");
    writer.println("<tr height='10%'>");
    writer.println("
[...]

コードは長すぎてすべてを掲載できませんが、サーブレットは基本的に、.txt ファイルへのパスを入力できるフォームを作成します。txt ファイルは、バブルソートまたはクイックソートのいずれかでソートされます。

私の質問は次のとおりです: javascript ですべてを書き換えずに、WebSocket でこのコードを使用するにはどうすればよいですか? 最初の基本的なヘルプだけでも、かなり役立つと思います。前もって感謝します。

4

2 に答える 2

3

まず、TomcatのWebSocketを操作する場合は、対応する基本クラスWebSocketServletから拡張する必要があります。

第二に、あなたの場合、websocketを使用する価値はないと思います。Websocketは、リアルタイムの対話を必要とするアプリケーションに適しています。あなたは明らかにそれを必要としません。

それでもこれを実行したい場合は、HTMLを本文に書き込む簡単なJavaScriptを作成するだけです。に沿った何か:

websocket = new WebSocket(wsUri); 
websocket.onmessage = function(evt) { 
  document.body.innerHtml += evt.data
};

しかし、私が言ったように、私はそのようなコードでは何の役にも立ちません。

于 2012-09-18T18:24:50.317 に答える
0

通常のサーブレットから Websocket に移行する前に、留意すべき点がいくつかあります。

  1. 最新の apache tomcat バージョンを使用します。Plder バージョンは WebSocket をサポートしません。(私の場合、バージョン 7.0.42 を使用しました)
  2. サーブレットを単純に WebSocket に置き換えることはできません。両者の目的は全く異なります。詳細については、Google で検索してください。

このWebSocket のサンプル コードは、サーバー側とクライアント側のサンプル コードを提供します。始めるために参照する必要があります。

于 2013-12-30T12:21:54.473 に答える