最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
使用java模拟简单的tomcat代码方法解析
时间:2022-06-29 01:54:26 编辑:袖梨 来源:一聚教程网
本篇文章小编给大家分享一下使用java模拟简单的tomcat代码方法解析,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看。
我们现在已经会使用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文件如下
hello this is myTomcat
运行java文件后,游览器访问localhost:8888,显示如下
我们可以看见我们已经成功了,但是游览器并没有把这个解析为html,这个问题展示先不说,现在我们已经用java实现了一个最简单tomcat,后面会慢慢的深入。
相关文章
- 《无限暖暖》天星之羽获得位置介绍 12-20
- 《流放之路2》重铸台解锁方法介绍 12-20
- 《无限暖暖》瞄准那个亮亮的成就怎么做 12-20
- 《无限暖暖》魔气怪终结者完成方法 12-20
- 《无限暖暖》曙光毛团获得位置介绍 12-20
- 《无限暖暖》日光果获得位置介绍 12-20