Spring MVCの紹介
Spring MVCは、MVCアーキテクチャモデルに基づいた軽量のWebフレームワークです。目的は、Web開発をモジュール化し、全体的なアーキテクチャを分離することです。
スプリングMVCには次の利点があります。
スプリングフレームワークの一部として、春(IOC、AOPなど)の利点があります。
柔軟なURLからページへのコントローラーマッピングをサポートします
柔軟なデータ検証、フォーマット、およびデータ結合メカニズムを提供します
安らかなスタイルをサポートします
スプリングMVC要求プロセス
Spring MVCフレームワークの全体的な要求プロセスは次のとおりです。
上記の図には、スプリングMVCのいくつかの機能成分が含まれます。
フロントエンドコントローラー(DispatcherServlet):ユーザー要求を受信し、リクエスト結果を返します。その機能は、実行プロセス全体を制御し、さまざまなコンポーネントのスケジュール、コンポーネント間のカップリングの削減を制御するフォワーダーまたはセントラルプロセッサに相当します。
プロセッサマッピング:アノテーションまたはXML構成を介して、ユーザーが要求したURLに基づいて、対応するプロセッサハンドラーを見つけます。
プロセッサアダプター:マッパーが見つけたハンドラーに基づいて、プロセッサのメソッドへの呼び出しを完了します
ハンドラー:リクエスト処理、データの返却、情報の表示に関する特定のロジック
ビューリゾルバー:特定のビューを解析し、ModelandViewオブジェクトのビュー情報を介して、論理ビュー名を実際のビューに解析します。
要求プロセスの特定の手順の詳細な説明:
1:ユーザーがリクエストを開始すると、リクエストはフロントエンドコントローラー(DispatcherServlet)によって傍受されます
2:フロントエンドコントローラー(DispatcherServlet)リクエストプロセッサマッパー(ハンドラーラッピング)を検索するハンドラーを見つける
3:プロセッサマッパー(ハンドライマッピング)は、複数のインターセプターインターセプターを含む可能性のある構成(より注釈付きまたはXML構成になる可能性があります)に応じて対応するハンドラーを見つけ、フロントエンドコントローラーに戻す場合があります。
4:フロントエンドコントローラー(DispatcherServlet)は、プロセッサアダプター(ハンドラダプター)に対応するハンドラーを実行するよう要求します
5:アダプターが対応するハンドラープロセッサに引き渡され、実行されます
6:ハンドラープロセッサが実行されたら、ModelandViewオブジェクトをプロセッサアダプターに返します
7:プロセッサアダプターは、ハンドラープロセッサの返品結果を受け入れ、結果をフロントエンドコントローラー(DispatcherServlet)に返します
8:フロントエンドコントローラー(DispatcherServlet)はデータを受信し、プロセッサアダプターによって返される情報を表示し、ビューパーサーを要求し、対応するビューを解析します
9:ビューパーサーは、ビュー情報に一致する対応するビュー結果に基づいて、フロントエンドコントローラーに戻ります。
10:フロントエンドコントローラーは特定のビューを受信し、ビューをレンダリングし、モデルデータをビュービューに記入し、最終ビューを生成します
11:フロントエンドコントローラーが結果をユーザーに返します
デモをゼロから構築します
プロジェクトの作成:
Eclipseの下で新しいDynamic Webプロジェクトを作成します
プロジェクトデフォルトのディレクトリ構造:
JARパッケージの依存関係を追加します
対応するJARパッケージをWebContent> web-inf> libフォルダーの下にインポートします。ここでは、コアJARパッケージはSpring-webmvc-5.0.0.Release.jarであり、その他は主にコンテキストとBeandeパッケージ、JSTLタグライブラリ、および印刷ログのログパッケージを管理するための春です。
Web.xmlでフロントエンドコントローラーの構成
フロントエンドコントローラーは、スプリングMVC独自のサーブレットと同等であり、すべての適格なリクエストを傍受し、後続の処理のためにフレームワークに引き渡すために使用されます。
<?xml version = "1.0" encoding = "utf-8"?> <web-app xmlns:xsi = "http://www.w3.org/2001/xmlschema-instance" xmlns = "http://xmlns.jcp.org/xml/ns/javaee xsi:schemalocation = "http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/ns/javaee id = "webApp_id"バージョン= "3.1"> <! - フロントエンドコントローラー-dispatchServlet-> <servlet-name> springmvcnext </servlet-name> <servlet-class> org.springframework.web.servlet.dispatcherservlet </serplet-configlotions> <! ContextConfiglocationが構成されていない場合、SpringMVCの構成ファイルはデフォルトであり、Web-Inf/Servlet Name+"-Servlet.xml" - > <init-Name> ContextConfiglocation </param-name> <param-value> class:class:applicationContext.xml </param-> </init-param> </servam> </servam> <servlet-name> springmvcnext </servlet-name> <url-pattern>/</url-pattern> <! - url-patternが設定したルールに従ってユーザーが送信した要求をインターセプトします。静的リソースを含むすべてのリクエストはここで傍受されます - > </サーブレットマッピング> </web-app>
<サーブレットマッピング>タグで定義されているURLマッチングルールは、 *.actionに準拠する形式で、対応するサーブレットはspringmvcnextと呼ばれ、<サーブレットで構成されたコントローラーはorg.servlet.dispatchservletです。 <init-param>タグは、現在のコントローラーが依存するパラメーターです。 2つのパラメーターは、それぞれコンテキストパラメーターとパラメーターロードパスを表します。
ClassPathについて:Webプロジェクトの編集後の出力パスを表します
Spring MVC構成を構成します
JavaソースコードディレクトリにApplicationContext.xmlファイルを追加します
特定のコンテンツ:
<?xml version = "1.0" encoding = "utf-8"?> <beans xmlns = "http://www.springframework.org/schema/beans" xmlns:xsi = "http://www.w3.org/2001/xmlschema-instance" XMLNS:P = "http://www.springframework.org/schema/p" xmlns:context = "http://www.springframework.org/schema/mvc" xsi:schemalocation = "http://ww.springframework. http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/security http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd "> <! - パッケージスキャナータグを使用して、@controllerや @requestmappingなどの注釈を可能にします。 - > <コンテキスト:Component-Scanベースパッケージ= "com.sl.controller" /> <! - annotation driver-> <mvc:mvc:mvc:mvc:bean resolver-> <bean id = "internalresourceviewresolver"> <property name = "preputix" " /web-inf /<propetial name => <" />> <propertion name = " />> <property name =" </bean> </bean>
コントローラーとビュービューを追加します
SRCディレクトリにパッケージcom.sl.controllerを追加し、次のようにコントローラーコードを追加します。
パッケージcom.sl.controller; Import org.springframework.stereotype.controller; Import org.springframework.web.bind.annotation.RequestMapping; Import org.springframework.web.servlet.modelandview; @controllerpublic hellow hollotontroller "/redcontroller"/"/cresdcontroller"/cresdcontroller ") /indexで始まるURLパスでのリクエスト: /index /*および /index.html public modelandview helloworld(){string message = "hello spring mvc"; new ModelandView( "index"、 "message"、message)を返します。 }}web-inf/viewでビューファイルindex.jspを追加します
<html> <head> <title> spring mvc </title> </head> <body> $ {message} </body> </html>実行結果:
要約します
上記は、この記事のコンテンツ全体です。この記事の内容には、すべての人の研究や仕事に特定の参照値があることを願っています。ご質問がある場合は、メッセージを残してコミュニケーションをとることができます。 wulin.comへのご支援ありがとうございます。