Servlet入門(一),超級詳細!!!看完就會!!!!


一.軟件結構發展史

 

二.相關概念

1.B/S模式執行流程

用戶輸入網址,瀏覽器會通過DNS將網址轉換成對應的IP地址,通過IP地址向服務器主機(可以理解為一個安裝了web服務器程序的高配置電腦)發出請求,

服務器主機收到請求后,會通過服務器程序將內容轉換成相應的HTML文檔,再將結果返回給瀏覽器(即響應),瀏覽器再對結果進行解析,最終呈現出了我們在瀏覽器上看到的頁面.

 -從瀏覽器發出送給服務器的數據包稱為"請求(Request)"

-從服務器返回給瀏覽器的結果稱為"響應(Response)"

2.J2EE是什么?

J2EE(Java 2 Platform Enterprise)是指"Java 2 企業版".

B/S模式開發Web應用就是J2EE最核心的功能.

J2EE由13個模塊組成:

3.Apache Tomcat是什么?

 

Tomcat是Apache軟件基金會旗下一款免費的開放源代碼的Web應用服務器程序.

Tomcat是運行Servlet(服務器小程序)的容器.

4 Servlet是什么?

Servlet(Server Applet)服務器小程序,主要功能用於生產動態Web內容.

Servlet是J2EE最重要的組成部分!

5.Tomcat和Servlet的關系

Apache Tomcat就相當於我們的web服務器程序,Servlet就相當於用於生成動態Web內容的服務器程序.

我們在主機上安裝了web服務器程序(Tomcat),就可以運行服務器程序(Servlet),從而生成動態Web內容返回給瀏覽器.

三.相關環境的安裝與配置

1.安裝Tomcat

需要先安裝JDK並配置環境變量,目前安裝的是JDK8的版本.

Tomcat的安裝版本最好與JDK是一致的,因此這次我們安裝Tomcat8的版本.

實際上最好是去官方的渠道下載,但是可能是我這里網絡的問題,一直進不去官網,只好在其他渠道下載了安裝包,后面會貼上地址.安裝包有兩種:解壓版和安裝版,這里使用的是安裝版.

官網下載方式:

Tomcat官網地址: https://tomcat.apache.org/

這里還是借用一下其他人的圖.

 

我下載好的安裝包(8.5.31版本):

鏈接:https://pan.baidu.com/s/1ILIDAhB0bRXRjcOAXFR9Vw 提取碼:z0m4 

安裝方式:

我自己安裝的時候忘記截圖,在此附上其他人的圖,不用在意版本的細節,過程都是一樣的.

Step1.下載完成后開始安裝,第一次安裝的用戶建議直接點擊“next”不選擇插件

Step2.可以自行設置賬戶名以及密碼

Step3.設置jdk安裝目錄,每個人的路徑都不一樣,建議根據自己的電腦查找

Step4.選擇安裝目錄,點擊install安裝

Step5.安裝好后,開始菜單找到圖中的目錄,點擊紅色圈圈中的圖標.

點擊后,會彈出一個框,啟動欄上也會有一個小標志,點擊圖中的start,啟動Tomcat

啟動后,可以看到對應的Service Status變成了Started,同時啟動欄中的小圖標中間也有紅色的小方塊變成了綠色的小三角.

這時,我們打開瀏覽器,輸入地址localhost:8080並回車

當你看到了這個頁面,就代表Tomcat啟動成功啦~~

配置環境變量:

如果你下載的是解壓版本的,或者使用安裝包后沒有成功啟動Tomcat,可能還需要配置一下環境變量,這里附上配置環境變量的方式.

右擊我的電腦—屬性—高級系統設置—環境變量,

Step1.在系統變量中添加以下變量

(1)TOMCAT_HOME,該變量指向解壓文件的路徑,該目錄下有lib、bin等文件夾。添加方法如下:

點擊環境變量下的“新建”,在“變量名”中填寫“TOMCAT_HOME”,在“變量值”中填寫解壓文件的路徑,

D:\Tomcat\apache-tomcat-8.0-windows-x64\apache-tomcat-8.0(后面沒有分號)然后點擊“確定”,如圖

Apache Tomcat 8

(2)CATALINA_HOME,該變量的值與TOMCAT_HOME相同,設置方法同(1),如圖

Apache Tomcat 8

(3)在“系統變量”中找到Path變量,雙擊打開Path變量,在“變量值”的最后面添加%CATALINA_HOME%\bin(后面沒有分號),如圖

Apache Tomcat 8

