SpringMVCワークフロー-詳細な説明

1つは、SpringMVCの概要です。

MVC:これは、ビジネスロジックとページ表示を分離するアーキテクチャモデルであり、プログラムが階層化され、分業と協力が行われ、互いに独立し、協調します。

MVCは、Model、View、およびControllerの略語であり、ソフトウェア設計仕様です。

モデル:表示されるデータを提供するデータモデルには、ドメインモデルまたはJavaBeanコンポーネントと見なすことができるデータと動作が含まれていますが、現在は一般的に分離されています:値オブジェクト(データDao)とサービスレイヤー(動作サービス) 。つまり、モデルは、データとビジネスを含む、モデルデータクエリやモデルデータステータスの更新などの機能を提供します。

ビュー(ビュー):モデルの表示、論理ビューの物理ビューへの解析、およびレンダリングを担当します。

コントローラ:ユーザーリクエストを受信し、処理のためにモデルに委任し、処理後に返されたモデルデータをビューに返します。ビューは表示を担当します。スケジューリングの役割を果たします。

第二に、SpringMVCの動作原理図

ここに画像の説明を挿入します

実装プロセス

1.ユーザーがフロントコントローラーDispatcherServlethttpリクエストを送信すると、中央にデータフィルタリング用のフィルターがあります。DispatcherServletは、doServiceメソッドを実行し、データが注入された後にdoDispatchメソッドを呼び出して、要求されたリソース識別子(URI)を取得します。

ユーザーがhttpリクエストを開始した後、フィルターフィルターはクライアントのHttpServletRequestをインターセプトします。これは主に、HttpServletRequestの前処理、必要に応じてHttpServletRequest権限の確認、およびHttpServletRequestヘッダーとデータまたはレコードログの変更に使用されます。

2. DispatcherServlet、リクエストを受信した後、HandlerMappingプロセッサマッパーを呼び出しますHandlerMappingは、特定のHandlerプロセッサを検索し(xml構成とアノテーションに従って検索できます)、プロセッサオブジェクトとHandlerInterceptorプロセッサインターセプター(存在する場合)を生成して、DispatcherServletに返します。

DispatcherServletは、すべてのプロセッサマッパーをトラバースして、HTTP要求を処理できるハンドラーを見つけます。正常に一致したHandlerMappingは、HandlerExecutionChainタイプのプロセッサ実行チェーンをDispatcherServletに返します。これは、Handlerと一連のHandlerInterceptorプロセッサインターセプターをカプセル化します。その後、getHandlerAdapterメソッドが呼び出され、挿入されたすべてのプロセッサーアダプターHandlerAdapterをトラバースし、HandlerAdapterのsupportsメソッドを使用して、このハンドラーに適したアダプターサブクラスを見つけます。

3.HandlerExecutionChainタイプのカプセル化されたハンドラー実行チェーンとこのハンドラーに適したアダプターをDispatcherServletに返します。

4.適切なアダプタサブクラスを取得した後、HandlerAdapterでハンドラメソッドを実行します。メソッドは対応するBeanを呼び出し、Beanに対応するControllerクラスを実行します。

DispatcherServletは制御をHandlerAdapterに転送します。プロセッサアダプターはHTTP要求HttpServletRequestとHTTP応答HttpServletResponseをハンドラー(またはコントローラー)に渡し、コントローラーはサービスビジネスレイヤーを呼び出してデータロジック(Mybatisフレームワーク)とコントローラーを処理します。リクエストが処理された後、データモデルと論理ビューを含むModelAndViewオブジェクトがHandlerAdapterに返され、最後にプロセッサアダプタによってDispatcherServletに返されます。

5.最後に、実行結果をModelAndViewオブジェクトにカプセル化し、DispatcherServletに返します。

6. DispatcherServletはModelAndViewをViewResloverビューパーサーに渡し、ビューに従ってビューをレンダリングします(つまり、モデルデータをビューに入力します)

SpringMVCでビューを処理するための2つの最後のインターフェイスは、ViewResolverとView ViewResolverです。ViewResolverの役割は、論理ビューを物理ビューに解決することです。View
の主な役割は、render()メソッドを呼び出して物理ビューをレンダリングすることです。
返されたModelAndViewによると、構成で定義されたViewResolver(Springコンテナーに登録する必要があります)を介して、モデルおよびビューと組み合わせてビューをレンダリングします

7.処理されたModelAndViewビューをDispatcherServletに渡すと、DispatcherServletがクライアントに応答します(表示画面)。

HttpServletResponseは、Filterを介して後処理できます。

3つのSpringMVCコアコンポーネント

フロントコントローラーDispatcherServlet

要求を受信して​​結果に応答することは、リピーターと中央処理装置に相当します。dispatcherServletを使用すると、他のコンポーネント間の結合が減少します。ユーザーリクエストがフロントコントローラーに到着すると、mvcモードのcに相当します。DispatcherServletはプロセス制御全体の中心です。他のコンポーネントを呼び出してユーザーリクエストを処理します。dispatcherServletの存在により、コンポーネント間の結合が減少します。

HandlerMapping

要求されたURLに従ってハンドラーを検索します。HandlerMappingは、ユーザーの要求に従ってプロセッサーであるハンドラーを検索します。Springmvcは、構成ファイルモード、実装インターフェイスモード、注釈モードなど、さまざまなマッピング方法を実装するためのさまざまなマッパーを提供します。等

HandlerAdapter

特定のルール(HandlerAdapterに必要なルール)に従ってHandlerを実行し、HandlerAdapterを介してプロセッサーを実行します。これはアダプターモードのアプリケーションです。Handlerを作成するときは、HandlerAdapterの要件に従って、アダプターがHandlerを正しく実行し、アダプターを拡張できるようにします。詳細プロセッサの種類が実行を実行します。

ハンドラ

ハンドラーは、DispatcherServletフロントエンドコントローラーに続くバックエンドコントローラーです。DispatcherServletの制御下で、ハンドラーは特定のユーザー要求を処理します。
ハンドラーには特定のユーザービジネスリクエストが含まれるため、エンジニアは通常、ビジネス要件に従ってハンドラーを開発する必要があります。

ビューリゾルバーViewResolver

ビュー解決を実行し、論理ビュー名に従って実際のビューに解決します
。ViewResolverは、処理結果からビュービューを生成します。ViewResolverは、最初に論理ビュー名を物理ビュー名、つまり特定のページに解決します。アドレスをクリックしてから、Viewビューオブジェクトを生成します。Viewは、ページを介して処理結果をレンダリングしてユーザーに表示します。springmvcフレームワークは、jstlView、freemarkerView、pdfViewなどを含む多くのタイプのビュービューを提供します。

おすすめ

転載: blog.csdn.net/weixin_53601359/article/details/114460179