Tomcat部署war包并成功訪問網(wǎng)頁(yè)詳細(xì)圖文教程
一. 什么是Servlet
servlet是一種實(shí)現(xiàn)動(dòng)態(tài)頁(yè)面所需的技術(shù), 是一組Tomcat提供給程序員的API,幫助程序員高效開發(fā)的一個(gè)web app
二. 如何利用Tomcat部署war包
1. 創(chuàng)建一個(gè)maven項(xiàng)目
使用idea創(chuàng)建一個(gè)maven項(xiàng)目
只需要填寫好存放位置, 并選擇Maven項(xiàng)目即可. Name選項(xiàng)可根據(jù)自己需要填寫
創(chuàng)建過后進(jìn)入idea, 首次創(chuàng)建時(shí), 會(huì)有一個(gè)加載過程, 稍等一會(huì)兒即可, 完成后會(huì)自動(dòng)生成一個(gè)pom.xml文件
2. 引入依賴
進(jìn)入中央倉(cāng)庫(kù)(中央倉(cāng)庫(kù)首頁(yè)地址), 在搜索欄進(jìn)行搜索servlet, 選擇 Java Servlet API ,即可到達(dá)以下界面選擇自己需要的版本號(hào)(Servlet版本號(hào)必須和Tomcat匹配)進(jìn)行下載即可(對(duì)應(yīng)servlet和Tomcat查詢地址)
點(diǎn)擊下載對(duì)應(yīng)版本號(hào)進(jìn)入該頁(yè)面
選擇Maven對(duì)話框, 將下面maven下面藍(lán)色對(duì)話框中的內(nèi)容復(fù)制到pom.xml文件中
輸入 dependencies標(biāo)簽, 將上述復(fù)制內(nèi)容粘貼到該標(biāo)簽內(nèi)引入依賴. 首次引入時(shí), 框內(nèi)文字有些地方在idea上是紅色的, 此時(shí)idea會(huì)自動(dòng)將該依賴對(duì)應(yīng)的jar包下載到本地, 等待下載完成刷新就不紅了. 此時(shí), 基本上我們的引入servlet就算完成了
除了將maven框內(nèi)的內(nèi)容復(fù)制到pom.xml文件中, 還可以選擇下載對(duì)應(yīng)的jar包, 然后將其拖拽到idea中即可
3. 創(chuàng)建目錄
當(dāng)上述都完成以后, 在idea項(xiàng)目欄中可以看到如下幾個(gè)包
- src包 : 代表源代碼所在目錄
- main/java : 表示源代碼的根目錄, 后續(xù)創(chuàng)建的.java文件都會(huì)在該目錄中
- main/resources : 表示項(xiàng)目的一些資源文件所在目錄
- test/java : 表示測(cè)試代碼的根目錄
除了上述這些創(chuàng)建maven項(xiàng)目過后本身就有的文件, 還需要自身創(chuàng)建幾個(gè)文件
1.創(chuàng)建webapp文件
注意一定是在main目錄下創(chuàng)建一個(gè)名為 webapp 的目錄
2.創(chuàng)建web.xml
先在 webapp 目錄下創(chuàng)建一個(gè) WEB-INF 目錄
接著在 創(chuàng)建的 WEB-INF 目錄下創(chuàng)建一個(gè) web.xml 文件
完成過后, 在項(xiàng)目欄中便有了如下目錄關(guān)系
3.編寫 web.xml 文件
在web.xml 文件中直接粘貼以下代碼, 可能會(huì)有紅色報(bào)錯(cuò), 此處并非代碼錯(cuò)誤, 而是ieda對(duì)于除java格式外的其他檢測(cè)并不一定十分準(zhǔn)確, 可以嘗試?yán)胏trl + enter 處理報(bào)錯(cuò), 不處理也可以.
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd" > <web-app> <display-name>Archetype Created Web Application</display-name> </web-app>
4. 編寫代碼
在main/java下創(chuàng)建一個(gè)java類并繼承 HttpServlet, 重寫doGet方法.
@WebServlet("/hello") // 父類中已經(jīng)有了doGet. 此處希望用子類代替父類的 public class HolleServlet extends HttpServlet { @Override // 由Tomcat來自動(dòng)調(diào)用 protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // 父類的doGet方法只是返回一個(gè)錯(cuò)誤頁(yè)面 需要注釋掉 //super.doGet(req, resp); System.out.println("hello world"); // resp.getWriter()返回的是一個(gè)PrintWriter,這是一個(gè)打印輸出流 // resp.getWriter().write 只能打印文本輸出格式(包括標(biāo)簽), 但不可以打印對(duì)象 resp.getWriter().write("hello"); } }
需要注意的事以下幾點(diǎn):
1.在這個(gè)類上方加上@WebServlet(“/hello”) 注解 : 表示Tomcat收到的請(qǐng)求中, 只有路徑為/hello的請(qǐng)求才會(huì)去調(diào)用這個(gè)類的代碼 (該注解必須加, 才能關(guān)聯(lián)一個(gè)路徑)
2.重寫doGet方法(不一定為doGet方法, 需要構(gòu)造什么請(qǐng)求就重寫什么) , req表示收到的HTTP請(qǐng)求, resp表示要構(gòu)造的HTTP響應(yīng). 當(dāng)Tomcat收到Get請(qǐng)求時(shí), 則會(huì)調(diào)用該方法.
3.HttpServletRequest 表示 HTTP 請(qǐng)求. Tomcat 按照 HTTP 請(qǐng)求的格式把 字符串 格式的請(qǐng)求轉(zhuǎn)成了一個(gè)HttpServletRequest 對(duì)象. 后續(xù)想獲取請(qǐng)求中的信息(方法, url, header, body 等) 都是通過這個(gè)對(duì)象來獲取.
4.HttpServletResponse 表示 HTTP 響應(yīng). 代碼中把響應(yīng)對(duì)象構(gòu)造好(構(gòu)造響應(yīng)的狀態(tài)碼, header, body 等)
5.resp.getWriter() 會(huì)獲取到一個(gè)流對(duì)象, 通過這個(gè)流對(duì)象就可以寫入一些數(shù)據(jù), 寫入的數(shù)據(jù)會(huì)被構(gòu)造成一個(gè) HTTP 響應(yīng)的 body 部分, Tomcat 會(huì)把整個(gè)響應(yīng)轉(zhuǎn)成字符串, 通過 socket 寫回給瀏覽器.
5. 打包程序
使用maven窗口進(jìn)行打包
找到里面的打包功能雙擊即可
需要注意的是, 當(dāng)我們此時(shí)直接點(diǎn)擊打包, 生成默認(rèn)是一個(gè)名稱復(fù)雜的 jar 包, 但是 Tomcat 認(rèn)的是 war 包, 因此 我們需要修改一些 pom.xml 文件, 讓其默認(rèn)打包為一個(gè)自命名的 war包.
通過 packaging 標(biāo)簽表明打包形式, finalName標(biāo)簽表明 war 包名稱. 完成后, 重新點(diǎn)擊打包此時(shí)就可以獲得一個(gè)自命名的 war 包了.
該 war 包位于一個(gè) target 目錄下
6. 部署程序
將上面的 war 包復(fù)制一份到 Tomcat/webapps 下
啟動(dòng) Tomcat (Tomcat/bin/startup.bat) 加載 war 包, 在 webapps目錄下便會(huì)生成一個(gè)同 war 包同名的目錄, 此時(shí)便算部署完成了
7. 檢驗(yàn)程序
運(yùn)行 Tomcat 打開網(wǎng)頁(yè)輸入127.01.01:8080/0310/hello, 得到如下頁(yè)面說明程序正確
這里, /0310 即為第一級(jí)目錄, 也就是你的 Context Path 路徑(包名路徑) , hello 為Servlet Path 路徑, 也就是你注解中的路徑
至此, Tomcat 部署 war 包并訪問就算告成了 !!!
總結(jié)
到此這篇關(guān)于Tomcat部署war包并成功訪問網(wǎng)頁(yè)的文章就介紹到這了,更多相關(guān)Tomcat部署war包訪問網(wǎng)頁(yè)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
解決Idea導(dǎo)入Web項(xiàng)目并發(fā)布到Tomcat問題
這篇文章主要介紹了Idea導(dǎo)入Web項(xiàng)目并發(fā)布到Tomcat中遇到的問題,本文通過圖文詳解給大家介紹的非常詳細(xì),需要的朋友可以參考下2019-11-11tomcat 實(shí)現(xiàn)會(huì)話綁定的方法步驟
這篇文章主要介紹了tomcat 實(shí)現(xiàn)會(huì)話綁定的方法步驟2024-03-03Tomcat啟動(dòng)報(bào)錯(cuò):嚴(yán)重: Unable to process Jar&nbs
本文主要介紹了Tomcat啟動(dòng)報(bào)錯(cuò):嚴(yán)重: Unable to process Jar entry [module-info.class],文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06tomcat使用問題之安裝后無法訪問localhost:8080解決
當(dāng)Tomcat無法訪問localhost:8080時(shí),可能是由于未啟動(dòng)、環(huán)境變量未配置、端口號(hào)占用或版本問題,這篇文章主要介紹了tomcat使用問題之安裝后無法訪問localhost:8080解決的相關(guān)資料,需要的朋友可以參考下2024-10-10tomcat部署項(xiàng)目以及與IDEA集成的實(shí)現(xiàn)
這篇文章主要介紹了tomcat部署項(xiàng)目以及與IDEA集成的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01linux設(shè)置tomcat開機(jī)啟動(dòng)的兩種方式
文章介紹了兩種配置Tomcat開機(jī)自啟動(dòng)的方法,方法一包括添加文件、進(jìn)入目錄、設(shè)置開機(jī)啟動(dòng)、查看狀態(tài)、關(guān)閉自啟動(dòng)及設(shè)置JDK路徑,方法二涉及編輯啟動(dòng)腳本和添加crontab任務(wù)2024-12-12新版Eclipse集成Tomcat時(shí)找不到server選項(xiàng)的解決方法
這篇文章主要給大家分享了新版Eclipse集成Tomcat時(shí)找不到server選項(xiàng)的解決方案,文章通過圖文介紹講解的非常詳細(xì),具有一定的參考價(jià)值,需要的朋友可以參考下2023-10-10