(4)在“系統變量”中找到CLASSPath變量,雙擊打開CLASSPath變量,在“變量值”的最后面添加

%CATALINA_HOME%\lib\servlet-api.jar(后面沒有分號),如圖

Apache Tomcat 8

Step2. 單擊“開始”—“運行”,鍵入"cmd",在控制台輸入service install Tomcat8

Apache Tomcat 8

出現以上內容便表示安裝成功!

2.安裝 Eclipse For J2EE

Eclipse為J2EE提供了專用版本

Eclipse J2EE最新版本為SimRel(齊美爾)

下載

進入Eclipse官網: www.eclipse.org

點擊Download

這時黃色的Download按鈕,是下載eclipse安裝器的,但是由於這種方式是通過外國的網站下載,速度較慢 ,這里我們直接點擊Download Packages即可.

在出現的列表中,選擇圖中版本,並根據系統來選擇對應的安裝包 ,並點擊

在這個頁面中,點擊黃色的Download按鈕

選擇要下載到的目錄,即可下載安裝包. 

安裝

將下載好的安裝包解壓,並將里面的eclipse文件夾放到你想要安裝eclipse的目錄中,但注意目錄中盡量不要用中文以及特殊字符.這里我放到了D盤根目錄中

如果之前安裝過eclipse的其他版本(比如SE版本)也沒有關系,只要不把他們都放到一個目錄中就行.

這時我們看到eclipse文件夾中有圖中這些文件. 

 我們雙擊eclipse.exe就可以打開eclipse了

跟eclipse SE版本一樣,需要先指定一個存儲工程的工程路徑.選擇好后點擊Launch

可以看到J2EE版本的eclipse跟我們之前使用的SE版本是很相似的,只是在其基礎之上擴展了一些功能

 配置

Step1.綁定默認的JDK

選擇Window→Preferences

 

點擊add后在彈出的框中選擇第三項

 點擊Directory選擇jdk的安裝目錄,點擊finish,將新的jdk前面的框框勾選上,點擊Apply and Close即可.

Step2.在eclipse上配置Tomcat

之前我們每次都要獨立的運行Tomcat,如果能把Tomcat整合到eclipse上,對於我們的開發來說就方便多了.

 點擊圖中選項.(如果沒有的話,點擊Other,在新彈出的框中,可以在Server目錄中找到Servers).這時下方就會自動出現一個Servers標簽.

 

 點擊藍色的超鏈接,在彈出的頁面中選擇Apache廠商,再選中對應的Tomcat版本

點擊next,在新彈出的頁面中,點擊Browser選擇Tomcat的安裝路徑以及剛剛配置好的jdk

點擊next

當前頁面是用來進行程序發布的,因為目前我們沒有寫任何的項目,現在這里都是空的,不用管它,直接點擊Finish即可.

此時Servers面板顯示如下

雙擊這一條,在彈出的頁面中第二部分修改為第二項,它的含義是默認的將我們以后開發的web應用程序發布到Tomcat所安裝的目錄下.(第一項的含義是默認發布到eclipse部署的環境中,不太推薦使用.)

同時,將部署路徑更改為Tomcat安裝目錄下的webapps目錄.以后我們開發的web應用程序將都發布到這個目錄中.

這兩個配置好后,關掉這個頁面,提示是否保存,選擇save

此時,Tomcat就配置完成,Servers面板顯示如下

那么如何驗證是否配置成功了呢?

選中上圖中的那一條,可以看到面板右側有一些按鈕

在開發中我們一般使用小蟲子按鈕來調試程序,現在我們點擊它~

此時控制台中會不斷輸出許多內容,當輸出結束時,最后一句如下圖所示,表示Tomcat和eclipse整合成功了.(根據程序和電腦配置等的不同,這里的時間也是不同的)

Servers面板顯示如下

同時工程欄多了自動生成的一個Server工程

這時我們在瀏覽器中輸入地址 localhost:8080

熟悉的頁面又顯示出來了~~至此Tomcat和eclipse的整合成功(^-^)V

四.Servlet入門

1.第一個Servlet

現在我們來創建第一個web應用程序吧!

在左側工程欄空白處點擊鼠標右鍵,依次選擇圖中選項.這一項就是我們javaweb標准工程的創建.

在新彈出的頁面中寫好工程名稱,其他的Tomcat版本,Servlet版本默認就好,一般都使用最新版本,之后點擊next

點擊next后新彈出的頁面是讓我們選擇工程構建的路徑,使用默認的即可,繼續點擊next 

