【Servlet 5.0】入門教程


Tomcat版本:10.0.10
Servlet版本:5.0
JDK版本:11

創建項目

使用maven創建一個webapp項目

image

填好項目名稱

image

配置好maven的家目錄、配置文件、本地倉庫路徑,即可點擊完成

image


導入Servlet包

在項目下的pom.xml里加上依賴包

注意:這里Tomcat10使用的servlet在jakarta包下

  <dependencies>
    <!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
    <dependency>
      <groupId>jakarta.servlet</groupId>
      <artifactId>jakarta.servlet-api</artifactId>
      <version>5.0.0</version>
    </dependency>
    <dependency>
      <groupId>jakarta.servlet.jsp</groupId>
      <artifactId>jakarta.servlet.jsp-api</artifactId>
      <version>3.0.0</version>
    </dependency>
  </dependencies>

手動創建所需目錄

image


Servlet配置文件(web.xml)

如Servlet配置文件版本比較久,建議更改為高版本

image

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="https://jakarta.ee/xml/ns/jakartaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_5_0.xsd"
         version="5.0">

</web-app>

創建Servlet實例

方法一(實現接口)

package com.hua.servlet;

import jakarta.servlet.*;
import java.io.IOException;

/**
 *  實現Servlet接口里的方法
 */
public class HelloServletImpl implements Servlet {

    @Override
    public void init(ServletConfig config) throws ServletException {
    }

    @Override
    public ServletConfig getServletConfig() {
        return null;
    }

    /**
     * 當客戶端訪問了綁定該Servlet的路徑時,會執行service方法
     * @param req   request,客戶端請求對象
     * @param res   response,服務端響應對象
     * @throws ServletException
     * @throws IOException
     */
    @Override
    public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
        System.out.println("進入service方法");
    }

    @Override
    public String getServletInfo() {
        return null;
    }

    @Override
    public void destroy() {
    }
}

方法二(繼承)【建議使用】

package com.hua.servlet;

import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
/**
 * 1、繼承HttpServlet
 * 2、重寫doGet和doPost方法,客戶端的get請求和post請求會分別走到對應的方法里
 */
public class HelloServletExtend extends HttpServlet {
    /**
     * @param req   request,客戶端請求對象
     * @param resp   response,服務端響應對象
     * @throws ServletException
     * @throws IOException
     */
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("進入HelloServletExtend--》doGet方法");
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("進入HelloServletExtend--》doPost方法");
    }
}

方法三 Idea快捷創建

image

image

自動創建Servlet類和Servlet配置,不過需要手動增加<servlet-mapping>

image

配置Servlet(web.xml)

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="https://jakarta.ee/xml/ns/jakartaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_5_0.xsd"
         version="5.0">
    
<!--    servlet標簽給tomcat配置Servlet程序-->
<!--    每一個Servlet程序都要做一份配置-->
    <servlet>
<!--    Servlet的名稱,建議是類名-->
        <servlet-name>HelloServletImpl</servlet-name>
<!--        Servlet類的全路徑-->
        <servlet-class>com.hua.servlet.HelloServletImpl</servlet-class>
    </servlet>
    <servlet-mapping>
<!--        對應Servlet的名稱-->
        <servlet-name>HelloServletImpl</servlet-name>
<!--        配置路徑,當客戶端訪問下面的路徑,就會訪問到相對應的Servlet類處理-->
        <url-pattern>/hello1</url-pattern>
    </servlet-mapping>

    <servlet>
        <servlet-name>HelloServletExtend</servlet-name>
        <servlet-class>com.hua.servlet.HelloServletExtend</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>HelloServletExtend</servlet-name>
        <url-pattern>/hello2</url-pattern>
    </servlet-mapping>
</web-app>


免責聲明!

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



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