<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # Java Servlet 示例 > 原文: [https://javatutorial.net/java-servlet-example](https://javatutorial.net/java-servlet-example) 在本教程中,我將向您展示如何創建 Servlet 并將其部署在 [Apache Tomcat 8](https://javatutorial.net/run-tomcat-from-eclipse) 中 ## 什么是 Servlet? Servlet 是幾乎每個 Java Web 應用程序的構建塊。 它們提供了接受 HTTP 請求并將 HTTP 響應返回給用戶的核心功能。 即使您使用 JSP 來構建網頁,JSP 文件最終還是會被應用服務器或 Web 容器(例如 Glassfish 或 Tomcat)編譯為 Servlet。 Servlet 對于您的 Web 容器完成其工作,服務 GET,POST,HEAD,PUT,DELETE,OPTIONS 和 TRACE 請求并向 Web 客戶端返回響應至關重要。 您最可能熟悉 GET 和 POST 請求。 我強烈建議您花些時間閱讀上面列出的其他類型的請求。 如果您還不了解它們,請立即閱讀本文 [https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html](https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html) 。 ## Servlet 項目結構 在我們的第一個示例中,我們將構建一個簡單的 Servlet,在您的瀏覽器中打印消息`"Hello world"`,這不是很簡單。 我們將使用 Maven 構建項目。 我們將創建一個 Servlet 類和一個`web.xml`文件。 `web.xml`文件也稱為部署描述符,它向 Web 容器提供有關如何處理 servlet 的信息。 將其視為配置文件。 下圖顯示了我們項目的文件結構 ![Project file structure](https://img.kancloud.cn/20/4e/204e688b5f1469ecf2bf3aeb26e52e24_536x385.jpg) 項目文件結構 您可以在 GitHub [https://github.com/JavaTutorialNetwork/Tutorials/tree/master/SimpleServlet](https://github.com/JavaTutorialNetwork/Tutorials/tree/master/SimpleServlet) 中找到我們 Servlet 示例的完整源代碼。 ## 項目 POM 文件 我們的 Servlet 項目的 maven 構建`pom.xml`文件如下所示: ```java <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>net.javatutorial.tutorials</groupId> <artifactId>SimpleServlet</artifactId> <version>1</version> <packaging>war</packaging> <name>SimpleServlet</name> <url>https://javatutorial.net</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> <scope>provided</scope> </dependency> </dependencies> <build> <sourceDirectory>src/main/java</sourceDirectory> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>2.3</version> <configuration> <warSourceDirectory>src/main/webapp</warSourceDirectory> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.1</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> </build> </project> ``` 讓我們拆解`pom`文件,看一下重要的東西: 1. 我們需要將包裝設置為`war`。 Tomcat 中的 Web 應用程序打包到 WAR 文件(Web 歸檔文件)中,封裝了該應用程序的所有數據。 WAR 文件的名稱基于您在 maven pom 文件中設置的`arifactId`和`version`參數建立。 在這種情況下,我們的 WAR 文件的名稱為`SimpleServlet-1.war` 2. 我們創建 servlet 所需的依賴關系為`javax.servlet-api`。 我們將范圍設置為“已提供”,因為 Tomcat 已經內置了所需的所有庫。 3. 我們需要 Maven WAR 插件才能創建 WAR 文件 4. 在 WAR 插件的編譯器部分中設置 1.8。 這意味著將使用 Java 8 編譯類 ![servlet pom](https://img.kancloud.cn/f3/e1/f3e1895e7e2563de1cddd88ce364ece0_735x734.jpg) ## 簡單的 Servlet 示例 讓我們看一個非常基本的 servlet 的源代碼,在 Web 瀏覽器中打印消息`"Hello World!"`。 ```java package net.javatutorial.tutorials; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class SimpleServlet extends HttpServlet { private static final long serialVersionUID = -4751096228274971485L; @Override protected void doGet(HttpServletRequest reqest, HttpServletResponse response) throws ServletException, IOException { response.getWriter().println("Hello World!"); } @Override public void init() throws ServletException { System.out.println("Servlet " + this.getServletName() + " has started"); } @Override public void destroy() { System.out.println("Servlet " + this.getServletName() + " has stopped"); } } ``` 所有 servlet 都需要擴展抽象類`HttpServlet`。`HttpServlet`提供了構建 HTTP 響應的所有方法 - 我們在這里所做的是重寫某些方法以放置我們自己的邏輯。 當客戶端(瀏覽器)向我們的 Servlet 發出 GET 請求時,將執行`doGet`方法。 在我們的示例中,它將僅返回文本響應`"Hello World!"`。 當 Web 容器首次啟動 servlet 時,將一次調用`init()`方法。 這發生在應用程序部署或第一次調用此 servlet 時。 初始化方法可用于設置數據庫連接或其他耗時的初始化操作。 當 Web 容器終止 Servlet 時,將調用`destroy()`方法。 我們可以使用這種方法來關閉與數據庫或其他開放資源的連接。 ## 創建`web.xml`部署描述符 `web.xml`文件用于告訴 Web 容器如何處理 Web 應用程序中的文件。 將其視為配置文件。 ```java <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1"> <display-name>Simple Servlet Application</display-name> <servlet> <servlet-name>simpleServlet</servlet-name> <servlet-class>net.javatutorial.tutorials.SimpleServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>simpleServlet</servlet-name> <url-pattern>/hello</url-pattern> </servlet-mapping> </web-app> ``` `<display-name>`:該應用程序將在 Tomcat 管理器中以該名稱列出。 閱讀本教程,學習[如何配置 Tomcat 管理器](https://javatutorial.net/how-to-install-and-configure-tomcat-8)和[如何使用 Tomcat 管理器](https://javatutorial.net/how-to-deploy-and-undeploy-applications-in-tomcat)部署應用程序。 `<servlet>`標簽保存了我們 Servlet 的配置。`<servlet-name>`是我們 Servlet 的別名,用于在`web.xml`文件中配置 Servlet 的其他屬性。`<servlet-class>`是我們的 Servlet 的路徑。`<load-on-startup>1</load-on-startup>`表示,當 Tomcat 啟動時,該 servlet 將被加載到 Web 容器中。 如果您的項目中還有其他 servlet,則可以設置啟動時加載的值,例如 2,3, 100 等。值最低的 servlet 具有更高的優先級,并且將首先加載。 `<servlet-mapping>`用于為 servlet 提供 URL。 在我們的示例中,將`/hello`模式賦予我們的 servlet,這意味著訪問您本地服務器上的 servlet 的完整 URL 為`http://localhost:8080/SimpleServlet/hello` ## 構建和部署示例 構建源代碼后,您將準備好部署 WAR 文件。 WAR 將包含已編譯的 servlet 類和部署描述符文件`web.xml`。 ![WAR file structure](https://img.kancloud.cn/68/b8/68b84f423151fc5513a5737c973b0272_364x304.jpg) WAR 文件結構 如果您需要有關如何部署 WAR 文件的其他信息,請參考本教程[如何在 Tomcat 中部署和取消部署應用程序](https://javatutorial.net/how-to-deploy-and-undeploy-applications-in-tomcat)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看