SpringMVC学習シリーズ(3) URLリクエストからアクションまでのマッピングルール
シリーズ (SpringMVC学習シリーズ(SpringMVC学習シリーズ(3) URLリクエストからアクションまでのマッピングルール) URLリクエストからアクションまでのマッピングルール) では、単純な get リクエストを示し、単純な helloworld ページを返しました。この記事では、アクションの URL マッピング ルールを構成する方法を学びます。
シリーズ (SpringMVC学習シリーズ(SpringMVC学習シリーズ(3) URLリクエストからアクションまでのマッピングルール) URLリクエストからアクションまでのマッピングルール) では、HelloWorldController に @RequestMapping(value = "/helloworld") を設定しました。これは、コントローラーへのすべてのアクション リクエストが "/helloworld" で始まる必要があることを意味します。
SpringMVC学習シリーズ(SpringMVC学習シリーズ(3) URLリクエストからアクションまでのマッピングルール) URLリクエストからアクションまでのマッピングルール.URLパスマッピング
SpringMVC学習シリーズ(SpringMVC学習シリーズ(3) URLリクエストからアクションまでのマッピングルール) URLリクエストからアクションまでのマッピングルール.SpringMVC学習シリーズ(SpringMVC学習シリーズ(3) URLリクエストからアクションまでのマッピングルール) URLリクエストからアクションまでのマッピングルール. SpringMVC学習シリーズ(SpringMVC学習シリーズ(3) URLリクエストからアクションまでのマッピングルール) URLリクエストからアクションまでのマッピングルールつのアクションに対して複数のURLマッピングを設定する:
前回の記事のHelloWorldControllerのindex()アクションメソッドの@RequestMappingを@RequestMapping(value={"/index ")に変更しました。 , "/hello"}、method = {RequestMethod.GET})、これは、/index と /hello の SpringMVC学習シリーズ(SpringMVC学習シリーズ(3) URLリクエストからアクションまでのマッピングルール) URLリクエストからアクションまでのマッピングルール つのマッピングがこのアクションに対して構成されていることを意味します。次のようにテストを実行します:
/helloworld/hello リクエストも正常に一致していることがわかります。
SpringMVC学習シリーズ(SpringMVC学習シリーズ(3) URLリクエストからアクションまでのマッピングルール) URLリクエストからアクションまでのマッピングルール.SpringMVC学習シリーズ(SpringMVC学習シリーズ(3) URLリクエストからアクションまでのマッピングルール) URLリクエストからアクションまでのマッピングルール. URL リクエストパラメータマッピング:
これは、クエリを実行するときによく使用され、たとえば、ID または番号に基づいて特定のレコードを取得します。
HelloWorldController に getDetail アクションを追加します。コードは次のとおりです:
@RequestMapping(value="/detail/{id}", method = {RequestMethod.GET})public ModelAndView getDetail(@PathVariable(value="id") Integer id){ ModelAndView modelAndView = new ModelAndView(); modelAndView.addObject("id", id); modelAndView.setViewName("detail"); return modelAndView; }
where value="/detail/{id}"、その中の {id} はプレースホルダーであり、リクエストをマッピングできることを示します/detail/xxxx URL : /detail/SpringMVC学習シリーズ(SpringMVC学習シリーズ(3) URLリクエストからアクションまでのマッピングルール) URLリクエストからアクションまでのマッピングルールSpringMVC学習シリーズ(SpringMVC学習シリーズ(3) URLリクエストからアクションまでのマッピングルール) URLリクエストからアクションまでのマッピングルールSpringMVC学習シリーズ(3) URLリクエストからアクションまでのマッピングルール など。
Integer id メソッドのパラメータ @PathVariable(value="id") は、URL 内のプレースホルダーに対応する変数を @PathVariable(value="id") の value の値にマッピングするために使用されます。 /{id} の中括弧内の値は、プレースホルダーと同じである必要があります。
取得したid値を表示するには、viewsにdetail.jspビューを追加します。ビューの内容は次のとおりです:
nbsp;html PUBLIC "-//WSpringMVC学習シリーズ(3) URLリクエストからアクションまでのマッピングルールC//DTD HTML 4.0SpringMVC学習シリーズ(SpringMVC学習シリーズ(3) URLリクエストからアクションまでのマッピングルール) URLリクエストからアクションまでのマッピングルール Transitional//EN" "http://www.wSpringMVC学習シリーズ(3) URLリクエストからアクションまでのマッピングルール.org/TR/html4/loose.dtd"><meta url><title>Insert title here</title> ${id}
テストを実行し、URLアドレスをリクエストしますhttp://localhost:SpringMVC学習シリーズ(3) URLリクエストからアクションまでのマッピングルール0SpringMVC学習シリーズ(3) URLリクエストからアクションまでのマッピングルール0/SpringMVCLesson/helloworld/detail/SpringMVC学習シリーズ(SpringMVC学習シリーズ(3) URLリクエストからアクションまでのマッピングルール) URLリクエストからアクションまでのマッピングルールSpringMVC学習シリーズ(SpringMVC学習シリーズ(3) URLリクエストからアクションまでのマッピングルール) URLリクエストからアクションまでのマッピングルールSpringMVC学習シリーズ(3) URLリクエストからアクションまでのマッピングルール、結果は次のとおりです:
リクエストしたIDが正しく表示されていることがわかります。
SpringMVC学習シリーズ(SpringMVC学習シリーズ(3) URLリクエストからアクションまでのマッピングルール) URLリクエストからアクションまでのマッピングルール.SpringMVC学習シリーズ(3) URLリクエストからアクションまでのマッピングルール. URL ワイルドカード マッピング:
ワイルドカード文字を使用して URL マッピングを設定することもできます。このうち、「?」は SpringMVC学習シリーズ(SpringMVC学習シリーズ(3) URLリクエストからアクションまでのマッピングルール) URLリクエストからアクションまでのマッピングルール 文字、「*」は複数の文字の一致、「**」は 0 個以上のパスの一致を意味します。
例:
"/helloworld/index?" は "/helloworld/indexA" および "/helloworld/indexB" には一致しますが、"/helloworld/index" や "/helloworld/indexAA" には一致しません。 /helloworld/index*" は、"/helloworld/index"、"/helloworld/indexA"、"/helloworld/indexAA" には一致しますが、"/helloworld/index/A" には一致しません。
"/helloworld/index/* " 「/helloworld/index/」、「/helloworld/index/A」、「/helloworld/index/AA」、「/helloworld/index/AB」には一致しますが、「/helloworld/index」、「/helloworld /index」には一致しません/A/B";
"/helloworld/index/**" は、"/helloworld/index/" の下にある複数のサブパスと一致します (例: "/helloworld/index/A/B/C/D ";
今「/helloworld/index」と「/helloworld/*」があるとして、リクエストアドレスが「/helloworld/index」の場合はどうやってマッチングするのでしょうか? Spring MVC は最長一致第一の原則 (つまり、マッピング設定内で最も一致するもの) に基づいて一致するため、「/helloworld/index」と一致します。 テストを実行しましょう:
urlTest アクションを HelloWorldController に追加します。内容は次のとおりです:
@RequestMapping(value="/*", method = {RequestMethod.GET})public ModelAndView urlTest(){ ModelAndView modelAndView = new ModelAndView(); modelAndView.setViewName("urltest"); return modelAndView; }
views フォルダーに新しいビュー urltest.jsp を追加します。index.jsp と区別するために、urltest.jsp の内容は次のとおりです。 http://localhost:SpringMVC学習シリーズ(3) URLリクエストからアクションまでのマッピングルール0SpringMVC学習シリーズ(3) URLリクエストからアクションまでのマッピングルール0/SpringMVCLesson /helloworld/index をリクエストして結果を表示します:
Index に対応するアクションがマッピングされていることがわかります。
結果を表示するには http://localhost:SpringMVC学習シリーズ(3) URLリクエストからアクションまでのマッピングルール0SpringMVC学習シリーズ(3) URLリクエストからアクションまでのマッピングルール0/SpringMVCLesson/helloworld/AAA をリクエストします:
urlTest に対応するアクションがマッピングされていることがわかります。
SpringMVC学習シリーズ(SpringMVC学習シリーズ(3) URLリクエストからアクションまでのマッピングルール) URLリクエストからアクションまでのマッピングルール.4.URL 正規表現マッピング:
Spring MVC还支持正则表达式方式的映射配置,我们通过一个测试来展示:
在HelloWorldController添加一个regUrlTest的action,内容如下:
@RequestMapping(value="/reg/{name:\\w+}-{age:\\d+}", method = {RequestMethod.GET})public ModelAndView regUrlTest(@PathVariable(value="name") String name, @PathVariable(value="age") Integer age){ ModelAndView modelAndView = new ModelAndView(); modelAndView.addObject("name", name); modelAndView.addObject("age", age); modelAndView.setViewName("regurltest"); return modelAndView; }
在views文件夹中新加一个视图regurltest.jsp内容如下:
nbsp;html PUBLIC "-//WSpringMVC学習シリーズ(3) URLリクエストからアクションまでのマッピングルールC//DTD HTML 4.0SpringMVC学習シリーズ(SpringMVC学習シリーズ(3) URLリクエストからアクションまでのマッピングルール) URLリクエストからアクションまでのマッピングルール Transitional//EN" "http://www.wSpringMVC学習シリーズ(3) URLリクエストからアクションまでのマッピングルール.org/TR/html4/loose.dtd"> <meta url> <title>Insert title here</title> ${name}-${age}
请求http://www.php.cn/:SpringMVC学習シリーズ(3) URLリクエストからアクションまでのマッピングルール0SpringMVC学習シリーズ(3) URLリクエストからアクションまでのマッピングルール0/SpringMVCLesson/helloworld/reg/Hanmeimei-SpringMVC学習シリーズ(SpringMVC学習シリーズ(3) URLリクエストからアクションまでのマッピングルール) URLリクエストからアクションまでのマッピングルールSpringMVC学習シリーズ(3) URLリクエストからアクションまでのマッピングルール查看结果:
请求http://www.php.cn/:SpringMVC学習シリーズ(3) URLリクエストからアクションまでのマッピングルール0SpringMVC学習シリーズ(3) URLリクエストからアクションまでのマッピングルール0/SpringMVCLesson/helloworld/reg/Hanmeimei-Lilei查看结果(会发现找不到对应的action返回404):
SpringMVC学習シリーズ(SpringMVC学習シリーズ(3) URLリクエストからアクションまでのマッピングルール) URLリクエストからアクションまでのマッピングルール.限制action所接受的请求方式(get或post):
之前我们在HelloWorldController的index() action方法上配置的为@RequestMapping(value="/*", method = {RequestMethod.GET})我们把它改为@RequestMapping(value="/*", method = {RequestMethod.POST})再次请求http://www.php.cn/:SpringMVC学習シリーズ(3) URLリクエストからアクションまでのマッピングルール0SpringMVC学習シリーズ(3) URLリクエストからアクションまでのマッピングルール0/SpringMVCLesson/helloworld/index试一下:
这里可以看到结果映射到了urlTest这个action,这是因为我们在urlTest上配置的为@RequestMapping(value="/*", method = {RequestMethod.GET}),当index这个action映射不在符合时便映射到了urlTest。
我们也可以这样配置@RequestMapping(value="/*", method = {RequestMethod.GET, RequestMethod.POST})表示该action可以接受get或post请求,不过更简单的是不对method做配置则默认支持所有请求方式。
SpringMVC学習シリーズ(3) URLリクエストからアクションまでのマッピングルール.限制action所接受请求的参数:
我们可以为某个action指定映射的请求中必须包含某参数,或必须不包含某参数,或者某参数必须等于某个值,或者某参数必须不等于某个值这些限制。
SpringMVC学習シリーズ(3) URLリクエストからアクションまでのマッピングルール.SpringMVC学習シリーズ(SpringMVC学習シリーズ(3) URLリクエストからアクションまでのマッピングルール) URLリクエストからアクションまでのマッピングルール.指定映射请求必须包含某参数:
在HelloWorldController添加一个paramsTest的action,内容如下:
@RequestMapping(value="/paramstest", params="example", method = {RequestMethod.GET})public ModelAndView paramsTest(){ ModelAndView modelAndView = new ModelAndView(); modelAndView.setViewName("paramstest"); return modelAndView; }
在views文件夹中新加一个视图paramstest.jsp内容如下:
nbsp;html PUBLIC "-//WSpringMVC学習シリーズ(3) URLリクエストからアクションまでのマッピングルールC//DTD HTML 4.0SpringMVC学習シリーズ(SpringMVC学習シリーズ(3) URLリクエストからアクションまでのマッピングルール) URLリクエストからアクションまでのマッピングルール Transitional//EN" "http://www.wSpringMVC学習シリーズ(3) URLリクエストからアクションまでのマッピングルール.org/TR/html4/loose.dtd"><meta url><title>Insert title here</title> paramstest!
请求http://www.php.cn/:SpringMVC学習シリーズ(3) URLリクエストからアクションまでのマッピングルール0SpringMVC学習シリーズ(3) URLリクエストからアクションまでのマッピングルール0/SpringMVCLesson/helloworld/paramstest查看结果:
这里可以看到没有找到paramsTest这个action结果还是映射到了urlTest这个action。
请求http://www.php.cn/:SpringMVC学習シリーズ(3) URLリクエストからアクションまでのマッピングルール0SpringMVC学習シリーズ(3) URLリクエストからアクションまでのマッピングルール0/SpringMVCLesson/helloworld/paramstest?example查看结果:
这次可以看到请求映射到了paramsTest这个action。
SpringMVC学習シリーズ(3) URLリクエストからアクションまでのマッピングルール.SpringMVC学習シリーズ(SpringMVC学習シリーズ(3) URLリクエストからアクションまでのマッピングルール) URLリクエストからアクションまでのマッピングルール.指定映射请求必须不包含某参数:
把刚才添加的paramsTest的@RequestMapping(value="/paramstest", params="example", method = {RequestMethod.GET}) 改为@RequestMapping(value="/paramstest", params="!example", method = {RequestMethod.GET})
重新请求http://www.php.cn/:SpringMVC学習シリーズ(3) URLリクエストからアクションまでのマッピングルール0SpringMVC学習シリーズ(3) URLリクエストからアクションまでのマッピングルール0/SpringMVCLesson/helloworld/paramstest?example查看结果:
可以看到又没有找到paramsTest这个action而映射到了urlTest这个action。
SpringMVC学習シリーズ(3) URLリクエストからアクションまでのマッピングルール.SpringMVC学習シリーズ(3) URLリクエストからアクションまでのマッピングルール.指定映射请求中或者某参数必须等于某个值:
把刚才添加的paramsTest的@RequestMapping(value="/paramstest", params="example", method = {RequestMethod.GET}) 改为@RequestMapping(value="/paramstest", params="example=AAA", method = {RequestMethod.GET})
http://www.php.cn/:SpringMVC学習シリーズ(3) URLリクエストからアクションまでのマッピングルール0SpringMVC学習シリーズ(3) URLリクエストからアクションまでのマッピングルール0/SpringMVCLesson/helloworld/paramstest?example=BBB に結果を表示するようリクエストします:
paramsTest アクションが見つからないが、urlTest にマップされていることがわかります。アクション。
Request http://localhost:SpringMVC学習シリーズ(3) URLリクエストからアクションまでのマッピングルール0SpringMVC学習シリーズ(3) URLリクエストからアクションまでのマッピングルール0/SpringMVCLesson/helloworld/paramstest?example=BBB 結果を表示します:
今回は、リクエストが paramsTest アクションにマップされていることがわかります。
SpringMVC学習シリーズ(3) URLリクエストからアクションまでのマッピングルール.4. マッピング リクエストのパラメータが特定の値と等しくてはならないことを指定します: @RequestMapping(value="/paramstest", params="example", method =
{RequestMethod.GET) を変更します。 }) @RequestMapping(value="/paramstest", params="example!=AAA", method ={RequestMethod.GET}) に変更されました Request http://localhost:SpringMVC学習シリーズ(3) URLリクエストからアクションまでのマッピングルール0SpringMVC学習シリーズ(3) URLリクエストからアクションまでのマッピングルール0/SpringMVCLesson/helloworld/ paramstest ?example=AAA 結果を表示します:
リクエストが paramsTest アクションにマッピングされていることがわかります。
Request http://localhost:SpringMVC学習シリーズ(3) URLリクエストからアクションまでのマッピングルール0SpringMVC学習シリーズ(3) URLリクエストからアクションまでのマッピングルール0/SpringMVCLesson/helloworld/paramstest?example=AAA 結果を表示します:
paramsTest アクションが見つかりませんが、urlTest アクションにマップされていることがわかります。
4. アクションによって受け入れられるリクエスト ヘッダー パラメーターを制限する:
アクションによって受け入れられるリクエスト パラメーターを制限するのと同じように、アクションのマップされたリクエスト ヘッダーに特定のパラメーターを含める必要があるかどうかを指定することもできます。特定のパラメータが含まれているか、パラメータが特定の値と等しくなければならない、またはパラメータが特定の値と等しくなくてはなりません。
4.SpringMVC学習シリーズ(SpringMVC学習シリーズ(3) URLリクエストからアクションまでのマッピングルール) URLリクエストからアクションまでのマッピングルール. マッピング リクエスト ヘッダーに特定のパラメーターを含める必要があることを指定します:
@RequestMapping(value="/headerTest", headers = "example")。リクエストパラメータを制限するのと同じです。テストには上記の例を参照してください。
4.SpringMVC学習シリーズ(SpringMVC学習シリーズ(3) URLリクエストからアクションまでのマッピングルール) URLリクエストからアクションまでのマッピングルール. 指定されたマッピング リクエスト ヘッダーには、特定のパラメータ
@RequestMapping(value="/headerTest", headers = "!example") が含まれていてはなりません。リクエストパラメータを制限するのと同じです。テストには上記の例を参照してください。 4.SpringMVC学習シリーズ(3) URLリクエストからアクションまでのマッピングルール. マッピングリクエストヘッダーの特定のパラメータが特定の値に等しい必要があることを指定します:
@RequestMapping(value="/headerTest", headers = "Accept=text/html")。リクエストパラメータを制限するのと同じです。テストには上記の例を参照してください。
4.4. マッピング リクエスト ヘッダー内の特定のパラメーターが特定の値と等しくないことを指定します:
@RequestMapping(value="/headerTest", headers = "Accept!=text/html")。リクエストパラメータを制限するのと同じです。テストには上記の例を参照してください。
注: headers={"exampleSpringMVC学習シリーズ(SpringMVC学習シリーズ(3) URLリクエストからアクションまでのマッピングルール) URLリクエストからアクションまでのマッピングルール", "exampleSpringMVC学習シリーズ(SpringMVC学習シリーズ(3) URLリクエストからアクションまでのマッピングルール) URLリクエストからアクションまでのマッピングルール"} など、ヘッダーに複数のパラメーターを指定すると、and 関係が表されます。つまり、SpringMVC学習シリーズ(SpringMVC学習シリーズ(3) URLリクエストからアクションまでのマッピングルール) URLリクエストからアクションまでのマッピングルール つのパラメーター制限を同時に満たす必要があります。
上記は、SpringMVC 学習シリーズ (SpringMVC学習シリーズ(3) URLリクエストからアクションまでのマッピングルール) の URL リクエストからアクションへのマッピング ルールの内容です。その他の関連コンテンツについては、PHP 中国語 Web サイト (www.php.ん)!

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









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

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

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

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

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

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

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

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