(一)、 CS 和 BS 架構(gòu)關(guān)于 CS 和 BS 架構(gòu)相信大家也都聽(tīng)說(shuō)過(guò),或許只是這個(gè)概念沒(méi)有那么清楚,其實(shí)無(wú)論 CS 還是 BS 都是軟件架構(gòu)的兩種不同的表現(xiàn)形式而已,我們看下面的簡(jiǎn)單介紹!
1、C/S 簡(jiǎn)介#采用 CS 架構(gòu)的一些軟件一般都是運(yùn)行在電腦桌面上:比如 QQ,一些視頻軟件的客戶端。等 開(kāi)發(fā)語(yǔ)言:VB,VC++,C#,Java 中的 swing,awt 等 1.1、特點(diǎn)#一般的,服務(wù)端僅僅是安裝一個(gè)數(shù)據(jù)庫(kù)和數(shù)據(jù)存儲(chǔ),所有程序的代碼(功能和界面)都編寫在客戶端軟件中(把所有的業(yè)務(wù)邏輯都編寫在了客戶端),界面渲染也在客戶端 1.2、架構(gòu)的優(yōu)缺點(diǎn)#
2、B/S 簡(jiǎn)介#采用這種架構(gòu)的軟件一般都是通過(guò)瀏覽器訪問(wèn),比如門戶網(wǎng)站,管理系統(tǒng)等。 其實(shí) B/S 屬于特殊的 C/S,因?yàn)闉g覽器就是一個(gè)特殊的客戶端。安裝在電腦上。 開(kāi)發(fā)語(yǔ)言:JSP,PHP,ASP 等 2.1、特點(diǎn)#在服務(wù)端編寫代碼,所有的業(yè)務(wù)邏輯都由服務(wù)端完成,客戶端只負(fù)責(zé)界面的渲染展示 2.2、優(yōu)缺點(diǎn)#
3、綜合(瘦富客戶端)#3.1、瘦客戶端#也即是傳統(tǒng)的 BS 架構(gòu),服務(wù)端主要負(fù)責(zé)業(yè)務(wù)邏輯的處理,而客戶端 則是負(fù)責(zé)頁(yè)面的渲染,其中的優(yōu)缺點(diǎn)也即是上面說(shuō)的。 3.2、富客戶端#富客戶端其實(shí)是 BS 架構(gòu)和 CS 架構(gòu)的一種結(jié)合,這種客戶端的特點(diǎn)就是界面華麗,綜合兩種架構(gòu)的優(yōu)點(diǎn),在富客戶端中,服務(wù)端依然是主要負(fù)責(zé)業(yè)務(wù)邏輯的處理,區(qū)別在于客戶端,不像傳統(tǒng)的 BS 架構(gòu)中客戶端只負(fù)責(zé)界面的渲染,頭同時(shí)客戶端還會(huì)處理少量的業(yè)務(wù)邏輯。 用到的開(kāi)發(fā)技術(shù):Extjs,F(xiàn)lash,EasyUI,JavaFX 等。使用的語(yǔ)言是 JavaScript 或者 action script (二)、什么是服務(wù)器(Tomcat)服務(wù)器一般分為軟件服務(wù)器和硬件服務(wù)器,總的來(lái)說(shuō)服務(wù)器就是提供服務(wù)的,就好比,你可以給服務(wù)器要點(diǎn)什么,他可以給你返回點(diǎn)什么,你也可以在他那存放點(diǎn)什么,沒(méi)有它有些事你還做不了。接下來(lái)我們就軟件服務(wù)器和硬件服務(wù)器簡(jiǎn)單做下介紹。 1、軟件服務(wù)器#軟件服務(wù)器軟件服務(wù)器其實(shí)就是一個(gè)軟件,這個(gè)軟件提供了 BS 應(yīng)用運(yùn)行的環(huán)境。也就是說(shuō)沒(méi)有這個(gè)軟件,采用 bs 架構(gòu)的軟件就無(wú)法運(yùn)行。 2、硬件服務(wù)器#這里的硬件服務(wù)器其實(shí)就可以理解成我們平常說(shuō)的主機(jī),其實(shí)就是一臺(tái)電腦,只不過(guò)這臺(tái)電腦上安裝了軟件服務(wù)器 (三)、Tomcat 通關(guān)3.1、什么是 Tomcat#Tomcat 其實(shí)就是一個(gè)軟件服務(wù)器,當(dāng)我們的電腦上安裝了 Tomcat,那么我們的電腦就成了一個(gè)硬件服務(wù)器,也可以說(shuō)是主機(jī),它為我們提供了一些必要的運(yùn)行環(huán)境。 3.2、Tomcat 的目錄結(jié)構(gòu)#好吧,我決定先來(lái)說(shuō)說(shuō) Tomcat 的目錄結(jié)構(gòu)。
3.3、Tomcat 的安裝#對(duì)于 Tomcat 的安裝最重要的是配置,當(dāng)你下載好一個(gè) Tomcat(下載如圖),并且解壓完成你會(huì)得到一個(gè) Tomcat 的文件夾,打開(kāi)就是上面介紹的那幾個(gè)文件夾了,在上面也說(shuō)過(guò),Tomcat 的啟動(dòng)實(shí)在 bin 目錄下的,直接說(shuō)了吧就是 startup.bat,你雙擊這個(gè)文件就是啟動(dòng) Tomcat,但是往往你會(huì)遇到這樣的問(wèn)題“一閃而過(guò)” 這個(gè)時(shí)候我們一般很想知道,這是為什么啊,我們可以通過(guò) dos 來(lái)查看原因,在此文件夾下打開(kāi) dos 窗口輸入 startup.bat 然后回車,你會(huì)看到這樣的提示 什么意思呢?大概意思就是缺少 JAVA_HOME 或者 JRE_HOME 的運(yùn)行環(huán)境導(dǎo)致這個(gè)應(yīng)用無(wú)法執(zhí)行,嗯就這樣理解。 現(xiàn)在知道是什么問(wèn)題了,那就要去解決這個(gè)問(wèn)題從錯(cuò)誤的原因我們知道應(yīng)該去配置 JAVA_HOME 或者 JRE_HOME,在此之前我們先要來(lái)說(shuō)以 下這個(gè) JAVA_HOME 和 JRE_HOME 到底是個(gè)什么東西,有什么用? 首先這兩個(gè)東西都是一種約定,就這樣的,是一個(gè)約定好的變量,當(dāng)某些程序需要用到的話就會(huì)默認(rèn)的去找 JAVA_HOME 或者 JRE_HOME,然后拿到他們的值,這里就拿我們的 Tomcat 來(lái)說(shuō),當(dāng)你雙擊 startup.bat 來(lái)啟動(dòng) Tomcat 的時(shí)候,它就會(huì)默認(rèn)去取 JAVA_HOME 或者 JRE_HOME 來(lái)用,另外 Tomcat 的運(yùn)行是不需要 JDK 中的工具的只需要 JRE 來(lái)提供運(yùn)行環(huán)境即可,也即是說(shuō)要想啟動(dòng) Tomcat 必須要有 JAVA_HOME 或者 JRE_HOME,當(dāng)兩者都不為空的時(shí)候默認(rèn)使用 JRE_HOME。 那么 JAVA_HOME 具體值的是什么呢?這個(gè)想必大家都很清楚,通常它指的就是 JDK 的目錄,如果需要 JDK 的話,大部分程序都會(huì)默認(rèn)的去環(huán)境變量中取這個(gè)值來(lái)用,同樣 JRE_HOME 就是指的 jre 目錄了,當(dāng)程序不需要 JDK 而需要 Java 的一個(gè)運(yùn)行環(huán)境時(shí)就會(huì)取這個(gè)值了。相信說(shuō)到這里你已經(jīng)明白的差不多了,接下來(lái)我們就去配置這個(gè) JAVA_HOME 吧?。ㄒ?yàn)?JAVA_HOME 比較全能,所以選擇配置它),如果覺(jué)的接下來(lái)我會(huì)直接告訴大家怎么配置那你就錯(cuò)了。 3.3.1、在系統(tǒng)環(huán)境變量中配置#首先,最常規(guī)的就是在我們的電腦中的系統(tǒng)環(huán)境變量中取配置 JAVA_HOME 了,這個(gè)想必大家都會(huì),這里不多說(shuō),直接上圖。 OK,經(jīng)過(guò)這樣的操作就可以正常啟動(dòng) Tomcat 了。 3.3.2、在 startup.bat 中配置#在系統(tǒng)環(huán)境變量中配置是一種方法,這個(gè)大家都知道想必也都會(huì),這就沒(méi)法裝逼了,我們需要知道一種有那么幾個(gè)人不知道的方法,接下來(lái)我們把系統(tǒng)環(huán)境變量中配置的 JAVA_HOME 刪除掉,接下來(lái)我們將 startup.bat 以記事本方式打開(kāi)。如下圖 在圖中所示位置添加上 set JAVA_HOME=D:\Java\jdk_8u131 然后保存即可。同樣可以正常啟動(dòng) Tomcat。 如果別人不知道這個(gè)方法,發(fā)現(xiàn)你的系統(tǒng)環(huán)境變量中沒(méi)有配置 JAVA_HOME 但是卻可以啟動(dòng) Tomcat,你說(shuō)他會(huì)怎么想,另外在 startup.bat 文件的最后加上一個(gè) pause,你猜有什么效果? 3.3.3、如何判定 Tomcat 啟動(dòng)成功#我們可以通過(guò)瀏覽器訪問(wèn)來(lái)確認(rèn)服務(wù)是否啟動(dòng)成功,那么如何訪問(wèn)呢?我們可以通過(guò)如下兩種方式
一般我們的服務(wù)都是在本機(jī),因此可以通過(guò)如下方式訪問(wèn)
我們這里通過(guò) http://localhost:服務(wù)器的端口號(hào)來(lái)進(jìn)行測(cè)試,這里要知道 Tomcat 的默認(rèn)端口號(hào)是 8080,這個(gè)怎么看呢?我們?cè)俅吸c(diǎn)擊 startup.bat 在瀏覽器中輸入 http://localhost:8080/當(dāng)看到如下這個(gè)界面表示 Tomcat 安裝成功且已經(jīng)啟動(dòng) 這個(gè)時(shí)候你要注意,以下界面是不能關(guān)閉的。 4、Tomcat 常見(jiàn)錯(cuò)誤#4.1、沒(méi)有成功啟動(dòng) Tomcat 就開(kāi)始訪問(wèn)#這樣的后果是會(huì)導(dǎo)致無(wú)法顯示此網(wǎng)頁(yè),比如你雙擊 startup.bat 啟動(dòng)了 Tomcat,但是手賤一下又給關(guān)了,這樣你去訪問(wèn)網(wǎng)頁(yè)的時(shí)候就會(huì)出現(xiàn)這個(gè)情況 所以一定要記住,啟動(dòng)了 Tomcat 之后就將它最小化吧。 4.2、出現(xiàn) 404 的錯(cuò)誤#這是一個(gè)非常經(jīng)典的錯(cuò)誤,我們先來(lái)看下這個(gè)錯(cuò)誤界面 之所以會(huì)出現(xiàn)這個(gè)界面是因?yàn)槟阍L問(wèn)的頁(yè)面不存在,另外不知道大家有沒(méi)有這樣的疑惑,我們之前說(shuō)驗(yàn)證 Tomcat 是否安裝成功訪問(wèn)
只不過(guò)這里的 index.jsp 被默認(rèn)隱藏了,也就是即使我們不寫他也是取默認(rèn)打開(kāi)這個(gè)界面,因此當(dāng)你輸入的界面不存在就會(huì)出現(xiàn) 404 的錯(cuò)誤啦,比如這樣 4.3、重復(fù)啟動(dòng),端口沖突#這個(gè)是什么意思呢?你如說(shuō)你現(xiàn)在已經(jīng)啟動(dòng)一個(gè) Tomcat 了,你又雙擊 startup.bat,結(jié)果會(huì)發(fā)現(xiàn)一閃而過(guò),這個(gè)時(shí)候你也許會(huì)疑惑,這是怎么回事,這個(gè)時(shí)候你最好先看看是不是已經(jīng)有一個(gè) Tomcat 被啟動(dòng)了,想準(zhǔn)確的查看錯(cuò)誤信息我們可以去查看錯(cuò)誤日志,還記的錯(cuò)誤日志在哪嗎? 日志文件是在 logs 目錄下的,我們找到錯(cuò)誤日志文件打開(kāi)它,翻到最后 我們會(huì)發(fā)現(xiàn)這里有一個(gè)經(jīng)典的錯(cuò)誤,Tomcat 的端口已經(jīng)被占用,端口沖突。 4.4、不能亂改 Tomcat 中配置文件的結(jié)構(gòu)#這個(gè)一般就是我們不小心將 Tomcat 文件中的配置文件修改了,當(dāng)發(fā)生這種情況,我們一般要先去查看日志文件,從文件中去查找原因然后再修改,這里我們做一個(gè)例子。我們打開(kāi)配置文件夾 conf,然后將里面的配置文件 server.xml 文件稍作修改來(lái)模擬我們不小心改動(dòng)了配置文件導(dǎo)致出錯(cuò)。 我們?cè)囍鴮⑦@個(gè)刪除,然后保存我們?cè)龠\(yùn)行 Tomcat 試試,這時(shí)候會(huì)一閃而過(guò),明顯是出問(wèn)題了,接下來(lái)我們?nèi)ゲ榭慈罩疚募?/p> 我們可以看到,給出的日志還是非常詳細(xì)的。 5、關(guān)于 Tomcat 的端口和服務(wù)器#5.1、如何修改默認(rèn)端口#我們知道 Tomcat 的默認(rèn)端口是 8080,這樣我們?cè)谠L問(wèn)的時(shí)候就需要這樣 http://localhost:8080/資源名字,我們知道 http 協(xié)議的默認(rèn)端口是 80,而我們?cè)谶M(jìn)行網(wǎng)絡(luò)訪問(wèn)的時(shí)候,默認(rèn)都是遵循 http 協(xié)議的,因此如果我們的 Tomcat 的端口是 80 的話,我們?cè)谠L問(wèn)的時(shí)候就可以不寫端口號(hào)了也就是 http://localhost/資源名字,接下來(lái)我們來(lái)修改一下 Tomcat 的默認(rèn)端口。這個(gè)該怎么修改呢?我們打開(kāi) Tomcat 的配置文件,然后打開(kāi) server.xml,可以看到這些 沒(méi)錯(cuò)我們就可以在這里修改默認(rèn)端口,我們將它修改成 80,然后保存。這個(gè)時(shí)候我們?cè)傧袢缦路绞皆L問(wèn)就是不成功的。 必須是如下這個(gè)樣子 好吧,我相信你已經(jīng)懂了。 5.2、將 Tomcat 作為服務(wù)器安裝在電腦上#首先我們要知道 Tomcat 的安裝有兩種形式,一種就是我們之前一直在講的解壓免安裝版的,這個(gè)解壓之后,配置好環(huán)境變量也就是 JAVA_HOME 就可以直接使用了。 另外一種是安裝版的,這個(gè)有一定的好處就是可以設(shè)置成開(kāi)機(jī)自啟,這樣就省去了我們每次啟動(dòng) Tomcat 的麻煩。 那么如何將我們的 Tomcat 作為服務(wù)器安裝在電腦上呢?其實(shí)也很簡(jiǎn)單,我們一起來(lái)看看,在 Tomcat 的 bin 目錄下有一個(gè) service.bat 文件,這個(gè)文件就代表安裝和卸載,我們?cè)诋?dāng)前目錄下打開(kāi) CMD,這里給大家說(shuō)一個(gè)技巧,不知道大家平常如果要在當(dāng)前目錄下打開(kāi) cmd 都是怎么做的,是不是 win+r 輸入 cmd,然后使用 cd 切換到當(dāng)前目錄下呢?如果你是這樣那就太落后了 這個(gè)技巧我一般人還不告訴他們呢?進(jìn)入 dos 窗口之后我們執(zhí)行以下操作 這樣我們就成功安裝了,怎么驗(yàn)證呢?我們打開(kāi)服務(wù)界面 可以看到 Tomcat 已經(jīng)作為我們的服務(wù)安裝在了本地,當(dāng)然我們還可以使用 service remove 來(lái)卸載 Tomcat! 5.3、tomcat 的安全配置#我們先來(lái)看下這個(gè)界面 肯定不陌生吧!你們知道這個(gè)頁(yè)面對(duì)應(yīng) tomcat 中的哪個(gè)文件嗎?我們來(lái)看看 其實(shí)我們?cè)L問(wèn) localhost 就是默認(rèn)打開(kāi)的 ROOT 這個(gè)文件夾中的內(nèi)容,那么我們?cè)賮?lái)看這個(gè)頁(yè)面上的其他內(nèi)容 比如這個(gè) Documentation,我們點(diǎn)擊 這就是 tomcat 的文檔內(nèi)容。那么這個(gè)頁(yè)面有對(duì)應(yīng) tomcat 中的哪個(gè)文件夾呢? 對(duì)就是這個(gè) docs。接下來(lái)我們看這個(gè)、 點(diǎn)擊下看看 竟然讓輸入用戶名和密碼,這個(gè)好像真不知道,怎么辦,還是先取消吧 哎呦,出現(xiàn)了這個(gè)頁(yè)面,仔細(xì)一看,很有用啊,意思就是我們可以自己設(shè)置賬戶密碼,去哪設(shè)置呢?在 conf/tomcat-users.xml 這個(gè)里面,好,咱去看看 就是這個(gè),打開(kāi)它 是這個(gè)樣子的,然后怎么辦,我們?cè)倏粗暗哪莻€(gè) 401 界面,其中提到好像要輸入這些內(nèi)容 好,我們直接復(fù)制過(guò)去 然后保存,我們?cè)囍@個(gè)賬戶和密碼去登錄一下試試
看見(jiàn)沒(méi),登錄進(jìn)來(lái)了,而且別有洞天啊。 我們點(diǎn)擊這個(gè) 你看到了什么?這其實(shí)就是部署在 tomcat 中的項(xiàng)目也就是這些 好啦,差不多了,好好理解理解! 6、如何配置 Javaweb 項(xiàng)目#6.1、標(biāo)準(zhǔn) web 結(jié)構(gòu)#根據(jù)這個(gè)圖要能夠手動(dòng)創(chuàng)建一個(gè) web 項(xiàng)目文件,其中的 web.xml 文件中的內(nèi)容可以到 Tomcat 中的示例文件中去拷貝,然后只保留根部文件即可,也就是這個(gè) 6.2、使用 eclipse 搭建一個(gè)干凈的 web 項(xiàng)目#這里面有兩點(diǎn)需要注意,第一就是 web.xml 這個(gè)文件不要忘記了,可以去 tomcat 的示例文件中去拷貝,最后要是圖中那個(gè)樣子,第二點(diǎn)就是一般的 Java 項(xiàng)目,編譯后的文件都會(huì)存放在 bin 目錄,這個(gè)可以怎么看呢?我們打開(kāi)這個(gè)項(xiàng)目的根目錄 打開(kāi)這個(gè)文件,會(huì)看到這樣的 但是這里我們要去改變這個(gè)路徑,怎么改呢?在你的項(xiàng)目名字上右擊選擇 build path,然后選擇最后一個(gè)配置 path 緊接著選擇我們項(xiàng)目下的 WEB-INF 中的 classes 作為此路徑 點(diǎn)擊 ok,我們?cè)倏纯创藭r(shí)的路徑 而且你發(fā)現(xiàn)沒(méi),此時(shí)我們項(xiàng)目中的 classes 這個(gè)文件也沒(méi)有了。 當(dāng)搭建好一個(gè)純凈的 web 項(xiàng)目時(shí),我們?cè)趺慈ゲ渴痦?xiàng)目呢?我們先來(lái)寫一個(gè) html 文件,就叫做 index.html,也許你會(huì)問(wèn)為什么叫 index 啊,其實(shí)叫什么都無(wú)所謂,但是你要知道在訪問(wèn)的時(shí)候會(huì)默認(rèn)去訪問(wèn)叫 index 的文件,還記得之前我們啟動(dòng) Tomcat 的時(shí)候去瀏覽器訪問(wèn) http://localhost:8080/index.jsp嗎?不過(guò)我們當(dāng)時(shí)可是沒(méi)有寫 index.jsp 啊,但是依然能夠成功訪問(wèn),這是為什么呢?因?yàn)闉g覽器會(huì)默認(rèn)去打開(kāi) index.jsp 這個(gè)文件! 好了,言歸正傳,開(kāi)始在你的 web 項(xiàng)目中新建一個(gè) index.html 文件吧!然后寫上一句話。 要看清了,是在 webapp 目錄下新建 html 文件。然后我們?cè)趺慈ピL問(wèn)這個(gè)界面呢?接下來(lái)我們就來(lái)看一下最原始的頁(yè)面是如何通過(guò) tomcat 被訪問(wèn)的。我們先找到我們 tomcat 的安裝目錄,找到這個(gè)文件夾 打開(kāi)它 接下來(lái),我們啟動(dòng) tomcat,然后訪問(wèn)如下網(wǎng)址 這個(gè)時(shí)候我們就可以發(fā)現(xiàn),這個(gè)網(wǎng)址打開(kāi)的就是 tomcat 中 webapp 中的 ROOT 中的 index.jsp。 當(dāng)我們?nèi)ピL問(wèn)如下網(wǎng)址的時(shí)候 其實(shí)就是訪問(wèn)的 examples 中的 index.html,好,到這里也許你就明白了,然后我們將我們?cè)?eclipse 中創(chuàng)建的 web 項(xiàng)目的根目錄也就是 webapp 復(fù)制到 tomcat 中的 webapps 中,復(fù)制如下文件夾 然后復(fù)制到如下目錄 然后訪問(wèn) 看到?jīng)],看到?jīng)],其實(shí)這里的完整路徑應(yīng)該是 到這里,你應(yīng)該知道一個(gè) web 項(xiàng)目是如何部署在 tomcat 上然后運(yùn)行起來(lái)的了,不過(guò),我們使用 eclipse 不能還這樣做吧,那肯定不是啦! 6.3、安裝 eclipse 的 tomcat 插件#安裝 eclipse 插件的方式有很多中,其中有一種連接的方式,這一塊我認(rèn)為不是什么大問(wèn)題,在 Java 中需要研究的地方太多了,我們哪有那么多時(shí)間去一一研究,所以像安裝插件這種事我們掌握一種二其他的有所了解就行,這里我們就選取將插件拷貝到 eclipse 種特定文件的方式安裝插件 這個(gè) tomcat 插件安裝完成之后會(huì)在 eclipse 中顯示三只貓 這三只貓分別代表打開(kāi),關(guān)閉和重啟,但是如果你先在去點(diǎn)擊這三只貓會(huì)出現(xiàn)這樣的提示 這是因?yàn)槲覀冎皇前巡寮惭b好了,但是并沒(méi)有連接到我們的 tomcat,因此需要做一下配置,操作如圖 這時(shí)候我們?cè)冱c(diǎn)擊第一只貓啟動(dòng) tomcat 成功啟動(dòng)。 7、部署 web 項(xiàng)目#首先什么是部署 web 項(xiàng)目呢?我們需要明白的是部署項(xiàng)目其實(shí)就是將我們創(chuàng)建的 web 項(xiàng)目部署在 tomcat 服務(wù)器中,這樣我們才可以通過(guò)瀏覽器去訪問(wèn)我們寫的頁(yè)面,我們?cè)谥耙蔡岬竭^(guò)一種部署 web 項(xiàng)目的方式,就是將 web 項(xiàng)目中的 webapp 整個(gè)文件夾拷貝到 tomcat 中的 webapps 中,這樣我們就可以通過(guò)拼湊訪問(wèn)路徑進(jìn)行訪問(wèn)了,比如我們的 web 項(xiàng)目中在 webapp 下我們寫了一個(gè) html 頁(yè)面,那么我們?nèi)绾卧L問(wèn)這個(gè)頁(yè)面呢? 我們可以將 webapp 整個(gè)文件拷貝到一下目錄中去 然 后 我 們 啟 動(dòng) tomcat , 在 瀏 覽 器 中 輸 入 http://localhost/webapp/index.html就可以訪問(wèn)到我們寫的那個(gè)頁(yè)面了。 直接說(shuō)了吧,以上這種方式可行是可行但是會(huì)有很多缺點(diǎn),我們?cè)趯?shí)際開(kāi)發(fā)中可能也不會(huì)用這種方式,那么我們需要使用哪種方式去部署項(xiàng)目呢? 7.1、在 server.xml 中去配置部署 web 項(xiàng)目#這個(gè)方式是我們比較常用的方式,具體該怎么做呢?我們打開(kāi) tomcat 中的 conf 文件夾,打開(kāi)其中的 server.xml,找到 Host,在這個(gè)里面進(jìn)行如下配置。 這里主要配置了兩個(gè)東西,第一個(gè)是 docBase,這是一個(gè)路徑,就是我們 web 項(xiàng)目中 webapp 的路徑,這個(gè)路徑可以這樣獲取 然后可以看到 這個(gè)路徑就是 docBase 的路徑,另外一個(gè)是 path,這個(gè)是干什么的呢?首先你要明白,在 tomcat 我們可以部署多個(gè)項(xiàng)目,那么這個(gè) docBase 就有可能相同,那么我們?cè)撊绾螀^(qū)分要訪問(wèn)的是哪個(gè)項(xiàng)目呢?就通過(guò)這個(gè) path,這里有點(diǎn)像是別名的意思,我這里的 path 寫成了 ithuanqging,然后保存。 經(jīng)過(guò)這樣的操作,docBase 所指的這個(gè)路徑的項(xiàng)目就相當(dāng)于部署到了 tomcat 的服務(wù)器中,接下來(lái)我們?nèi)ピL問(wèn)我們寫的 index.html 這個(gè)文件,這個(gè)時(shí)候按理說(shuō)我們是可以通過(guò)訪問(wèn) http://locahost:80/index.html直接訪問(wèn)的,可是呢? 無(wú)法訪問(wèn),顯示 404 無(wú)法找到頁(yè)面,這是為什么呢?因?yàn)槟銢](méi)有用到我們的別名 path ?。∑鋵?shí)我們應(yīng)該這樣訪問(wèn) 這樣就可以正常訪問(wèn)了,所以,來(lái),再看一遍這個(gè)配置 你以為到這里就結(jié)束了嗎?你沒(méi)覺(jué)得每次還要輸入這個(gè) path 的名稱才能訪問(wèn)很不爽嗎? 我們先來(lái)看下我們這樣配置之后啟動(dòng) tomcat 的時(shí)候給了我們一個(gè)警告 這個(gè)警告告訴我們這個(gè) path 要么是空字符串,要么在字符串前面加一個(gè)反斜杠,我們先來(lái)加一個(gè)反斜杠試試(配置發(fā)生改變要重新啟動(dòng) tomcat) 然后依然去訪問(wèn)看看 沒(méi)啥影響,正常訪問(wèn),那么我們?cè)賮?lái)試試空字符串 然后再去訪問(wèn), 這是怎么回事?你發(fā)現(xiàn)沒(méi),當(dāng)我們把 Ppath 設(shè)置成空字符串的話我們?cè)偃ピL問(wèn)的時(shí)候是不是就不需要再寫 ithuanqging 這個(gè)別名 了,是不是就應(yīng)該訪問(wèn) http://localhost:80/index.html這個(gè)地址呢?我們?cè)囋?/p> 好完美!接下來(lái)總結(jié)一下,最終的配置一般是這個(gè)樣子的 然后我們可以直接這樣訪問(wèn) 好了,部署項(xiàng)目就是這些了! 8、可以??岬奶摂M主機(jī)(tomcat)#我們知道,當(dāng)我們成功啟動(dòng) tomcat 的時(shí)候,我們可以訪問(wèn) http://localhost:80/index.html這個(gè)網(wǎng)址去打開(kāi)這個(gè)index.html文件,但是不知道大家有沒(méi)有想過(guò),這個(gè) localhost 是什么玩意???為什么要寫 local host 啊,想必大家還記的驗(yàn)證 tomcat 是否啟動(dòng)成功要通過(guò)瀏覽器訪問(wèn)去驗(yàn)證,一般的訪問(wèn)網(wǎng)址格式是這個(gè)樣子的 http://本機(jī) ip 地址:端口號(hào)/資源名字 我們現(xiàn)在啟動(dòng) tomcat,然后去訪問(wèn) http://127.0.0.1:80/index.jsp 出現(xiàn)的是這個(gè)頁(yè)面,這時(shí)候我們輸入的那個(gè)網(wǎng)址在瀏覽器中是這個(gè)樣子的 而且只輸入一個(gè) 127.0.0.1 也是可以訪問(wèn)到的,前提是 tomcat 成功啟動(dòng) 這個(gè)時(shí)候你要知道為什么只輸入一個(gè) 127.0.0.1 就可以實(shí)現(xiàn)訪問(wèn),因?yàn)?tomcat 的默認(rèn)端口被我們改成 80 了,而瀏覽器訪問(wèn)統(tǒng)一遵循 http 協(xié)議,而 http 協(xié)議的默認(rèn)端口正是 80 所以不寫也可以,而 index.jsp 一般都會(huì)默認(rèn)打開(kāi)這個(gè)叫 index 的文件,因此不寫也可以,所以說(shuō)一切都是默認(rèn)惹的禍,你可要清楚了。 這個(gè)時(shí)候我們?cè)傧?,為什么輸?127.0.0.1 可以訪問(wèn),輸入 localhost 有相同的效果呢?我們來(lái)找到我們電腦中的 host 文件 打開(kāi)它 我們看到最后一行似乎明白了啥,在此之前我們需要先來(lái)了解一下這個(gè) hosts! Hosts 是一個(gè)沒(méi)有擴(kuò)展名的系統(tǒng)文件,可以用記事本等工具打開(kāi),其作用就是將一些常用的網(wǎng)址域名與其對(duì)應(yīng)的 IP 地址建立一個(gè)關(guān)聯(lián)“數(shù)據(jù)庫(kù)”,當(dāng)用戶在瀏覽器中輸入一個(gè)需要登錄的網(wǎng)址時(shí),系統(tǒng)會(huì)首先自動(dòng)從 Hosts 文件中尋找對(duì)應(yīng)的 IP 地址,一旦找到,系統(tǒng)會(huì)立即打開(kāi)對(duì)應(yīng)網(wǎng)頁(yè),如果沒(méi)有找到,則系統(tǒng)會(huì)再將網(wǎng)址提交 DNS 域名解析服務(wù)器進(jìn)行 IP 地址的解析。 也就是說(shuō) localhost 其實(shí)就是對(duì)應(yīng)著 127.0.0.1 的,因此我們不管輸入哪一個(gè)效果都是一樣的。 現(xiàn)在我們?cè)賮?lái)談一下我們的 tomcat 虛擬主機(jī),首先你要明白這樣一個(gè)概念,tomcat 是一個(gè)軟件服務(wù)器,當(dāng)你在你的電腦中成功安裝一個(gè) tomcat 并且成功啟動(dòng)以后,這時(shí)你的電腦就成為了一個(gè)硬件服務(wù)器,也就是一個(gè)主機(jī)(安裝了軟件服務(wù)器的電腦) 這個(gè)時(shí)候我們?cè)傧?,?yàn)證 tomcat 為什么使用的是 localhost,為什么不是其他的,我們來(lái)看看 tomcat 中的這個(gè)文件 又是這個(gè)文件,好吧,打開(kāi)它 看到?jīng)],其實(shí)這里的 Host 就代表虛擬主機(jī),而我們的名字就是 localhost,因?yàn)樵谖覀兊碾娔X中 localhost 對(duì)應(yīng)著 127.0.0.1 啊,下面我們來(lái)做一下測(cè)試 我們將 name 從 localhost 改成 ithuangqing,然后是不是可以直接輸入 ithuangqing 進(jìn)行訪問(wèn)呢?我們?cè)囈幌?/p> 我們發(fā)現(xiàn)不行,其實(shí)我們還差一步 需要在我們的 hosts 文件中添加這個(gè)對(duì)應(yīng)代碼,添加之后保存,我們?cè)賮?lái)試試 完美成功訪問(wèn)。 也就是說(shuō)在 tomcat 中的 conf 中的 server.xml 中的 Host 就代表主機(jī) 8.1、配置自己的虛擬主機(jī)#接下來(lái),我們就來(lái)配置一下自己的虛擬主機(jī),是這個(gè)樣子的 然后我們將原本的哪個(gè)虛擬機(jī)主機(jī)的名字還改為 localhost 對(duì)了,可不要忘記這個(gè) 接下來(lái),該讓我們的虛擬主機(jī)顯示點(diǎn)什么呢? 我們?cè)?D 盤下新建一個(gè)文件夾就叫百度,然后里面有一個(gè) html,就是顯示一行字“我的百度呢?” 然后將路徑配置在我們虛擬主機(jī)中的 docBase,是這個(gè)樣子的 好了,然后重啟 tomcat 服務(wù)器然后我們輸入 localhost 然后再輸入 ithuanqging 完美!這個(gè)時(shí)候你再想想,我們的主機(jī)名字是不是可以隨便修改啊,如果改成 www.baidu.com是不是可以呢?我們?cè)囋?/p> 另外別忘了修改 hosts 文件 然后重啟 tomcat,輸入 http://www.baidu.com 怎么樣,是不是很。。。。好吧,其實(shí)沒(méi)啥技術(shù)含量,不過(guò)這里有幾個(gè)問(wèn)題,首先,我們?cè)谖覀冸娔X中的 hosts 文件中分別將 localhost 和 ithuangqing 還有 www.baidu.com都對(duì)應(yīng)著 127.0.0.1,還記的我們之前說(shuō)輸入 localhost 和輸入 127.0.0.1 是同樣的效果嗎?那個(gè)時(shí)候我們 hosts 文件中只有一個(gè) localhost 對(duì)應(yīng)著 127.0.0.1,可是現(xiàn)在,你猜在瀏覽器輸入 127.0.0.1 會(huì)出現(xiàn)什么?我們來(lái)試試吧! 你會(huì)說(shuō),這不還跟之前一樣嗎?好吧,確實(shí)跟之前一樣,可是我們要往更深層理解,為什么輸入 127.0.0.1 會(huì)顯示 tomcat 的東西而不是我們自定義的內(nèi)容呢?畢竟我們都對(duì)應(yīng)著 127.0.0.1 啊,所以肯定有個(gè)設(shè)置什么的,對(duì)我們繼續(xù)來(lái)看我們的 server.xml 我們可以找到這行配置,對(duì),就是這個(gè) defaulthost,它所對(duì)應(yīng)的主機(jī)名字就是輸入 127.0.0.1 會(huì)顯示的主機(jī)所配置的內(nèi)容,為什么我們輸入 127.0.0.1 會(huì)出現(xiàn) tomcat 的內(nèi)容,就是因?yàn)槲覀兣渲玫奶摂M主機(jī)有一個(gè)叫 localhost 的而這個(gè)默認(rèn)的主機(jī)也叫 localhost,所以 localhost 和 127.0.0.1 是一樣的,因此如果我們將這個(gè)默認(rèn)的主機(jī)名字改成 www.baidu.com那么輸入127.0.0.1和輸入 www.baidu.com就會(huì)顯示 一樣的內(nèi)容,因?yàn)榇藭r(shí)兩者是相同的。我們來(lái)驗(yàn)證一下 重啟 tomcat 輸入 127.0.0.1 看見(jiàn)沒(méi),這正是我們自定義的內(nèi)容,也就是說(shuō)現(xiàn)在 127.0.0.1 就等同 于 www.baidu.com,另外我們的 hosts 文件中 ithuangqing 還對(duì)應(yīng)這 127.0.0.1,是不是輸入 ithuangqing 也會(huì)顯示相同的內(nèi)容 答案是正確的,還是因?yàn)榇藭r(shí)的 127.0.0.1 已經(jīng)默認(rèn)對(duì)應(yīng)這這個(gè)叫 www.baidu.com的虛擬機(jī)主機(jī)了。 理解最重要,就到這了。 |
|
|