您好,登錄后才能下訂單哦!
本篇內(nèi)容介紹了“如何使用java模擬簡(jiǎn)單的tomcat方法”的有關(guān)知識(shí),在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
我們現(xiàn)在已經(jīng)會(huì)使用tomcat了,但tomcat具體的原理還很模糊,下面我們使用java來簡(jiǎn)單模擬一下tomcat,實(shí)現(xiàn)游覽器訪問8888端口,然后得到一個(gè)網(wǎng)頁進(jìn)行展示。注意:這只是簡(jiǎn)單模擬
我們接下來將會(huì)使用java里面的io和網(wǎng)絡(luò)的知識(shí)。首先先簡(jiǎn)單一點(diǎn),游覽器訪問8888端口,然后輸出一句話,編寫代碼如下
@Test public void myTomcat() throws IOException { // 在 8888 端口進(jìn)行監(jiān)聽 ServerSocket serverSocket = new ServerSocket(8888); //當(dāng)服務(wù)器沒有關(guān)閉的時(shí)候一直等待連接 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進(jìn)行訪問,訪問的網(wǎng)站為localhost:8888,firefox訪問后的顯示為:
可以看見,已經(jīng)成功實(shí)現(xiàn)。注意 ,必須使用firefox,使用geogle和edge都不可以,原因是他們沒有解析tcp協(xié)議的數(shù)據(jù)。
我們?cè)诖位A(chǔ)上進(jìn)一步加深,讓游覽器訪問服務(wù)器時(shí),服務(wù)器返回一個(gè)html的文件,然后游覽器進(jìn)行展示,編寫代碼如下
@Test public void myTomcat() throws IOException { // 在 8888 端口進(jìn)行監(jiān)聽 ServerSocket serverSocket = new ServerSocket(8888); //當(dāng)服務(wù)器沒有關(guān)閉的時(shí)候一直等待連接 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> <h2>this is myTomcat</h2> </body> </html>
運(yùn)行java文件后,游覽器訪問localhost:8888,顯示如下
我們可以看見我們已經(jīng)成功了,但是游覽器并沒有把這個(gè)解析為html,這個(gè)問題展示先不說,現(xiàn)在我們已經(jīng)用java實(shí)現(xiàn)了一個(gè)最簡(jiǎn)單tomcat,后面會(huì)慢慢的深入。
“如何使用java模擬簡(jiǎn)單的tomcat方法”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。