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

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # Java Servlet 教程 > 原文: [http://zetcode.com/articles/javaservlet/](http://zetcode.com/articles/javaservlet/) Java Servlets 教程展示了如何在 Java 中創建簡單的 servlet。 我們使用 Java 注解和 XML 文件創建 servlet。 ## Java Servlet Servlet 是響應網絡請求的 Java 類。 這主要是一個 HTTP 請求。 Java servlet 用于創建 Web 應用。 它們在 servlet 容器(例如 Tomcat 或 Jetty)中運行。 現代 Java Web 開發使用在 servlet 之上構建的框架。 例如,Spring 或 Vaadin 框架使用 servlet。 `javax.servlet`和`javax.servlet.http`包提供用于編寫 ??servlet 的接口和類。 ```java <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> <scope>provided</scope> </dependency> ``` 這些示例使用此 Maven 依賴項。 `javax.servlet-api`提供 Servlet API。 `provided`范圍使依賴項在編譯時可用,并指示它在運行時已可用。 包含在 Servlet 容器(Tomcat,Jetty)中。 ## Java Servlet 注解示例 在下面的示例中,我們使用`@WebServlet`批注創建 Java Servlet。 從 Servlet 3.0 規范開始可以使用`@WebServlet`批注。 注解在部署時由容器處理。 ```java $ tree . ├── nb-configuration.xml ├── pom.xml └── src ├── main │ ├── java │ │ └── com │ │ └── zetcode │ │ └── web │ │ └── MyServlet.java │ ├── resources │ └── webapp │ ├── index.html │ ├── META-INF │ │ └── context.xml │ └── WEB-INF └── test └── java ``` 這是項目結構。 `context.xml` ```java <?xml version="1.0" encoding="UTF-8"?> <Context path="/JavaServletAnnotation"/> ``` 在 Tomcat `context.xml`文件中,我們定義了上下文路徑。 它是 Web 應用的名稱。 `MyServlet.java` ```java package com.zetcode.web; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.ServletOutputStream; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet(name = "MyServlet", urlPatterns = {"/MyServlet"}) public class MyServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/plain;charset=UTF-8"); ServletOutputStream out = response.getOutputStream(); out.print("This is MyServlet"); } } ``` `MyServlet` Servlet 將一條簡單的文本消息返回給客戶端。 ```java @WebServlet(name = "MyServlet", urlPatterns = {"/MyServlet"}) ``` Java 類用`@WebServlet`注解修飾。 它映射到`MyServlet` URL 模式。 ```java @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ``` GET 請求調用`doGet()`方法。 該方法接收`HttpServletRequest`和`HttpServletResponse`對象。 ```java response.setContentType("text/html;charset=UTF-8"); ``` Servlet 將以純文本格式輸出數據,并且數據的編碼設置為 UTF-8。 ```java ServletOutputStream out = response.getOutputStream(); ``` 通過`getOutputStream()`方法,我們獲得了 servlet 輸出流。 ```java out.print("This is MyServlet"); ``` 我們使用`print()`方法編寫一條短信。 `index.html` ```java <!DOCTYPE html> <html> <head> <title>Home page</title> <meta charset="UTF-8"> </head> <body> <a href="MyServlet">Call MyServlet</a> </body> </html> ``` 在主頁中,我們有一個調用 servlet 的鏈接。 ## Java Servlet XML 示例 在第二個示例中,我們在`web.xml`部署描述符中定義了兩個 servlet。 在 Servlet 3.0 規范之前,這是定義 Java Servlet 的唯一方法。 ```java $ tree . ├── pom.xml └── src ├── main │ ├── java │ │ └── com │ │ └── zetcode │ │ └── web │ │ ├── FirstServlet.java │ │ └── SecondServlet.java │ └── webapp │ ├── index.html │ ├── META-INF │ │ └── context.xml │ └── WEB-INF │ └── web.xml └── test └── java ``` 這是項目結構。 `context.xml` ```java <?xml version="1.0" encoding="UTF-8"?> <Context path="/JavaServletXML"/> ``` 我們定義上下文路徑。 `web.xml` ```java <?xml version="1.0" encoding="UTF-8"?> <web-app version="3.1" 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"> <servlet> <servlet-name>FirstServlet</servlet-name> <servlet-class>com.zetcode.web.FirstServlet</servlet-class> </servlet> <servlet> <servlet-name>SecondServlet</servlet-name> <servlet-class>com.zetcode.web.SecondServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>FirstServlet</servlet-name> <url-pattern>/FirstServlet</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>SecondServlet</servlet-name> <url-pattern>/SecondServlet</url-pattern> </servlet-mapping> <session-config> <session-timeout> 30 </session-timeout> </session-config> </web-app> ``` 在`web.xml`文件中,我們定義了兩個 Servlet:`FirstServlet`和`SecondServlet`。 `web.xml`位于`WEB-INF`目錄中。 ```java <servlet> <servlet-name>FirstServlet</servlet-name> <servlet-class>com.zetcode.web.FirstServlet</servlet-class> </servlet> ``` 我們定義名稱和 servlet 類。 ```java <servlet-mapping> <servlet-name>FirstServlet</servlet-name> <url-pattern>/FirstServlet</url-pattern> </servlet-mapping> ``` 我們將 servlet 映射到 URL 模式。 `FirstServlet.java` ```java package com.zetcode.web; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class FirstServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/plain;charset=UTF-8"); ServletOutputStream out = response.getOutputStream(); out.print("This is First Servlet"); } } ``` 這是第一個 servlet。 `SecondServlet.java` ```java package com.zetcode.web; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class SecondServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/plain;charset=UTF-8"); ServletOutputStream out = response.getOutputStream(); out.print("This is Second Servlet"); } } ``` 這是第二個 servlet。 `index.html` ```java <!DOCTYPE html> <html> <head> <title>Home page</title> <meta charset="UTF-8"> </head> <body> <p> Call <a href="FirstServlet">First Servlet</a> </p> <p> Call <a href="SecondServlet">Second Servlet</a> </p> </body> </html> ``` 在主頁中,我們有兩個鏈接來調用兩個 servlet。 在本教程中,我們展示了如何創建簡單的 Java Servlet。 您可能也對以下相關教程感興趣: [Java Servlet 上傳文件](/articles/javaservletuploadfile/), [Java Log4j 教程](/java/log4j/), [Java Servlet RESTful 客戶端](/articles/javaservletrestclient/), [Java `RequestDispatcher`](/java/requestdispatcher/) ,[從 Java servlet 提供純文本](/articles/javaservlettext/) , [Java servlet 圖像教程](/articles/javaservletimage/)或 [Java 教程](/lang/java/)。
                  <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>

                              哎呀哎呀视频在线观看