(a)は、ソーススプリングMVCを解析

Spring MVCの使用の最初に、簡単な理解

まず、MavenのWebプロジェクトをビルドする、最も簡単なMVCプロジェクトがちょうどだろう

        <依存> 
            <groupIdを> org.springframework </ groupIdを> 
            <たartifactId>春webmvc </たartifactId> 
            <バージョン> 5.1.7.RELEASE </バージョン> 
        </依存関係> //注の設定範囲、および自己Tomcatを防ぐために瓶との競合 
        <依存> 
            <groupIdを>のjavax.servlet </ groupIdを> 
            <たartifactId>のjavax.servlet-API </たartifactId> 
            <バージョン> 4.0.1 </バージョン> 
            <スコープ>提供</スコープ> 
        </依存関係> //該当しない場合は、JSP、あなたが設定することはできません 
        。<依存> 
            <groupIdを>のjavax.servlet </ groupIdを> 
            <たartifactId> JSTL </たartifactId> 
            <バージョン> 1.2 </ version>の
        </依存関係>

web.xmlの最も単純な構成

<?xml version = "1.0"エンコード= "UTF-8"?> 
の<web-appののxmlns:XSI = "http://www.w3.org/2001/XMLSchema-instance" 
         のxmlns = "のhttp:// javaのsun.comの/ XML / NS / JavaEEの"のxmlns:ウェブ= "http://java.sun.com/xml/ns/javaee" 
         のxsi:schemaLocationの =" http://java.sun.com/xml/ns / JavaEEのhttp://java.sun.com/xml/ns/javaee/web-app_3_0.xsd」
         ID = "WebApp_ID"バージョン= "3.0"> 
    <! -ルートIOC - > 
    <表示名>研究Spring MVCの</表示名> 
    の<servlet> 
        の<servlet-name>ののDispatcherServlet </サーブレット名> 
        <servlet- クラス > org.springframework.web.servlet。DispatcherServletの</ servlet- クラス > 
        の<init-param>の
            <PARAM名> contextConfigLocation </ PARAM名> 
            の<param-value>のクラスパス:/spring-mvc.xml </ PARAM値> 
        </ INIT-param>の
    </サーブレット> 
    <サーブレットマッピング> 
        <サーブレット名>のDispatcherServlet </サーブレット名> 
        の<url-pattern> / </のurl-pattern> 
    </のservlet-mapping> 

    <歓迎-ファイル・リスト> 
        <歓迎-ファイル> /index.htmlが</歓迎ファイル> 
    </歓迎のファイルリスト> 

</ web-app>の

web.xmlでの初期化パラメータの特定の名前に合わせて、ディレクトリのXML設定ファイルで作成されたMVCのリソースは、コンポーネント使用されるソースコード解析の最も基本的な構成されています

<?xml version = "1.0"エンコード= "UTF-8"?> 
<豆のxmlns = "http://www.springframework.org/schema/beans" 
    のxmlns:XSI = "http://www.w3.org / 2001 / XMLスキーマ・インスタンス" 
    のxmlns:コンテキスト = "http://www.springframework.org/schema/context" 
    のxmlns:MVC = "http://www.springframework.org/schema/mvc" 
    XSI:のschemaLocation =" http://www.springframework.org/schema/beans 
       ます。http:// www.springframework.org/schema/beans/spring-beans.xsd 
       ます。http:// www.springframework.org/schema/context 
       のhttp:// WWW .springframework.org /スキーマ/コンテキスト/春-context.xsd 
       のhttp://www.springframework.org/schema/mvc 
       ます。http:// www.springframework.org/schema/mvc/spring-mvc.xsd ">
 
    < 豆の
         クラス =" org.springframework.web.servlet.handler.SimpleUrlHandlerMapping "> 
        <プロパティ名前= "urlMap"> 
            <小道具> 
                <支えるキー= "/ test.do"> simpleConrol </小道具> 
            </小道具> 
        </ property>の
        <プロパティ名= "インターセプター" REF = "myHandlerInterceptor"> </ property>の
    </豆> 

    <! -控制器- > 
    <豆ID = "simpleConrol" クラス = "コントロール。SimpleControl「/> 

    <! -アダプタを実行する- > 
    <豆のクラス= "org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter" /> 

    <! -资源解析器- > 
    <豆のクラス = "org.springframework.web.servlet.view.InternalResourceViewResolver"> 
        <プロパティ名= "接頭辞"値=" / WEB-INF /ページ/ "/> 
        <プロパティ名= "サフィックス"値="。JSP "/> 
        <プロパティ名= "viewClass"値=" org.springframework.web.servlet.view.JstlView "/> 
    </ビーン> 
    
    <ビーンID =" myHandlerInterceptor " クラス = "interceptor.MyHandlerInterceptor"> </ビーン> 
    
    <ビーンクラス =" exceptionResolver。SimpleHandlerExceptionResolver "> </豆> 
