文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

使用java模拟简单的tomcat的方法详解

2024-04-02 19:55

关注

我们现在已经会使用tomcat了,但tomcat具体的原理还很模糊,下面我们使用java来简单模拟一下tomcat,实现游览器访问8888端口,然后得到一个网页进行展示。注意:这只是简单模拟

我们接下来将会使用java里面的io和网络的知识。首先先简单一点,游览器访问8888端口,然后输出一句话,编写代码如下

@Test
    public void myTomcat() throws IOException {
        // 在 8888 端口进行监听
        ServerSocket serverSocket = new ServerSocket(8888);
        //当服务器没有关闭的时候一直等待连接
        while (!serverSocket.isClosed()){
            //得到socket用于通讯
            Socket socket = serverSocket.accept();
            //得到输出流
            OutputStream outputStream = socket.getOutputStream();
            //写入数据
            outputStream.write("this is myTomcat".getBytes());
            //关闭输出流和socket
            outputStream.close();
            socket.close();
        }
        //关闭服务器
        serverSocket.close();
    }

我们使用firefox进行访问,访问的网站为localhost:8888,firefox访问后的显示为:

可以看见,已经成功实现。注意 ,必须使用firefox,使用geogle和edge都不可以,原因是他们没有解析tcp协议的数据。

我们在次基础上进一步加深,让游览器访问服务器时,服务器返回一个html的文件,然后游览器进行展示,编写代码如下

@Test
    public void myTomcat() throws IOException {
        // 在 8888 端口进行监听
        ServerSocket serverSocket = new ServerSocket(8888);
        //当服务器没有关闭的时候一直等待连接
        while (!serverSocket.isClosed()) {
            //得到socket用于通讯
            Socket socket = serverSocket.accept();
            //得到输出流
            OutputStream outputStream = socket.getOutputStream();
            //得到输入流
            BufferedInputStream bufferedInputStream = new BufferedInputStream(
                    new FileInputStream("src/hello.html"));
            int len = 0;
            byte[] bytes = new byte[1024];
            while ((len = bufferedInputStream.read(bytes)) != -1) {
                //写入数据
                outputStream.write(bytes, 0, len);
            }
            //关闭输出流和socket
            outputStream.close();
            socket.close();
        }
        //关闭服务器
        serverSocket.close();
    }

html文件如下

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>hello</title>
</head>
<body>
    <h1>this is myTomcat</h1>
</body>
</html>

运行java文件后,游览器访问localhost:8888,显示如下

我们可以看见我们已经成功了,但是游览器并没有把这个解析为html,这个问题展示先不说,现在我们已经用java实现了一个最简单tomcat,后面会慢慢的深入。

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注编程网的更多内容!  

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