一.軟件結構發展史
二.相關概念
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(后面沒有分號)然后點擊“確定”,如圖
(2)CATALINA_HOME,該變量的值與TOMCAT_HOME相同,設置方法同(1),如圖
(3)在“系統變量”中找到Path變量,雙擊打開Path變量,在“變量值”的最后面添加%CATALINA_HOME%\bin(后面沒有分號),如圖
(4)在“系統變量”中找到CLASSPath變量,雙擊打開CLASSPath變量,在“變量值”的最后面添加
%CATALINA_HOME%\lib\servlet-api.jar(后面沒有分號),如圖
Step2. 單擊“開始”—“運行”,鍵入"cmd",在控制台輸入service install Tomcat8,
出現以上內容便表示安裝成功!
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代碼,瀏覽器就能夠成功解析了.
下一篇的內容見: