ホームページ Java &#&チュートリアル SpringMVCの基本構成の詳細な紹介

SpringMVCの基本構成の詳細な紹介

Sep 30, 2018 pm 04:04 PM
springmvc

この記事では、SpringMVC の基本的な構成について詳しく説明します。必要な方は参考にしていただければ幸いです。

今日は SpringMVC の基本的な構成について説明します。現在、アノテーションをサポートする主流フレームワークが増えており、当社の無敵 Spring もアノテーションに基づく「ゼロ構成」をサポートしています。

XML と比較したアノテーションの利点: Java のリフレクション メカニズムを最大限に活用して、クラス内の構造情報を取得できます。この情報は、アノテーションと Java コードが 1 つのファイルに格納されているため、構成作業を効果的に削減できます。メンテナンスがより容易になります。

注: アノテーションは Spring 2.5 バージョン以降でのみ使用できます。

アノテーションメソッドはBeanの定義情報とBeanの実装クラスを組み合わせたものです。 Springが提供するアノテーションは以下のとおりです。

@コンポーネント: 共通Beanクラスの宣言

@リポジトリ: 永続層Daoクラスの宣言

@サービス: ビジネス層クラスの宣言

@Controller: コントローラー クラスの宣言

友人はすでにこれら 4 つのアノテーションに精通していると思いますので、ばかげた話をする必要はありません。注釈を使用するときは、クラス内で注釈をスキャンすることを忘れないでください。 ! !

@RequestMapping (非常にコアなアノテーション)。このアノテーションは、コントローラーのリクエスト URL を指定するために使用されます。

コントローラーのクラス定義で、予備のマッピング情報を提供し、クラス下のすべてのリクエスト メソッドにプレフィックスを追加します。

コントローラー クラスのメソッド定義: さらにマッピング情報を提供し、メソッドのリクエスト パスを提供します。

DispacherServlet がリクエストをインターセプトした後、確認します。コントローラー上の @RequestMapping によって提供されるマッピング情報を通じて、リクエストに対応する処理メソッドを取得します。

@Controller
@RequestMapping("user")
public class UserController {
    @RequestMapping("/hello")
    public String hello(){
        return "hello";
    }
}
ログイン後にコピー

現時点でリクエストするパスは http://localhost:8080/SpringMvcDemo2/user/hello

@RequestMapping リクエスト URL リクエストのマッピングに加えて、リクエスト メソッドを使用することもできます。リクエスト パラメータとリクエスト ヘッダーを含むリクエストの場合、アノテーションにいくつかのパラメータがあります:

1) 値: リクエストの URL を示します

2) メソッド:リクエストメソッド(GET/POST)を表します

3) params: リクエストのパラメータを表します

4) heads: リクエストヘッダー

両者の関係は and になります。複数のリクエストを併用すると、リクエストをより正確に変更できます。

@RequestMapping(value="hello2",method=RequestMethod.POST,params={"username","userpass"},headers="contentType=text/*") 
   public String hello2(){
           return "hello";
    }
ログイン後にコピー

このコードは、要求されたアドレスが hello であることを示し、要求メソッドは Post であり、要求ヘッダーの contentType は text/ で始まる必要があります。同じメソッドで 2 つの URL を記述することができます。1 つは POST、もう 1 つは GET で、設定に従って厳密に呼び出されます。また、

@RequestMapping は Ant スタイルの URL をサポートし、Ant の 3 つのワイルドカードをサポートします。 。

? :キャラクターを設定することを示します。

*: 任意の文字と一致します

**: 多層パスと一致します

SpringMVC でのパラメータ処理:

@pathVariable: URL テンプレート メソッド

URL 内のプレースホルダーをマップするために使用されます。マップされた変数名は、次のようにプレースホルダー内の名前と一致している必要があります。リクエスト アドレスは http: //localhost:8080/SpringMvcDemo2/user/testPathVariable/Miya。この miya は、従来の URL で渡したパラメータです。 username=miya ですが、これは Baidu の参加につながりません。

@RequestMapping("/testPathVariable/{username}")
    public String hello3(@PathVariable("username")String username){
        System.out.println("username :  " + username);        
        return "hello";
    }
ログイン後にコピー

@RequestParam: リクエスト パラメータを取得します。リクエスト パラメータ名が型の名前と一致する場合は、このアノテーションを省略しても値を受け取ることができます。

@RequestMapping("/textParam")
    public String hello4(@RequestParam("username")String username,@RequestParam("userpass")String userpass){
        System.out.println("userpass :  " + userpass);        
        return "hello";
    }
ログイン後にコピー

@RequestHeader: リクエスト ヘッダーのパラメーターを取得します。

ここには 3 つのパラメーターがあります。 value: 指定されたパラメーターの名前、 required: 指定されたパラメータ 必須かどうか、defaultValue: パラメータのデフォルト値を指定します。

@RequestMapping("/testRequestHeader")
    public String hello5(@RequestHeader("Accept-Language") String language){
        System.out.println("language=" + language);       
        return "hello";
    }
ログイン後にコピー

@CookieValue: クライアントの Cookie 情報を取得するために使用されます。

@RequestMapping("/testCookieValue")    
public String hello6(@CookieValue("JSESSIONID")String sessionid){
        System.out.println("sessionid=" + sessionid);        
        return "hello";
    }
ログイン後にコピー

SpringMVC は、リクエスト メソッドのパラメータとして ServletAPI を使用できます。

@RequestMapping("/testServletAPI")    
public String hello7(HttpServletRequest request,HttpServletResponse response,HttpSession session){        
//我们可以在这里使用
        return "hello";
    }
ログイン後にコピー

SpringMVC は、モデル データを処理する次の方法を提供します。

#1) ModelAndView: 処理メソッドの戻り値の型を ModelAndView メソッド本体に設定し、モデル オブジェクトを通じてモデル データを追加します。ビューとモデル情報の両方が含まれます

@RequestMapping("/testModelAndView")
    public ModelAndView hello8(){
        ModelAndView modelAndView = new ModelAndView("hello");
        //添加单个值
        modelAndView.addObject("h","Hello Spring MVC");        
        return modelAndView;
    }
ログイン後にコピー

2) マップと仮パラメーター: 仮パラメーターが Map、Model、および ModelMap の場合、処理メソッドが返されるとき、マップ内のデータはモデルに自動的に追加されます。 # Spring MVC は内部で Model インターフェイスを使用してデータを保存し、暗黙的なオブジェクトを作成します。モデル オブジェクトはストレージとして機能します。データモデルのコンテナ。受信パラメータが

Map、Model、ModelMap の場合、SpringMVC はそれをコンテナー に自動的に保存します。

@RequestMapping("/testMap")    
public String hello9(Map<String,Object> map){
        map.put("mapdata", "map data");       
        return "hello";
    }
ログイン後にコピー

3)@SessionAttributes:将这个模型中的某个属性存储到Session中,以便多个请求之间共享这个属性,只能用来修饰类。在里面的方法如果参数容器中如map里卖弄保存一个与定义的属性名字相同会保存到容器中共享

4)@ModelAttribute:方法形参标记该注解后,形参对象就会放到模型中。

  SpringMVC在调用方法之前会逐个调用方法上标注了这个注解的方法。将@ModelAttribute中的属性保存到map中,可在执行表单提交生成对象之前,替换执行方法名相同的参数。

@ModelAttribute
public User getUser(){
    User user = new User();
    System.out.println("调用 getUser 方法");
    //默认保存名字为类名首字母小写的user对象到Request中
    return user;
}
@ModelAttribute
public void getUserById(Integer id,Map<String,Object> map){
    User myuser = new User();
    map.put("myuser", myuser);
    //手动指定user对象的名称,到Request中
    System.out.println("调用 getUser 方法");
}
ログイン後にコピー

由@SessionAttributs会引发一个很容易轻视的错误当类使用@SessionAttributes修饰,而方法中使用了和SessionAttributes修饰同名的映射参数,确没有添加@ModelAttribute修饰时,则会报错。

以上がSpringMVCの基本構成の詳細な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

SpringBootとSpringMVCの比較と差異分析 SpringBootとSpringMVCの比較と差異分析 Dec 29, 2023 am 11:02 AM

SpringBoot と SpringMVC はどちらも Java 開発で一般的に使用されるフレームワークですが、それらの間には明らかな違いがいくつかあります。この記事では、これら 2 つのフレームワークの機能と使用法を調べ、その違いを比較します。まず、SpringBoot について学びましょう。 SpringBoot は、Spring フレームワークに基づいたアプリケーションの作成と展開を簡素化するために、Pivo​​tal チームによって開発されました。スタンドアロンの実行可能ファイルを構築するための高速かつ軽量な方法を提供します。

SpringBoot と SpringMVC の違いは何ですか? SpringBoot と SpringMVC の違いは何ですか? Dec 29, 2023 am 10:46 AM

SpringBoot と SpringMVC の違いは何ですか? SpringBoot と SpringMVC は、Web アプリケーションを構築するための 2 つの非常に人気のある Java 開発フレームワークです。これらは別々に使用されることが多いですが、両者の違いは明らかです。まず、SpringBoot は Spring フレームワークの拡張版または強化版とみなすことができます。 Spring アプリケーションの初期化と構成プロセスを簡素化し、開発者を支援するように設計されています。

SpringBoot と SpringMVC の違いは何ですか? SpringBoot と SpringMVC の違いは何ですか? Dec 29, 2023 pm 05:19 PM

SpringBootとSpringMVCはJava開発でよく使われるフレームワークで、どちらもSpringフレームワークで提供されていますが、機能や使用方法にいくつかの違いがあります。この記事では、SpringBootとSpringMVCそれぞれの特徴と違いを紹介します。 1. SpringBoot の特徴: 構成の簡素化: SpringBoot は、構成より規約の原則により、プロジェクトの構成プロセスを大幅に簡素化します。プロジェクトや開発者に必要なパラメータを自動的に設定できます。

springboot と springmvc の違いは何ですか springboot と springmvc の違いは何ですか Jun 07, 2023 am 10:10 AM

springboot と springmvc の違いは、1. 意味の違い、2. 構成の違い、3. 依存関係の違い、4. 開発時間の違い、5. 生産性の違い、6. JAR パッケージ化機能の実装方法の違い、7. バッチ処理の有無です。提供される機能、8. さまざまな機能、9. さまざまなコミュニティおよびドキュメントのサポート、10. デプロイメント記述子が必要かどうか。

spring と springmvc の違いは何ですか spring と springmvc の違いは何ですか Dec 29, 2023 pm 05:02 PM

spring と springmvc の違い: 1. 位置付けと機能、2. コア機能、3. アプリケーション領域、4. 拡張性。詳細な紹介: 1. 位置付けと機能 Spring は、依存関係の注入、アスペクト指向プログラミング、トランザクション管理などの機能を提供する包括的なアプリケーション開発フレームワークであり、エンタープライズ レベルのアプリケーションの開発を簡素化するように設計されており、Spring MVC はそのSpring フレームワーク。そのモジュールは Web アプリケーションの開発に使用され、MVC パターンを実装します。2. コア機能など。

Java API開発におけるWebサービス処理にSpringMVCを利用する Java API開発におけるWebサービス処理にSpringMVCを利用する Jun 17, 2023 pm 11:38 PM

インターネットの発展に伴い、Web サービスはますます一般的になってきています。アプリケーション プログラミング インターフェイスとして、JavaAPI はさまざまなアプリケーション シナリオに適応するために新しいバージョンを常にリリースしています。 SpringMVC は、人気のあるオープンソース フレームワークとして、Web アプリケーションを簡単に構築するのに役立ちます。この記事では、SpringMVC の設定、コントローラーの作成、使用方法など、JavaAPI 開発における Web サービス処理に SpringMVC を使用する方法を詳しく説明します。

JavaのSpringMVCインターセプターの使い方 JavaのSpringMVCインターセプターの使い方 May 13, 2023 pm 02:55 PM

インターセプタの役割 SpringMVC のインターセプタは、サーブレット開発におけるフィルタに似ており、プロセッサの前処理と後処理に使用されます。インターセプタが一定の順序でチェーン状に接続されており、このチェーンをインターセプタチェーン(InterceptorChain)と呼びます。インターセプトされたメソッドまたはフィールドにアクセスすると、インターセプター チェーン内のインターセプターが、以前に定義された順序で呼び出されます。インターセプターは、AOP のアイデアを具体的に実装したものでもあります。インターセプターとフィルターの違い: フィルター (フィルター) インターセプター (インターセプター) の使用範囲はサーブレット仕様の一部であり、任意の JavaWeb プロジェクトで使用できます。

SpringBoot と SpringMVC の類似点と相違点を比較する SpringBoot と SpringMVC の類似点と相違点を比較する Dec 29, 2023 am 08:30 AM

SpringBoot と SpringMVC の類似点と相違点の分析 SpringBoot と SpringMVC は、Java 分野では非常に重要な開発フレームワークです。どちらも Spring フレームワークの一部ですが、使用方法と機能には明らかな違いがいくつかあります。この記事では、SpringBoot と SpringMVC を比較し、それらの類似点と相違点を分析します。まず、SpringBoot について学びましょう。スプリングボー

See all articles