Java 在我的Tomcat Servlet中实现WebSocket?
我试图在我已经在工作的servlet中使用WebSocket。我的问题是,我使用“writer”类将HTML发布到broswer上,但我找不到类似的WebSocket类 我的servlet如下所示:Java 在我的Tomcat Servlet中实现WebSocket?,java,tomcat,servlets,websocket,Java,Tomcat,Servlets,Websocket,我试图在我已经在工作的servlet中使用WebSocket。我的问题是,我使用“writer”类将HTML发布到broswer上,但我找不到类似的WebSocket类 我的servlet如下所示: @WebServlet("/TestServlet") public class TestServlet extends HttpServlet { private List<ISort> sortierListe = new ArrayList<ISort>(); pri
@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("
[...]
@WebServlet(“/TestServlet”)
公共类TestServlet扩展了HttpServlet{
private List sortierListe=new ArrayList();
私有文件文件1;
私人印刷撰稿人2;
私有布尔排序完成;
布尔值b submitforfilenamepressedcopy;
缓冲读取器;
//私人弦长;
私有静态最终长serialVersionUID=1L;
/**
*@参见HttpServlet#HttpServlet()
*/
公共TestServlet(){
超级();
this.initSortierFahren();
}
私有void initSortierFahren(){
添加(新的BubbleSort());
添加(新的快速排序());
}
/**
*@参见HttpServlet#doGet(HttpServletRequest请求,HttpServletResponse
*(答复)
*/
受保护的无效数据集(HttpServletRequest请求,
HttpServletResponse响应)引发ServletException,IOException{
[...]
PrintWriter=response.getWriter();
writer2=编写器;
writer.println(“”);
writer.println(“Text Sortieren!”);
writer.println(“”);
writer.println(“”);
writer.println(“”);
writer.println(“”);
writer.println(“
[...]
代码太长,无法发布所有内容,但Servlet基本上创建了一个表单,我可以在其中输入.txt文件的路径。然后,txt文件将按bubblesort或quicksort进行排序
我的问题是:如何在WebSocket中使用这段代码而不必用javascript重写所有内容?我认为,只要一些基本的入门帮助就会对我有很大帮助。提前谢谢。首先,如果你想使用tomcat的WebSocket,你应该扩展相应的基类WebSocketServlet 第二,我不认为在你的情况下使用websocket是值得的。websocket适用于需要实时交互的应用程序。你的显然不需要它 如果您仍然想这样做,只需创建一些简单的javascript,将您的html写入正文中
websocket = new WebSocket(wsUri);
websocket.onmessage = function(evt) {
document.body.innerHtml += evt.data
};
但正如我所说的,我认为这样的代码没有任何用处。在您从普通servlet迁移到websocket之前,请记住一些事情
此提供服务器端和客户端示例代码。您应该参考它开始使用。感谢asnwer。我需要使用WebSocket,因为我必须将它作为一项任务来了解更多有关它们的信息。(最后,我希望在排序过程中使用加载微调器)现在我收到了您发布的JavaScritp,但如何将HTML数据从服务器发送到页面?在我的servlet中,我使用了writer.println,但这不再有效。而使用outbound.writeTextData,我只能发送字符数据?顺便说一句,我对java非常陌生,很抱歉有这么多问题。@user1677568您应该将HTML作为字符数据发送,即转换为字符串到CharBuffer。您可以在此处找到一个示例: