我试图在我已经工作的servlet中使用websockets。我的问题是我使用“作家”类将HTML发布到broswer上,但我找不到类似的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文件的路径。然后将通过bubblesort或quicksort对txt文件进行排序。
我的问题是:如何在不重写javascript中的所有内容的情况下在WebSocket中使用此代码?只是一些基本的帮助开始将帮助我很多我想。提前谢谢。
答案 0 :(得分:3)
首先,如果你想使用tomcat中的websockets,你应该从相应的基类WebSocketServlet扩展。
其次,我不认为在你的情况下使用websocket是值得的。 Websockets适用于需要实时交互的应用程序。你的人显然不需要它。
如果您仍想要这样做,只需创建一些简单的javascript,它会将您的html写入正文。与...一致的东西:
websocket = new WebSocket(wsUri);
websocket.onmessage = function(evt) {
document.body.innerHtml += evt.data
};
但正如我所说,我认为在这样的代码中没有用。
答案 1 :(得分:0)
在从普通servlet转移到websocket之前,请记住一些事情。
此 sample code for WebSocket 提供服务器端和客户端示例代码。你应该参考它来开始。