java web(學習筆記)項目路徑問題


最近剛接觸java web特別是是關於項目路徑這一塊很暈,就把自己遇到的一些疑惑和理解寫下來。

首先貼上路徑,這里用的是eclipse。

 

其中我們要注意看WebContent目錄,這是web程序的根目錄。

例如我們在瀏覽器地址欄輸入:http://localhost:8080/FirstWeb

會打開WebContent目錄中的HelloWeb.html。

 

大概講述下http://localhost:8080/FirstWeb訪問HelloWeb的過程以及為什么訪問的是它,而不是success.html。

 

首先我們看前面的localhost,這個代表本地地址127.0.0.1。為什么localhost可以代表呢?

那是因為在windows下hosts文件中添加了域名解析,localh 127.0.0.1。代表我遇到了localhost就把它轉換成127.0.0.1

那我們又為什么要用本機地址來訪問呢?因為Tomcat服務器在自己的電腦啟動的,你當然要用本地地址了。

我們再來看Servers文件夾下的serve.xml文件。

 

 注意看右邊114行,<Host> 就是一個虛擬主機,文件里面確定了虛擬主機的域名localhost。所以用127.0.0.1,而localhost可以解析成127.0.0.1

我們再來看localhost:8080后面的8080是指端口。

也在server.xml中設置,默認是8080,如果有時候默認端口被占據可以改成其他端口,例如80,那么寫的時候寫localhost:80即可。

這時http://localhos:8080,就代表了通過8080端口和去訪問虛擬主機(localhost是主機域名也可說是地址,反之最后要被解析成地址。明確一點,電腦只認識xxxx.xxxx.xxxx.xxxx這樣的ip地址,localhost是人類認識的,電腦並不認識,但電腦可以將localho這樣的域名解析成ip地址)。

在地址欄輸入:http://127.0.0.1:8080/FirstWeb/和輸入http://localho:8080/FirstWeb/效果是一樣的。

訪問網頁肯定是要訪問具體的資源,現在就相當於你雙擊了windows桌面上我的電腦,進入了我的電腦,這是沒有用的。

你要干什么?要訪問具體的資源,比如d://xxxx/xxxx.exe

 

接下來我們還是來看server.xml里面的內容

 

看右邊的第127行,Context:即web應用程序。

我們重點看第二個path,這是一個虛擬的文件夾是URL的入口。

path里面寫的是什么http://localhost:8080后面就要加什么,例如就是“http://localhost:8080/FirstWeb”.

注意,此時就相當於進入了WebContent文件夾。即web的根目錄,不記得了的可以翻到開頭那張目錄結構圖看下。

這時是可以顯示出具體的網頁的,此時顯示的是WebConten文件夾下的HelloWeb.html。

為什么?這里只是進入了文件夾啊,沒有指定具體的文件。

我們接着來看,接下來我們需要看的是WebConten文件夾下的WEB-INF文件夾下的web.xml文件。(可能有的人沒有這個文件,這時創建項目時有個選項沒有選)

就是那個小方塊要選上才有。

 

我們看web.xml里面的內容,當進入WebConten后確實沒有指定具體的文件,但是web.xml中幫我們指定了。

它會從第一個開始逐個匹配,查找到了就顯示該文件。

所以我們輸入http://localhost:8080/FirstWeb就會訪問HelloWeb.html文件。

當然這里面的順序也是可以更換的,如果我把success.xml放在第一個,那么首先訪問的就是success.xml。

判斷當前文件夾(WebContent)是否有指定文件,如果有就顯示,沒有就需要往后判斷。

最后還沒有找到就會出現404.

當然我們也可以指定訪問的文件,例如http://localhost:8080/First/success.xml,就會直接訪問指定的文件。

 

這其中Server.xml中的path = FirstWeb創建后默認是和項目項目同名的,如果要做修改也可以。

例如我改成path = test,那么輸入http://localhost:8080/test和前面效果一樣。

 

如果我在WebContent文件夾下面添加一個文件夾,然后把HelloWeb.xml放在里面,我們用

http://localhost:8080/First還能否訪問。

訪問是可以訪問的,但是訪問的是success.xml,結合我們之前說的想一下,http://localhost:8080/FirstWeb相當於進入了WebContent。

然后web.xml中逐個匹配,HelloWeb.xml不在當前文件夾,接着繼續找下一個success.xml在當前文件夾,顯示succe.xml的內容。

如果要想訪問HelloWeb就需要這樣寫:http://local:8080/FirstWeb/TestPath/HelloWeb.html,當然也可以不寫具體文件名,比如:

http://localhost:8080/FirstWeb/TestPaht進入后也是web.xml逐次判斷當前文件是否在文件夾中。

 


免責聲明!

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



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