DispatcherServlet


1.DispathCerServiceletとは


HttopRequestの要件に応じて、コントローラおよびコントローラは、他のコントローラおよびHandlerにデータを送信することができる.
(データ移動許可)

2.[構造]



(1) Servlet WebApplicationContext


Controllers:Viewリクエストによる処理
ViewResolver:String Handlerが返す論理ベースのビュー名を、応答に表示する実際のパスに変更します.
HandlerMapping:Webリクエストのパスマッピング(パスコントローラに委任)

(2) RootWebApplicationContext


RootWebApplicationContextには、通常、複数のサーブレットインスタンスで共有する必要があるデータストレージやビジネス・サービスなどのインフラストラクチャが含まれます.

3.フローチャート


詳細限定:SpringDocs3.2

4.[コードを開く]


--DispatcherServlet--

public class DispatcherServlet extends FrameworkServlet {
 
   @Nullable
    private MultipartResolver multipartResolver;
    @Nullable
    private LocaleResolver localeResolver;
    @Nullable
    private ThemeResolver themeResolver;
    @Nullable
    private List<HandlerMapping> handlerMappings;
    @Nullable
    private List<HandlerAdapter> handlerAdapters;
    @Nullable
    private List<HandlerExceptionResolver> handlerExceptionResolvers;
    @Nullable
    private RequestToViewNameTranslator viewNameTranslator;
    @Nullable
    private FlashMapManager flashMapManager;
    @Nullable
    private List<ViewResolver> viewResolvers;
    
    public DispatcherServlet() {
        this.setDispatchOptionsRequest(true);
    }

    public DispatcherServlet(WebApplicationContext webApplicationContext) {
        super(webApplicationContext);
        this.setDispatchOptionsRequest(true);
    }

    .
    .
    .
1.DispatcherServiceletはFrameworkServiceletを継承します.
HttpServeretBeanを継承し、Webアプリケーションのサーブレット、ビジネスロジック、構成を管理および管理します.
1.実際には、メンバー変数としてResolverおよびHandleMapping関連インタフェースが多数見られます.

--WebApplicationContext--


public interface WebApplicationContext extends ApplicationContext {
String ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE = WebApplicationContext.class.getName() + ".ROOT";
String SCOPE_REQUEST = "request";
String SCOPE_SESSION = "session";
String SCOPE_APPLICATION = "application";
String SERVLET_CONTEXT_BEAN_NAME = "servletContext";
String CONTEXT_PARAMETERS_BEAN_NAME = "contextParameters";
String CONTEXT_ATTRIBUTES_BEAN_NAME = "contextAttributes";
@Nullable
ServletContext getServletContext();
}
1.WebApplicationContexts=ApplicationContext+Web+ServletContext

5.[実際のログ]



1.Viewはこのパスを介してDispatcherServiceletにデータを要求します.
2.「要求完了マッピング」から「所有者コントローラ」のinitFindFormにマッピングします.
3.コンテンツを処理してコンテンツを返し、ViewResolverによってパスを渡す.

6.[概要]


DispatcherServiceletは、入力されたHttpRequestを処理し、要求を委任し、Springアプリケーション内で実施される構成HandlerAdapterインタフェースに従って要求を処理する.(Handler、Controller、EndPoint関連ツールで)
コメントソース:
baeldung , Spring5 , Spring3