</豆>

以下は、クラスの構成要素であります     

コントローラ

インポートのjavax.servlet.http.HttpServletRequest;
インポートのjavax.servlet.http.HttpServletResponse; 

輸入org.springframework.web.servlet.ModelAndView。
輸入org.springframework.web.servlet.mvc.Controller。

パブリック クラス SimpleControlが実装コントローラ{ 

    公共のModelAndViewのhandleRequest(HttpServletRequestのリクエスト、HttpServletResponseの応答)をスロー例外{
         int型 A = 1/0 
        ModelAndView MV = 新しいのModelAndView( "テスト" ); 
        mv.addObject(「単語」、「これはテストワードです」);
        返すMVを。
    } 

}

HandlerExceptionResolver

インポートのjavax.servlet.http.HttpServletRequest;
インポートのjavax.servlet.http.HttpServletResponse; 

輸入org.springframework.web.servlet.HandlerExceptionResolver;
輸入org.springframework.web.servlet.ModelAndView。

パブリック クラス SimpleHandlerExceptionResolverが実装HandlerExceptionResolver { 

    公共のModelAndView resolveException(HttpServletRequestのリクエスト、HttpServletResponseの応答、オブジェクト・ハンドラは、例外例){ 
        のModelAndViewのMV = 新規のModelAndView( "エラー" )。
        返すMVを。
    } 

}

HandlerInterceptor

インポートのjavax.servlet.http.HttpServletRequest;
インポートのjavax.servlet.http.HttpServletResponse; 

輸入org.springframework.web.servlet.HandlerInterceptor。
輸入org.springframework.web.servlet.ModelAndView。

パブリック クラス MyHandlerInterceptorが実装HandlerInterceptor { 

    パブリック ブール preHandle(HttpServletRequestのリクエストをHttpServletResponseの応答、オブジェクト・ハンドラ)がスロー例外{ 
        するSystem.out.printlnを( "これはMyHandlerInterceptor preHandleです" )。
        返す ; 
    } 

    公共 のボイドpostHandle(HttpServletRequestのリクエスト、HttpServletResponseの応答、オブジェクト・ハンドラのModelAndViewのModelAndView)がスロー例外{ 
        するSystem.out.printlnを( "これはMyHandlerInterceptor postHandleです" )。
    } 

    公共 ボイド afterCompletion(HttpServletRequestのリクエスト、HttpServletResponseの応答、オブジェクト・ハンドラは、例外EX)がスロー例外{ 
        するSystem.out.printlnを( "これはMyHandlerInterceptor afterCompletionです" )。
    } 

}

また、カスタム例外とすることができる、特別なリターンコードが返されたときに返された例外のカスタムを

輸入org.springframework.http.HttpStatus。
輸入org.springframework.web.bind.annotation.ResponseStatus。

@ResponseStatus(コード = HttpStatus.INTERNAL_SERVER_ERROR、理由は=「これはmyExceptionある」パブリック クラス MyExceptionが延び例外{ 

    プライベート 静的 最終 長いのserialVersionUID = 1Lを

}

 

 

 

 

一般的に引き継ぐように構成されて

<?xml version = "1.0"エンコード= "GBK"?> 
<豆のxmlns = "http://www.springframework.org/schema/beans" 
       のxmlns:XSI = "http://www.w3.org/2001 / XMLスキーマ・インスタンス" 
       のxmlns:コンテキスト = "http://www.springframework.org/schema/context" 
       のxmlns:MVC = "http://www.springframework.org/schema/mvc" 
       XSI:のschemaLocation =" HTTP: //www.springframework.org/schema/beans 
       ます。http:// www.springframework.org/schema/beans/spring-beans.xsd 
       ます。http:// www.springframework.org/schema/context 
       ます。http:// www.springframework .ORG /スキーマ/コンテキスト/バネ文脈。XSD 
       のhttp://www.springframework.org/schema/mvc 
       ます。http:// www.springframework.org/schema/mvc/spring-mvc.xsd ">
 
    <コンテキスト:ベース-コンポーネントは、スキャンパッケージ =" com.tuling.mvc.controlを」/ > 

    <! -注解驱动- > 
    <MVC:注釈ドリブン/> 

    <! -视图仓库- > 
    の<bean クラス = "org.springframework.web.servlet.view.InternalResourceViewResolver"> 
        <プロパティ名=」接頭辞"値= "/ WEB-INF /ページ/"/> 
        <プロパティ名= "サフィックス"値="。JSP "/> 
        <プロパティ名=" viewClass "  =" org.springframework.web.servlet.view。JstlView "/> 
    </豆> 

</豆>

 

おすすめ

転載: www.cnblogs.com/codefeng/p/10988737.html