欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用java模擬簡單的tomcat的方法詳解

 更新時間:2022年02月23日 15:24:02   作者:不服輸?shù)纳倌? 
這篇文章主要為大家詳細介紹了java模擬簡單的tomcat的方法,使用數(shù)據(jù)庫,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

我們現(xiàn)在已經(jīng)會使用tomcat了,但tomcat具體的原理還很模糊,下面我們使用java來簡單模擬一下tomcat,實現(xiàn)游覽器訪問8888端口,然后得到一個網(wǎng)頁進行展示。注意:這只是簡單模擬

我們接下來將會使用java里面的io和網(wǎng)絡(luò)的知識。首先先簡單一點,游覽器訪問8888端口,然后輸出一句話,編寫代碼如下

@Test
    public void myTomcat() throws IOException {
        // 在 8888 端口進行監(jiān)聽
        ServerSocket serverSocket = new ServerSocket(8888);
        //當服務(wù)器沒有關(guān)閉的時候一直等待連接
        while (!serverSocket.isClosed()){
            //得到socket用于通訊
            Socket socket = serverSocket.accept();
            //得到輸出流
            OutputStream outputStream = socket.getOutputStream();
            //寫入數(shù)據(jù)
            outputStream.write("this is myTomcat".getBytes());
            //關(guān)閉輸出流和socket
            outputStream.close();
            socket.close();
        }
        //關(guān)閉服務(wù)器
        serverSocket.close();
    }

我們使用firefox進行訪問,訪問的網(wǎng)站為localhost:8888,firefox訪問后的顯示為:

可以看見,已經(jīng)成功實現(xiàn)。注意 ,必須使用firefox,使用geogle和edge都不可以,原因是他們沒有解析tcp協(xié)議的數(shù)據(jù)。

我們在次基礎(chǔ)上進一步加深,讓游覽器訪問服務(wù)器時,服務(wù)器返回一個html的文件,然后游覽器進行展示,編寫代碼如下

@Test
    public void myTomcat() throws IOException {
        // 在 8888 端口進行監(jiān)聽
        ServerSocket serverSocket = new ServerSocket(8888);
        //當服務(wù)器沒有關(guān)閉的時候一直等待連接
        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) {
                //寫入數(shù)據(jù)
                outputStream.write(bytes, 0, len);
            }
            //關(guān)閉輸出流和socket
            outputStream.close();
            socket.close();
        }
        //關(guān)閉服務(wù)器
        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,顯示如下

我們可以看見我們已經(jīng)成功了,但是游覽器并沒有把這個解析為html,這個問題展示先不說,現(xiàn)在我們已經(jīng)用java實現(xiàn)了一個最簡單tomcat,后面會慢慢的深入。

總結(jié)

本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!  

相關(guān)文章

  • SpringMVC執(zhí)行步驟、Model的使用詳解

    SpringMVC執(zhí)行步驟、Model的使用詳解

    這篇文章主要介紹了SpringMVC執(zhí)行步驟、Model的使用詳解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • Spring Java-based容器配置詳解

    Spring Java-based容器配置詳解

    這篇文章主要介紹了Spring Java-based容器配置詳解,涉及注解和@Configuration類以及@Beans的相關(guān)知識,具有一定參考價值,需要的朋友可以了解。
    2017-10-10
  • Java設(shè)計模式之策略模式詳解

    Java設(shè)計模式之策略模式詳解

    這篇文章主要為大家詳細介紹了Java設(shè)計模式之策略模式,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • Spring整合redis的操作代碼

    Spring整合redis的操作代碼

    這篇文章主要介紹了Spring整合redis的操作代碼,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定參考借鑒價值,需要的朋友可以參考下
    2022-02-02
  • java過濾器中Filter的ChainFilter過濾鏈

    java過濾器中Filter的ChainFilter過濾鏈

    這篇文章主要介紹了java過濾器中Filter的ChainFilter過濾鏈,發(fā)送請求時,如果有不符合的信息將會被filter進行攔截,如果符合則會進行放行。如果感興趣可以來學(xué)習(xí)一下
    2020-07-07
  • SpringMVC結(jié)構(gòu)簡介及常用注解匯總

    SpringMVC結(jié)構(gòu)簡介及常用注解匯總

    這篇文章主要介紹了SpringMVC結(jié)構(gòu)簡介及常用注解匯總,幫助大家更好的理解和學(xué)習(xí)使用SpringMVC,感興趣的朋友可以了解下
    2021-03-03
  • 通過Java實現(xiàn)對PDF頁面的詳細設(shè)置

    通過Java實現(xiàn)對PDF頁面的詳細設(shè)置

    這篇文章主要介紹了通過Java實現(xiàn)對PDF頁面的詳細設(shè)置,下面的示例將介紹通過Java編程來對PDF頁面進行個性化設(shè)置的方法,包括設(shè)置頁面大小、頁邊距、紙張方向、頁面旋轉(zhuǎn)等,需要的朋友可以參考下
    2019-07-07
  • 世界著名程序SpringMVC完整過程

    世界著名程序SpringMVC完整過程

    這篇文章主要為大家介紹了世界著名程序SpringMVC實現(xiàn)過程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-05-05
  • 基于Java事件監(jiān)聽編寫一個中秋猜燈謎小游戲

    基于Java事件監(jiān)聽編寫一個中秋猜燈謎小游戲

    眾所周知,JavaSwing是Java中關(guān)于窗口開發(fā)的一個工具包,可以開發(fā)一些窗口程序,然后由于工具包的一些限制,導(dǎo)致Java在窗口開發(fā)商并沒有太多優(yōu)勢,不過,在JavaSwing中關(guān)于事件的監(jiān)聽機制是我們需要重點掌握的內(nèi)容,本文將基于Java事件監(jiān)聽編寫一個中秋猜燈謎小游戲
    2023-09-09
  • Java漢字轉(zhuǎn)拼音案例詳解

    Java漢字轉(zhuǎn)拼音案例詳解

    這篇文章主要介紹了Java漢字轉(zhuǎn)拼音案例詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-08-08

最新評論