JAVA?ServLet創(chuàng)建一個項目的基本步驟
背景
Tomcat不僅支持靜態(tài)頁面,還可以支持動態(tài)頁面;提供了一組api,封裝了HTTP協(xié)議,可以讓程序員去編寫動態(tài)頁面。
Servlet是一個比較古老的編寫網(wǎng)站的方式了,2010之前,Java編寫網(wǎng)站,主要使用Servlet的方式,后來Java出了Spring,對Servlet進(jìn)一步封裝(Spring是基于Servlet來實現(xiàn)的)。
Servlet主要的工作
就是讓程序員自己寫一些類,然后把這些類給加載到Tomcat中,后續(xù)Tomccat受到HTTP請求(來自瀏覽器),就會執(zhí)行到咱們上面寫的代碼,從而通過這些代碼完成一定的業(yè)務(wù)邏輯。
創(chuàng)建一個項目的基本步驟
1.創(chuàng)建項目
此處創(chuàng)建的是一種新的項目的形式,稱為Maven項目(Maven是Java世界中的一個知名構(gòu)建工具,幫助編譯/打包代碼的工具)
PS:下圖為新版的Maven項目創(chuàng)建方式,舊版的IDEA界面會有所不同
maven項目首次創(chuàng)建的時候,會自動從maven的網(wǎng)站上下載一些依賴的組件,這個過程如果你的網(wǎng)絡(luò)不穩(wěn)定,就可能會出錯,影響后續(xù)對maven的使用。所以我們盡可能保證首次使用的時候,網(wǎng)絡(luò)是暢通的。
隨后可以看到默認(rèn)生成一系列目錄結(jié)構(gòu),main目錄為業(yè)務(wù)代碼,test目錄為測試代碼
2.引入依賴
接下來要寫的程序,會使用Servlet,Servlet這個api是tomcat提供的,不是jdk提供的,屬于第三方庫,需要手動安裝引入(與mysql類似)
但是手動下載導(dǎo)入比較麻煩,實際應(yīng)用中涉及到的項目,可能依賴的內(nèi)容非常多,手動管理就非常麻煩了。因此我們使用maven就可以非常方便的解決上述問題
1)打開maven中央倉庫,找到需要的servlet的jar包
這邊我們下載3.1.0版本的, 因為3.1.0版本是和tomcat 8 匹配的版本,servlet與tomcat的版本一定要匹配。如下是版本匹配對應(yīng)的:
2)借助maven,自動下載上述依賴
復(fù)制這里的maven代碼片段
進(jìn)入項目的pom.xml 新建一個<dependencies>標(biāo)簽
復(fù)制進(jìn)來后,一般會自動下載,如果沒有點一下如下的刷新按鈕
如上,jar包會被下載到maven本地倉庫
3.創(chuàng)建目錄
maven 項目是普適的,不僅僅局限于Tomcat
而Tomcat來說,對于項目的目錄結(jié)構(gòu),還有一些額外的要求。
如下是tomcat要求的目錄結(jié)構(gòu),注意大小寫!
web.xml里的內(nèi)容不能空著,但是這里咋寫,也不必背誦,只需要找一個模板,如下即可
<!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.編寫代碼
在java目錄中,創(chuàng)建類.
doGet的意思是處理HTTP請求,當(dāng)tomcat收到一個GET請求的時候,就有可能執(zhí)行這個子類的方法;HttpServletRequest req(HTTP請求), HttpServletResponse resp(HTTP響應(yīng))
讓下面這個類和一個HTTP請求路徑關(guān)聯(lián)起來
import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; @WebServlet("/hello") public class HelloServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //這個打印是顯示在tomcat的控制臺上(服務(wù)器端) System.out.println("hello world"); //把內(nèi)容顯示到頁面上,把“hello world”字符串作為http響應(yīng)body的部分 //這個部分就會被瀏覽器顯示到頁面上 resp.getWriter().write("hello world"); } }
Tomcat不是收到所有的get請求都調(diào)用這個doGet方法,而是同時判斷
- 請求方法是get
- 請求的url中的路徑是 /hello
5.打包程序
打包程序,把咱們寫好的代碼打包成 war 包。(Tomcat需要有一個war包在上面)
maven就可以完成這個打包操作。步驟如下:
1)修改pom.xml,設(shè)置打包的類型和包名字,添加如下代碼:
//默認(rèn)情況下,打包的類型是jar包,這里tomcat的要求是war包 <packaging>war</packaging> //設(shè)置包名字 <build> <finalName>hellojava</finalName> </build>
2)在右側(cè)maven面板中,雙擊package這個按鈕 ,即可完成打包
出現(xiàn)如下字樣,表示打包成功了。
如果打包出現(xiàn)錯誤,可根據(jù)控制臺的提示信息,進(jìn)行修改。
一般有以下兩種情況:
- 打包操作,依賴了一些第三方的jar包,maven就會自動下載,如果下載過程中,網(wǎng)絡(luò)不太順暢,就容易出錯
- 代碼里有問題(配置文件 ,pom.xml)
打包完成后,會新增一個target目錄,包含一些臨時文件
6.部署程序
把war包拷貝到webapps目錄中即可,這里webapps目錄在當(dāng)初安裝Tomcat目錄下
選擇新增的target目錄下的war包
選擇target目錄下的war包,將它復(fù)制到wepapps目錄下
接下來,啟動tomcat即可。
7.驗證程序
通過瀏覽器,訪問tomcat,獲取到咱們代碼返回的hello world
總結(jié)
到此這篇關(guān)于JAVA ServLet創(chuàng)建一個項目的基本步驟的文章就介紹到這了,更多相關(guān)ServLet創(chuàng)建項目步驟內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解SpringBoot2 使用Spring Session集群
這篇文章主要介紹了SpringBoot2 使用Spring Session集群,本文通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值 ,需要的朋友可以參考下2019-04-04Java程序順序結(jié)構(gòu)中邏輯控制語句詳解流程
在程序開發(fā)的過程之中一共會存在有三種程序邏輯:順序結(jié)構(gòu)、分支結(jié)構(gòu)、循環(huán)結(jié)構(gòu),對于之前所編寫的代碼大部分都是順序結(jié)構(gòu)的定義,即:所有的程序?qū)凑斩x的代碼順序依次執(zhí)行2021-10-10java之TreeUtils生成一切對象樹形結(jié)構(gòu)案例
這篇文章主要介紹了java之TreeUtils生成一切對象樹形結(jié)構(gòu)案例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-09-09Java中Date,Calendar,Timestamp的區(qū)別以及相互轉(zhuǎn)換與使用
以下是對Java中Date,Calendar,Timestamp的區(qū)別以及相互轉(zhuǎn)換與使用進(jìn)行了詳細(xì)的介紹,需要的朋友可以過來參考下2013-09-09Java多線程中的ThreadPoolExecutor使用解析
這篇文章主要介紹了Java多線程中的ThreadPoolExecutor使用解析,作為線程池的緩沖,當(dāng)新增線程超過maximumPoolSize時,會將新增線程暫時存放到該隊列中,需要的朋友可以參考下2023-12-12