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

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # Spring 中的`DispatcherServlet` > 原文: [https://javatutorial.net/dispatcher-servlet-in-spring](https://javatutorial.net/dispatcher-servlet-in-spring) 調度器 Servlet 是 [Spring Web MVC 中最重要的組件](https://javatutorial.net/implementing-spring-mvc-controllers)。 ![java-featured-image](https://img.kancloud.cn/05/3e/053ee0bb59842d92359246c98f815e0c_780x330.jpg) 為什么調度器 servlet 是最重要的組件? 因為它充當膠水,這意味著它接收到傳入的 URL 并找到正確的方法和視圖。 它通過 **HTTP 請求**接收 URL。 您還可以將其視為中間件,因為它與兩端進行通信 - HTTP 請求的發送方和 Spring 應用程序。調度器 Servlet 完全**集成**在 IoC 容器中,并允許您使用 Spring 擁有的所有功能。 ![Dispatcher Servlet example](https://img.kancloud.cn/e5/5b/e55bfdbf997a42f5e06bb5f246072e57_646x480.jpg) ### `DispatcherServlet`工作流程 以上介紹是頂級概述。 現在,讓我們更具體地了解它在幕后的發生方式。 1. 服務器請求到達服務器,并且調度器 Servlet 收到。 2. 為調度器 Servlet 授予了**處理程序對象**,在大多數情況下,它將是`HandlerExecutionChain`的實例,該實例來自`HandlerMapping`對象,該對象基于 URL 映射 。 1. 有兩種定義 URL 映射的方法: 1. `web.xml`文件 2. 控制器的方法注釋 3. 已從處理程序對象中檢索到`HandlerInterceptor`對象的一個??或多個實例。 4. 從處理程序對象中檢索`HandlerAdapter`的實例。 1. 由于這個實例,我們可以調用句柄方法,該方法導致執行控制器類具有的任何邏輯。 5. `HandlerInterceptor`實例上的后處理邏輯已執行。 這是調用渲染方法之前的最后一步。 6. 由`ViewResolver`實例完成返回給響應的適當視圖組件。 7. 最后,在該視圖的實例上調用了渲染方法。 分派器 Servlet 繼承自`HttpServlet`,并在 Web 應用程序的`web.xml`文件中聲明。 同樣,如果您從上面閱讀了步驟 2,您將看到我們需要 URL 映射。 首先,URL 映射將請求映射到分派器處理程序進行處理。 現在,使用 URL 映射的一種方法是將其存儲在相同的`web.xml`文件中。 ```java <web-app> <servlet> <servlet-name>example</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>example</servlet-name> <url-pattern>*.form</url-pattern> </servlet-mapping> </web-app> ``` 此代碼段示例摘自 [Spring 文檔](https://docs.spring.io/spring/docs/3.0.0.M4/spring-framework-reference/html/ch15s02.html)。 示例代碼段顯示,所有以`.form`結尾的請求都將由示例調度器 servlet 處理。 初始化調度器 servlet 后,框架將在應用程序的`web-inf`目錄中查找名稱為`[servlet-name]-servlet.xml`的文件,并在該目錄中創建 Bean 并覆蓋在全局范圍內以相同名稱定義的 bean 的所有定義。
                  <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>

                              哎呀哎呀视频在线观看