Apache tomcat 双端通信

最近学完java ,迷惑在Apache tomcat  与aes 加解密以及服务端和客户端双向通信的各种疑难杂症、属实是难的脑仁疼,不知道各位自学的朋友们是这么度过这关的。
另外有没有哪位大哥帮忙助力一把
  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/365951
  • 这篇博客你也可以参考下:Apache Tomcat文件包含漏洞复现
  • 除此之外, 这篇博客: Apache Tomcat初步认识中的 来源背景 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 上世纪八十年代,当互联网开始在美国大学流行的时候,美国计算机名校伊利诺伊大学香槟分校(UIUC)的国家超级计算应用中心(National Center for Supercomputing Applications, NCSA)组织了一些研究生开始编写基于HTTP通信协议的服务器端和客户端程序。客户端端程序叫做mosaic,是第一个被普遍使用的网页浏览器,也是Netscape(网景)浏览器的前身,之后演变为Mozilla Firefox。而服务器端程序就是最早的Web服务器软件之一,名叫NCSA HTTPd,它完整地实现了HTTP协议,整个实验获得了成功。然而伊利诺伊大学香槟分校也许仅出于学术研究目的,在实验成功后开发工作就没有继续下去,研究小组也随之解散,但他们将这两个软件开源,其代码可以自由下载修改并发布。

  • 您还可以看一下 刘志远老师的JAVAEE真实课堂之Tomcat及Http协议课程中的 1_Tomcat简要介绍小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    我可以介绍以下WebSocket技术来实现Apache Tomcat中的双端通信。具体步骤如下:

    1. 检查Tomcat的版本,WebSocket在 Tomcat 7.0.47及以上版本以及 Tomcat 8 中是默认启用的。

    2. 编写WebSocket Endpoint类,用于处理与客户端的通信。以下是一个简单的例子:

    import javax.websocket.OnMessage;
    import javax.websocket.server.ServerEndpoint;
    
    @ServerEndpoint("/websocket")
    public class MyEndpoint {
    
        @OnMessage
        public void onMessage(Session session, String message) {
            System.out.println("Received message: " + message);
            session.getBasicRemote().sendText("Received message: " + message);
        }
    
    }
    

    以上示例创建了一个名为“websocket”的WebSocket端点,当接收到来自客户端的消息时,会将消息输出到服务器控制台并发回一个相同的消息。

    1. 在web.xml文件中添加以下代码段以启用WebSocket支持:
    <servlet>
        <servlet-name>MyEndpoint</servlet-name>
        <servlet-class>org.apache.tomcat.websocket.server.WsSci</servlet-class>
    </servlet>
    <listener>
        <listener-class>org.apache.tomcat.websocket.server.WsContextListener</listener-class>
    </listener>
    

    其中,servlet-name值应与上述端点类中的@ServerEndpoint注解中的值相同。

    1. 使用JavaScript在客户端中实现WebSocket连接,与服务器进行通信:
    var socket = new WebSocket("ws://localhost:8080/myapp/websocket");
    
    socket.onmessage = function(event) {
        console.log("Received message: " + event.data);
    };
    
    socket.onopen = function(event) {
        socket.send("Hello, server!");
    };
    
    socket.onclose = function(event) {
        console.log("Connection closed.");
    };
    

    以上代码创建了一个WebSocket连接,连接到“websocket”端点,当连接打开时,发送一条消息给服务器,当接收到消息时,将其输出到控制台上,并在连接关闭时输出一条消息。

    注意事项:

    1. 要确保防火墙不会阻止WebSocket连接,默认情况下WebSocket连接通过端口8080进行。

    2. 如果在使用Tomcat时遇到问题,请确保使用的是最新版本的Tomcat,并且已经正确地配置了Tomcat工作目录。

    参考资料:

    1. https://tomcat.apache.org/tomcat-8.0-doc/web-socket-howto.html

    2. https://www.baeldung.com/java-websockets

    3. https://www.oracle.com/webfolder/technetwork/tutorials/obe/java/HomeWebsocket/WebsocketHome.html

这是因为你刚刚学,会觉得比较陌生,比较吃力。坚持下去就好。TOMCAT用起来很方便,也很简单,多搭建几次就熟悉了。aes是加解密的算法,java中有现成的库可以直接调用,没有什么太复杂的地方。静下心来慢慢学习,过一段时间你会发现现在学习的的内容原来这么简单。。。