javaweb項目入門實戰(zhàn)詳細指南
一、項目部署的問題
- 配置
war或war exploded的目的
為了讓Tomcat能識別并運行你的JavaWeb項目,是項目部署到Tomcat的必要步驟。
JavaWeb項目最終需要打包成Web應用歸檔格式(即war相關(guān)形式),Tomcat作為Web服務器,只能識別這種格式的項目文件結(jié)構(gòu),才能加載并運行項目。如果不配置,Tomcat不知道如何讀取你的項目代碼,無法啟動項目。 war和war exploded的區(qū)別
| 類型 | 含義 | 特點 | 適用場景 |
|---|---|---|---|
| war | 是一個壓縮包(把項目的class、資源、配置等文件打包成.war文件) | 部署時Tomcat會自動解壓這個包;文件是靜態(tài)的,修改代碼后需要重新打包部署 | 正式環(huán)境、生產(chǎn)環(huán)境發(fā)布 |
| war exploded | 是解壓后的war目錄結(jié)構(gòu)(直接以文件夾形式存在,包含所有項目文件) | 修改代碼后可以實時生效(配合熱部署);不需要打包,部署速度快 | 開發(fā)環(huán)境、調(diào)試階段 |



二、項目訪問路徑設置
上面的應用程序上下文是項目的訪問前綴,而服務器的URL是Tomcat的基礎訪問地址,二者組合起來才是項目的完整訪問路徑。
1. URL、應用程序上下文的區(qū)別
- 服務器URL:
http://localhost:8080/(這是Tomcat本身的基礎地址,所有部署在這個Tomcat上的項目都基于這個地址訪問) - 應用程序上下文:比如設為
/myproject(這是你的項目在Tomcat中的“標識路徑”) - 完整訪問路徑 = 服務器URL + 應用程序上下文 + 資源路徑
(比如訪問項目里的index.html,完整URL是http://localhost:8080/myproject/index.html)
2. 實際開發(fā)中的使用
- 服務器URL:一般不用改,保持Tomcat默認的
http://localhost:8080/即可(除非端口沖突,才需要修改HTTP端口)。 - 應用程序上下文:根據(jù)需求設置
- 若你只部署一個項目:可以設為
/(根路徑),此時完整訪問路徑直接是http://localhost:8080/資源名(比如http://localhost:8080/login.html),更簡潔。 - 若部署多個項目:給每個項目設不同的上下文(比如項目A設
/appA,項目B設/appB),避免訪問沖突。
- 若你只部署一個項目:可以設為
三、項目默認首頁路徑的設置
默認首頁路徑的實現(xiàn)方式
默認首頁的配置核心是在web.xml文件里面設置<welcome-file-list>標簽,具體規(guī)則和擴展用法如下:
1. 基礎配置:指定默認頁面文件名
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
<!-- 可添加多個備選頁面,Tomcat會按順序查找 -->
<welcome-file>index.html</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
- 當訪問項目根路徑(如
http://localhost:8080/myweb/)時,Tomcat會按順序在項目根目錄下查找<welcome-file>指定的文件,找到第一個存在的頁面并加載; - 若項目根目錄有
index.jsp,則直接訪問http://localhost:8080/myweb/會自動打開index.jsp;若沒有,則找index.html,以此類推。
2. 配置子目錄下的默認首頁
如果默認首頁不在項目根目錄,而是在子目錄(如pages/index.jsp),需通過虛擬路徑映射或Servlet轉(zhuǎn)發(fā)實現(xiàn):
方式1:用<welcome-file>指定子目錄路徑(Tomcat支持)
<welcome-file-list>
<welcome-file>pages/index.jsp</welcome-file>
</welcome-file-list>
- 訪問根路徑時,Tomcat會查找
pages/index.jsp并加載。
方式2:通過Servlet映射實現(xiàn)(更靈活,支持動態(tài)邏輯)
- 先定義一個處理根路徑的Servlet:
@WebServlet("/") // 映射到根路徑
public class IndexServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// 轉(zhuǎn)發(fā)到指定的首頁路徑
req.getRequestDispatcher("/pages/home.jsp").forward(req, resp);
}
}
- 此時
web.xml中無需配置<welcome-file-list>,Servlet會直接處理根路徑請求并跳轉(zhuǎn)到目標頁面。
3. 結(jié)合應用程序上下文的訪問規(guī)則
若項目的應用程序上下文是/myweb,默認首頁配置后:
- 訪問
http://localhost:8080/myweb/→ 加載配置的默認首頁; - 若默認首頁是
pages/index.jsp,則實際訪問路徑等價于http://localhost:8080/myweb/pages/index.jsp。
注意事項
- 優(yōu)先級:Servlet映射(如
@WebServlet("/")) ><welcome-file-list>,若同時配置,Servlet會覆蓋歡迎頁規(guī)則; - 靜態(tài)資源優(yōu)先級:若
web.xml里不配置<welcome-file-list>,Tomcat會使用內(nèi)置的默認歡迎頁列表,順序是:index.html→index.htm→index.jsp; - 新版Servlet(3.0+)推薦用注解替代
web.xml的Servlet配置,但歡迎頁仍建議在web.xml中配置,更直觀。

總結(jié)
到此這篇關(guān)于javaweb項目入門實戰(zhàn)詳細指南的文章就介紹到這了,更多相關(guān)javaweb項目入門內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Spring Boot/Angular整合Keycloak實現(xiàn)單點登錄功能
Keycloak新的發(fā)行版命名為Quarkus,專為GraalVM和OpenJDK HotSpot量身定制的一個Kurbernetes Native Java框架,計劃2019年底正式發(fā)布。這篇文章主要介紹了Spring Boot/Angular整合Keycloak實現(xiàn)單點登錄,需要的朋友可以參考下2019-10-10
SpringBoot實現(xiàn)評論回復功能(數(shù)據(jù)庫設計)
這篇文章主要介紹了SpringBoot實現(xiàn)評論回復功能(數(shù)據(jù)庫設計),本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-04-04
Java 1.8使用數(shù)組實現(xiàn)循環(huán)隊列
這篇文章主要為大家詳細介紹了Java 1.8使用數(shù)組實現(xiàn)循環(huán)隊列,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-10-10
ArrayList和LinkedList區(qū)別及使用場景代碼解析
這篇文章主要介紹了ArrayList和LinkedList區(qū)別及使用場景代碼解析,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下2018-01-01
Java?實現(xiàn)判定順序表中是否包含某個元素(思路詳解)
這篇文章主要介紹了Java?實現(xiàn)判定順序表中是否包含某個元素,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-06-06
遞歸出現(xiàn)棧溢出stackoverflow的問題及解決
這篇文章主要介紹了關(guān)于遞歸出現(xiàn)棧溢出stackoverflow的問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-09-09