點擊next之后,進入下一個頁面.勾選項的意思是幫我們生成web應用配置描述文件(即 web.xml),必須要選中.

配置完畢后,可以看到工程面板中,多了一個FirstServlet工程.

我們先不糾結每個目錄的含義 ,首先在src中新建一個標准的java類

寫好包名和類名后,點擊finish.

這時一個標准的Java類就創建好了

與標准的java類不同的是,Servlet需要繼承HttpPServlet類 ,並導入HttpServlet包.

HttpServlet是我們寫的所有web應用小程序的父類.必須繼承它,我們才可以開發自己的小程序.

接着,我們需要在類中重寫 HttpServlet類中的service方法

快捷方式:點擊Source-Override/Implement Methods......

在新頁面中選擇倒數第二項,點擊ok

這時eclipse就自動幫我們生成了重寫的service方法

方法中第一個參數是請求,第二個參數是響應,我們可以改一下對應的參數名,便於理解

request包含了從瀏覽器向服務器發送請求的數據

response包含了從服務器生成要發送回瀏覽器的信息.

我們將方法體中默認書寫的內容刪掉,自己編寫里面的內容.

這時雖然我們把FirstServlet這個類寫完了,但是Tomcat還不認識它.

我們還需要在web.xml(web應用配置描述文件)中進行一下配置.

在網上搜到了一篇關於web.xml的文章,可以詳細了解一下:https://www.cnblogs.com/linhuaming/p/9464356.html

雙擊這個文件,進入頁面后,選擇source這個標簽,在這里寫配置文件

紅色框框里是我們需要編寫的部分

下面我們來運行一下 

在Servers面板的Tomcat上點擊鼠標右鍵→ Add and Remove

點擊add將我們的FirstServlet類添加到右邊,意思是將我們的程序發布到Tomcat上.

然后點擊Finish.如果發布成功,Tomcat里面就會出現FirstServlet選項.

接着,還是選中Tomcat這一欄,點擊面板右上方的小蟲子啟動Tomcat.

可以在控制台看到,我們已經啟動成功了.

下面我們來訪問一下我們這個Servlet. 

訪問網址為: localhost:8080/FirstServlet/hi?name=superj 

紅色部分是主機地址+端口號

  localhost指的是我們本機電腦的地址,也可以用127.0.0.1代替。

  8080指的是Tomcat默認的端口號。

藍色部分是工程名

綠色部分是我們定義的url-pattern

橙色部分是傳入的參數,固定以問號開頭,等號左邊是參數名,等號右邊是參數的值.

回車,可以看到,我們編寫的內容顯示出來了.

再來總結一下,我們的Tomcat和瀏覽器直接在這個過程中具體是怎么互動的.

首先,我們在瀏覽器地址欄中輸入 localhost:8080/FirstServlet/hi?name=superj 以后,

這個信息會通過請求request發送給Tomcat.

Tomcat收到這個請求后,發現我們發送的url是/hi,於是就從web.xml文件中去查找是否有url-pattern為/hi的Servlet-mapping.

找到了之后,發現這個Servlet的別名是first,於是再查找是否有別名是first的Servlet.

查找到后得到這個Servlet的servlet-class,com.superjishere.servlet.FirstServlet.

緊接着Tomcat會創建FirstServlet的對象,並執行其中的service方法,為Servlet提供響應和支持.

這里我們通過out.println將html的內容輸出

其中name作為參數被接收,它的值就對應了superj ,當輸出了out.println中的html字符串后,

Tomcat會將這個字符串通過響應response,原封不動的發送給瀏覽器,

瀏覽器中接收到的字符串就是服務器執行之后的結果,瀏覽器將這個結果進行解析,展現在頁面上,

於是我們就在網頁上看到了內容!

 ============================================================================================

練習的時候發現一個問題:當在定義的html字符串中,使用span標簽的時候,瀏覽器不能識別,會把整個html標簽內容顯示出來.

如果換成p標簽就可以正常顯示.前面是p標簽后面是span標簽也可以正常顯示,但是單獨的span或者多個span就不正常顯示.

等找到原因后再來補充.

找到原因了:

在使用一些標簽的時候,可能不同的瀏覽器對標簽的敏感度不同,我在使用谷歌瀏覽器的時候就不能識別單獨的span,

但是如果書寫一個完整結構的html代碼,瀏覽器就能夠成功解析了.

 

 

下一篇的內容見:

Servlet入門(二),超級詳細!!!看完就會!!!! 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM