<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 功能強大 支持多語言、二開方便! 廣告
                ## Web專題一:Servlet [TOC] > Servlet是用Java編寫的服務器端程序,運行于支持Java的Web應用服務器中,可以響應HTTP請求 ### 1.1. Servlet生命周期 ![](https://img.kancloud.cn/d2/14/d21495d7d990b611d3392165760834df_423x672.png) #### 1.1.1. init()方法 ~~~ void init() throws ServletException ~~~ 在Servlet第一次被創建時才會被調用,且只調用一次 #### 1.1.2. service()方法 ~~~ void service(ServletRequest req, ServletResponse res) throws ServletException, IOException ~~~ Servlet容器在這里處理請求,根據請求的方法調用相應的doGet等方法,且每個請求都會產生一個新的線程 #### 1.1.3. doGet()方法 ~~~ void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException ~~~ 處理請求方法為GET的請求,更多request方法如下: ~~~ private static final String METHOD_DELETE = "DELETE"; private static final String METHOD_HEAD = "HEAD"; private static final String METHOD_GET = "GET"; private static final String METHOD_OPTIONS = "OPTIONS"; private static final String METHOD_POST = "POST"; private static final String METHOD_PUT = "PUT"; private static final String METHOD_TRACE = "TRACE"; ~~~ #### 1.1.4. doDestory()方法 銷毀Servlet,只被調用一次 ### 1.2. Servlet完整示例 #### 1.2.1. 創建Servlet類 定義`Servlet`方法有3種: - 實現`Servlet`接口 - 繼承`GenericServlet`類 - 繼承`HttpServlet`類 ~~~ package org.ibu; import javax.servlet.http.*; import javax.servlet.*; import java.io.IOException; import java.util.logging.Logger; public class SearchServlet extends HttpServlet { final Logger logger = Logger.getLogger(SearchServlet.class.getName()); @Override public void init() throws ServletException { logger.info("Servlet::init()"); } @Override public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException { logger.info("Servlet::service()"); super.service(req, res); } @Override public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { logger.info("Servlet::doGet()"); } @Override public void destroy() { logger.info("Servlet::destroy()"); } } ~~~ #### 1.2.2. 配置Servlet 在`/WEB-INF/web.xml`添加Servlet配置,將URL映射到Servlet類,將`/SearchServlet`和`/search`映射到SearchServlet類上 ~~~ <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_4_0.xsd" version="4.0"> <servlet> <servlet-name>SearchServlet</servlet-name> <servlet-class>org.ibu.SearchServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>SearchServlet</servlet-name> <url-pattern>/SearchServlet</url-pattern> <url-pattern>/search</url-pattern> </servlet-mapping> </web-app> ~~~ ### 1.3. Servlet完整示例(注解方式) #### 1.3.1. 創建Servlet類 ~~~ package org.ibu; import javax.servlet.annotation.WebServlet; import javax.servlet.http.*; import javax.servlet.*; import java.io.IOException; import java.util.logging.Logger; @WebServlet(name = "SearchServlet", urlPatterns = {"/SearchServlet", "/search"}) public class SearchServlet extends HttpServlet { final Logger logger = Logger.getLogger(SearchServlet.class.getName()); @Override public void init() throws ServletException { logger.info("Servlet::init()"); } @Override public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException { logger.info("Servlet::service()"); super.service(req, res); } @Override public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { logger.info("Servlet::doGet()"); } @Override public void destroy() { logger.info("Servlet::destroy()"); } } ~~~ #### 1.3.2. 配置Servlet `/WEB-INF/web.xml`無需配置Servlet ~~~ <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_4_0.xsd" version="4.0"> </web-app> ~~~ #### 1.3.3. 生命周期示例 1. startup啟動web服務器 2. 瀏覽器訪問[http://localhost:8080/SearchServlet](http://localhost:8080/SearchServlet) 3. 瀏覽器訪問[http://localhost:8080/search](http://localhost:8080/search) 4. shutdown停止Web服務器 日志信息輸出如下: ~~~ 19-Apr-2020 11:19:49.521 信息 [http-nio-8080-exec-3] org.ibu.SearchServlet.init Servlet::init() 19-Apr-2020 11:19:49.522 信息 [http-nio-8080-exec-3] org.ibu.SearchServlet.service Servlet::service() 19-Apr-2020 11:19:49.523 信息 [http-nio-8080-exec-3] org.ibu.SearchServlet.doGet Servlet::doGet() 19-Apr-2020 11:20:14.163 信息 [http-nio-8080-exec-8] org.ibu.SearchServlet.service Servlet::service() 19-Apr-2020 11:20:14.163 信息 [http-nio-8080-exec-8] org.ibu.SearchServlet.doGet Servlet::doGet() ... 19-Apr-2020 11:20:20.506 信息 [localhost-startStop-2] org.ibu.SearchServlet.destroy Servlet::destroy() ~~~
                  <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>

                              哎呀哎呀视频在线观看