6

我正在尝试在我已经工作的 servlet 中使用 websockets。我的问题是我使用“writer”类将 HTML 发布到浏览器上,但我找不到类似的 WebSockets 类。

我的 servlet 如下所示:

@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("
[...]

代码太长,无法发布所有内容,但 Servlet 基本上创建了一个表单,我可以在其中输入 .txt 文件的路径。然后,txt 文件将通过冒泡排序或快速排序进行排序。

我的问题是:如何在 WebSocket 中使用此代码而不用 javascript 重写所有内容?我认为只是一些基本的帮助会帮助我很多。提前致谢。

4

2 回答 2

3

首先,如果你想使用来自 tomcat 的 websockets,你应该从相应的基类 WebSocketServlet 扩展。

其次,我认为在您的情况下使用 websocket 不值得。Websockets 适用于需要实时交互的应用程序。你的显然不需要它。

如果您仍然想这样做,只需创建一些简单的 javascript 即可将您的 html 写入正文。与以下内容一致:

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

但正如我所说,我认为这样的代码没有用。

于 2012-09-18T18:24:50.317 回答
0

Before you make move from normal servlet to websocket there are few things keep in mind.

  1. Use latest apache tomcat version. Plder version won't support websockets. (I used version 7.0.42 in my case)
  2. You can't simply replace your Servlet with WebSocket. Purpose of both is totally different. Google it out for more details.

This sample code for WebSocket provides server side as well as client side sample code. You should refer it to get started with.

于 2013-12-30T12:21:54.473 回答