首頁 > 軟體

實現一個基於Servlet的hello world程式詳解步驟

2022-02-12 19:00:24

一. 引入相關jar包

首先,我們先在idea裡建立出一個Maven專案出來,除了路徑要填成自己的希望路徑以外,其他都可以一路next和finish

建立好後,我們需要在pom.xml中加上一組<dependencies>標籤,在標籤裡引入servlet api的jar包,引入方法為從maven中央倉庫中複製貼上即可maven中央倉庫

開啟後,我們在搜尋方塊中輸入servlet,其中第一個就是我們想要的結果

我們選擇與Tomcat對應的版本號的Java Servlet API (博主的Tomcat版本為8,所以就選擇了3.1.0這個版本號)

此時我們直接將中間這段程式碼複製到我們建立好的<dependencies>標籤中即可

注意:剛開始引入後程式碼可能為紅顏色,表示maven正在下載資源,只需等一會時間,或者過一會重新整理一下便可以引入成功

二. 編寫java程式碼

1. 建立一個類

我們建立的程式碼,需要繼承自HttpServlet類,然後才能讓這個類被Tomcat給呼叫到,如果剛才Maven的依賴下載的不正確,此時HttpServlet是不能被補全出來(標紅的)

2. 刪除super方法

//super.doGet(req, resp); 此方法是直接構造了一個錯誤的響應(狀態碼為405的響應),一定要將其刪掉

補充:

protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException

doGet是HttpServlet這個父類別的方法,這個方法的引數分別是HttpServletRequest(HTTP請求)和HttpServletResponse(HTTP響應),doGet方法裡要做的事情就是根據請求生成響應。

@Override

我們此處重寫了這個doGet之後,並不需要手動呼叫doGet,而是由Tomcat自動來呼叫;也不需要咱們手動的建立HelloServlet範例,也是由Tomcat自動建立範例。

3. 構造相關字串

這個操作,就是往HTTP響應的body中寫了一個"hello world"字串。

4. 將類和HTTP特定請求相關聯

剛才我們雖然將相關字串構造成功了,但我們還不知道傳送一個什麼樣的請求才能執行到HelloServlet類的程式碼,因此,我們需要將類和一個HTTP特定請求相關聯,方法就是在類前面加上這個註解:

根據HTTP請求與url路徑進行關聯即可

  • 如果咱們的Tomcat 收到了一個路徑為/hello 的請求,就會呼叫到HelloServlet的程式碼;
  • 如果這個請求是GET請求,就會呼叫到HelloServlet的doGet方法
  • 同理,如果這個請求是POST請求,就會呼叫到HelloServlet的doPost方法

此時,完整程式碼如上所示

三. 建立一些必要的目錄和檔案

要想讓此程式在Tomcat上執行,只是依靠Maven建立的目錄和檔案是不夠的,還得我們自己來建立一些額外的內容

首先我們在main目錄下建立一個新的webapp目錄

緊接著,在剛才建立的目錄底下再建立一個WEB-INF目錄

然後,我們在剛剛建立的目錄底下再建立一個xml檔案即可(如果是一個靜態頁面部署到Tomcat上是不需要xml檔案的,但如果是servlet程式碼,要想讓Tomcat識別,必須要有此檔案)

<!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>

最後,我們將這些內容寫進去即可

四. 打包程式

完成以上步驟後,我們就需要把我們當前的程式碼進行編譯然後生成一個壓縮包出來,此時,我們可以繼續通過maven來完成 由於我們通過maven打出來的包是jar格式的,Tomcat不能直接識別jar格式的包,jar包一般是使用java -jar命令來執行的,而Tomcat所識別的格式是war這個格式,因此我們應該打成一個war格式的包

我們直接在pom.xml中手動修改即可

此時直接雙擊就可以進行打包了

結果如上所示。

  • 這個war包部署到tomcat上, tomcat就會自動解壓縮,生成一個同名的目錄~
  • 後面通過瀏覽器URL存取這個webapp的時候,要在URL中帶上這個目錄的名字~~
  • 因此我們最好換一個簡單一點的名字,後邊以便存取

此時博主將名字設定成servlet1

此時,我們繼續打包即可生成我們想要名稱的包

五. 部署程式

打完包後,我們將生成的war包部署到Tomcat上即可(將war包拷貝到Tomcat的webapps的目錄中)

然後我們啟動Tomcat後,會在webapps底下生成一個與war包同名的目錄

  • 其中在WEB-INF中就包含了web.xml以及編譯後生成的.class檔案
  • META-INF中包含了當前webapp中依賴的第三方jar包

六. 驗證程式是否正常工作

當前面的所有步驟都完成後,接下來我們就可以檢驗了,只需要通過瀏覽器存取一下Tomcat,構造一個特定的請求,觸發到特定的程式碼即可

到此這篇關於實現一個基於Servlet的hello world程式詳解步驟的文章就介紹到這了,更多相關Servlet hello world內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com