javaEE Web(Tomcat)深度理解 和 Servlet的本質

2023-03-15 15:00:41

javaEE Web(Tomcat)深度理解 和 Servlet的本質

每博一文案

我所有的進步,只為更接近你。
上天沒有給予人們公平的人生,有人擁有出奇的才能,便有人只能不辭辛苦的攀登階梯,我默默地守望著一縷光芒,小心翼翼,如掬如束,可若長久凝望,一點會讓自己,也受燙灼。
平凡的人生或是悲慘的際遇,可能還不是最糟糕的,我害怕的是,如果始終懦弱不堪,會讓哪怕是一份小小的心意,也永遠無法傳達。
竭盡力量的小勇敢,小心願,一點會被許多人笑話的吧,那麼,會被一個人瞭解嗎,逝水比喻時光荏苒,十年了,我一直在努力的改變自己,夕語,你呢,你變成什麼樣子了?
不經意擡頭看到的躲閃目光,低頭側目時不斷加速的心跳,還有慌張間來不及帶走的心思,以及追尋一個背影時的遲疑步伐。
過去的千絲萬縷才剛浮動顯現,穿過遮掩長久的黑暗,未來我們再相見時,希望所有眼淚,都能消失無形吧,曾經那個丟掉記憶逃跑的男孩,再見了。
上一次離開,我是那樣決絕,我以為自己不會再回來了,再次相見時,本以為時隔多年,命運會再次垂青於我,可是兜兜轉轉,像是上天給我開了一個玩笑,錯的一直是我。
我渴望的愛情如同虛幻泡沫,我想要挽回的友情,也沒有了機會,此時此刻,我已經失去了留下來的力量。
所有成熟的大人,都曾是受傷的小孩,那個小孩可能會長大,但永遠不會離開,我一直都在你的世界,看著你一點點改變,只是你,常常遺忘過去的自己。
今後我所有的牽掛 所有的嚮往 都和你一樣 
                                                —————— 《我是江小白》
                                                —————— 來源《https://www.bilibili.com/read/cv16491270》

@


說明: 該部落格是在基於安裝了 Tomcat 的前提下操作的。 詳細安裝 Tomcat 的步驟大家可以移步至:(Tomcat 的安裝以及其中設定環境原理的詳細說明_tomcat要在什麼環境下執行_ChinaRainbowSea的部落格-CSDN部落格

1. 實現一個最基本的web應用(這個web應用中沒有java小程式)

我們首先編寫一個關於靜態的網頁的頁面:一個簡單的 百度連結:如下

<!--index.html檔案-->
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>實現一個最基本的web應用(這個web應用中沒有java小程式) </title>
</head>
<body style="text-align:center">
    <h3>百度連結</h3>
    <a href="https://www.baidu.com/">進入百度</a>
</body>
</html>

具體步驟如下:

第一步: 找到我們安裝 Tomcat 中的路徑找到一個名為 webapps 的目錄。

注意: 我們所有的 web的 app 都要放到該 webapps 目錄下,(沒有為什麼,這是 Tomcat 伺服器的要求,如果不放到這裡,Tomcat 伺服器是無法到你的應用的app,並執行的)。

如下圖所示:


第二步: 在我們找到的這個 webapps 目錄下建立一個子目錄,名為 Mytest 的目錄。

注意: 這個目錄名 test 就是你這個執行 webapp的名字。

第三步: 將我們上面編寫的 html 靜態檔案,新增到該 Mytest目錄下。

第四步: 啟動我們的 Tomcat 伺服器,開啟我們的瀏覽器在位址列上輸入:http://127.0.0.1:8080/專案名/index.html :具體如下:http://127.0.0.1:8080/Mytest/index.html,最後回車,就可以存取到我們編寫的 index.html 這個靜態網頁了。


重點:

我們在瀏覽器上直接輸入一個 URL,然後回車,這個操作和點選一個 超連結是本質是一樣的都是靜態存取,既然都是一樣的了。那我們完全可以使用超連結,存取我們在 Tomcat 伺服器上編寫的 index.html 資原始檔了。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>存取我們部署到Tomcat中的index.html資原始檔</title>
</head>
<body>
    <!--注意:我們目前前端上的路徑都以「/」開始的,都是加專案名的。-->
    <a href="http://127.0.0.1:8080/Mytest/index.html">index.html</a>
</body>
</html>

在同一個部署到同一個專案下的,資原始檔是可以相互存取的。例如:我們編寫一個名為 index2.html 檔案,通過 index.html 存取 index2.html 資原始檔。

<!--index2.html 檔案-->
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>部署到Tomcat伺服器中的index2.html資原始檔</title>
</head>
<body style="text-align:center">
    <h1 >你好世界</h1>
    <!--部署到Tomcat同一個專案下的之間的存取,不需要新增:http://127.0.0.1:8080-->
    <!--注意:我們目前前端上的路徑都以「/」開始的,都是加專案名的。-->
    <a href="/Mytest/index.html">存取我們部署到Tomcat中同一個專案中的的index.html資原始檔</a>
</body>
</html>

同樣放到我們安裝 Tomcat 伺服器的 webapps 中我們建立的專案 Mytest目錄下

上述這種資源的存取:我們可以稱之為是 靜態資源 。所謂的靜態資源就是,固定的,資料是不會更新的,從一開始就寫死了的。

怎麼能變成動態資源 ,顯然是需要連線資料庫的

連線資料庫需要用 JDBC 程式,也就是需要編寫 Java程式連線資料庫,資料庫中右多少條記錄的資訊,頁面會根據資料庫的記錄的資訊,進行一個動態的顯示。這種技術被稱為動態網頁技術 。(動態網頁技術並不是說頁面中有 flash 動畫。動態網頁技術是說頁面中的資料是動態的,是根據資料庫中儲存的資料進行一個時時動態更新變化的 )。這個操作在本部落格的後半部分有詳細說明。

2. 一個動態 Web 頁面中所包含的 「角色」 和 「協定」

如下是一個簡易的 Web 通訊圖

2.1 角色

根據上圖分析:在整個BS結構的系統當中 有哪些人蔘與進去了

  • 瀏覽器軟體的開發團隊 :(瀏覽器軟體太多了:谷歌瀏覽器,火狐瀏覽器,IE 瀏覽器...)
  • Web Serve的開發團隊 : Web Server 這個軟體也是太多了:Tomcat,Jetty,WebLogic ,JBOSS,WebSphere...
  • DB Server的開發團隊: DB Server 也是不少的:Oracle,MySQL...
  • Web app的開發團隊: Web 應該程式是我們作為 Java web 程式設計師 開發的。

2.2 協定

協定: 所謂的協定就是一種規範,大家都要遵守的規範。不過不遵守規範的話。相互之間是無法通訊交流的。就不如說:兩個人之間交流:一個人說英語,一個人說中文,這兩個人之間使用的語言不同,也就是遵守的規範不同,兩個人就無法交流了。各自都聽不明白。如果兩個人都遵守同一個規範,都是說中文,或者英文,相互之間就可以明白各自在說什麼了,相互交流了。

同理: 瀏覽器前端 與 伺服器後端之間想要相互交流資料資訊,也是要遵守規範。伺服器後端 與 資料庫也是一樣的。

  • Brower(瀏覽器) 與 WebServer 之間有一套傳輸協定:HTTP (超文字傳輸協定)

  • Web Server 與 webapp 之間有一套規範:JavaEE規範比如 Servlet規範

  • Webapp 和 DB Server 之間有一套規範:JDBC 規範,關於 JDBC 的詳細內容,大家可以移步至: