この記事では SpringMVC ビューと REST スタイルの詳細な分析を紹介します (コード付き)。必要な方は参考にしていただければ幸いです。
ビューリゾルバーとは何ですか?
springMVC がビューを処理するために使用する 2 つの最も重要なインターフェイスは、ViewResolver と View です。
ViewResolver の主な機能は、論理ビュー名を実際のビューに解決することです。SpringMVC では、View オブジェクトをクライアントに提示するために使用され、ViewResolver は論理ビュー名を実際のビューに変換するだけです。オブジェクトに解決される実際のビュー。
View インターフェイスの主な機能は、ビューを処理してクライアントに返すことです。
ビュー パーサーの実行プロセス:
リクエスト メソッドが実行された後、最終的に ModelAndView オブジェクトが返されます。 String 、 View、ModelMap およびその他の型を返す SpingMVC は、最終的にそれらを内部で ModelAndView オブジェクトにアセンブルします。このオブジェクトには、モデル オブジェクトの論理名とビューが含まれます。 StringMVC は、ビュー パーサーを使用して最終ビュー オブジェクトを取得します。最終ビューは、JSP またはその他のファイル形式のビューです。レンダリング プロセッサは、最終的にどの方法が採用されるかには関係なく、モデル データを生成する作業に重点を置き、常に MVC の完全な分離を実現します。
View:
ビューの役割は、モデル データをレンダリングし、モデル内のデータを何らかの形式でユーザーに提示することです。 View Model と特定の実装テクノロジの分離を実現するために、Sping は View インターフェイスを定義します。ビュー オブジェクトはビュー リゾルバによってインスタンス化され、ビューはステートレスであるため、スレッド セーフの問題はありません。
一般的に使用されるビュー実装クラス:
InternalResourceView: JSP リソースをビューにカプセル化し、デフォルトで springmvc によって使用されるビュー パーサーです。
JstlView: jstl パッケージ springmvc を JSP プロジェクトに導入すると、このパーサーが自動的に使用されます。
MapingJackJsonView: Jackson オープン ソース フレームワークの ObjectMapper を通じて、モデルを Json モードで出力します。
#AbstractExcelView: POI に基づいて Excel ドキュメントを構築する Excel ドキュメント ビューの抽象クラス#AbstractPdfVIew: iText に基づいて Pdf ドキュメントを構築する PDF ドキュメント ビューの抽象クラス
BeanNameViewResolver: 論理ビュー名を Bean に解決します。Bean の ID は論理ビュー名と同じです。
ビュー リゾルバーの役割は比較的単純で、論理ビューを特定のビュー オブジェクトに解析するだけです。すべてのビュー リゾルバーは ViewResolver インターフェイスを実装する必要があります。
JSP は最も一般的に使用されるビュー テクノロジであり、InternalResourceView をビュー パーサーとして使用できます
JSTL タグがプロジェクトに導入されている限り、springmvc はビュー InternalResourceView をそのサブクラスである JstlView に自動的に変換します。
各ビュー パーサーは Ordered インターフェイスを実装し、パーサーの優先順位を設定できる order 属性を開発します。順序が小さいほど、優先順位が高くなります。春 MVC は、解析が成功してビュー オブジェクトが返されるまで、ビュー パーサーの順序の優先順位に従って論理ビュー名を解析します。そうでない場合は、ServletException がスローされます。
カスタム ビュー:
@Component public class MyView implements View { @Override public String getContentType() { return "text/html"; } @Override public void render(Map<String, ?> model, HttpServletRequest request, HttpServletResponse response) throws Exception { response.getWriter().println("<h1 id="Spring-nbsp-MVC-nbsp-Custom-nbsp-view">Spring MVC Custom view</h1>"); } }
このカスタム ビューを View インターフェイスに実装し、インターフェイス内の 2 つのメソッドをオーバーライドする必要があります。次に、このクラスを Bean として宣言し、管理のために Spring に渡します。ここでは、beanName リゾルバーを設定します。
<!-- 配置BeanName解析器 --> <bean id="beanNameViewResolver" class="org.springframework.web.servlet.view.BeanNameViewResolver"> <property name="order" value="1"/> </bean>
次に、リクエストを書き込みます。このリクエストは、デフォルトでは、最初の文字が小文字でキャメルケースで表示されます。
@RequestMapping("myView") public String myView(){ System.out.println("myView load ..."); return "myView"; }
このようにして、カスタム ビューを完成させることができます。
# オフおよびリダイレクト: 戻り文字列に「
redirect :##」が含まれる場合#" または "forward:" を指定すると、SpringMvc が特別な処理を実行します。 #ビューに直接アクセスする必要がある場合は、次のように構成できます
#<!– 直接配置对应的视图访问路径 -->
<mvc:view-controller path="/hello" view-name="hello.jsp" />
<!-- 如果配置了mvc-controller会导致其它页面没法正常访问,还需要添加一个标签 -->
<mvc:annotation-driven />
REST 章
REST (Representational State Transfer): これは、(リソース) プレゼンテーション層の状態転送です。 リソース: ネットワーク上のエンティティ、またはネットワーク上の情報。これは、テキスト、曲、画像などです。各リソースには、特定の固有の URL を指定できます。このリソースに直接アクセスするだけです。 表現層: リソースが表示される形式。 状態転送: リクエストが発行されるたびに、クライアントとサーバー間の対話が行われます。 HTTP プロトコルはステートレス プロトコルです。つまり、すべての状態がサーバー側に保存されます。クライアントがサーバーを操作したい場合は、何らかの手段を使用してサーバーに状態変換を実行する必要があります。この変換はプレゼンテーション層に基づいているため、これがプレゼンテーション層の状態変換です。
在我们的SpringMVC之中支持HTTP四种请求状态,REST规定的HTTP协议中四种表示操作方式的动词
GET请求:获取资源
POST请求:新建资源
PUT:更新资源
DELETE:删除资源
我们需要在WEB.xml中配置实现PUT,DELETE请求方式,大家都知道在我们传统的HTML中只有GET,POST两种请求方式。
<!-- 配置HiddenHttpMethodFilter过滤器实现PUT,DELETE请求 --> <filter> <filter-name>HiddenHttpMethodFilter</filter-name> <filter-class> org.springframework.web.filter.HiddenHttpMethodFilter </filter-class> </filter> <filter-mapping> <filter-name>HiddenHttpMethodFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
GET请求
GET请求: <a href="rest/testRest/10">test RestGet请求</a><br><br> @RequestMapping(value="/testRest/{id}",method=RequestMethod.GET) public String testRestGet(@PathVariable Integer id){ System.out.println("GET请求,获取id为:" + id + "的对象!"); return SUCCESS; }
Post请求
POST请求: <form action="rest/testRest" method="post"> <input type="submit" value="post请求" /> </form> @RequestMapping(value="/testRest",method=RequestMethod.POST) public String testRestPost(){ System.out.println("POST请求,添加新的对象!"); return SUCCESS; }
PUT和DELETE请求想要使用必须添加上面的过滤器,并且在Post请求中加上隐藏域name="_method",value="PUT/DELETE"。
PUT,请求其实是由POST请求转换而来的。
PUT请求: <form action="rest/testRest" method="post"> <!-- 添加隐藏域,名称为_method,value为请求方式 --> <input type="hidden" name="_method" value="PUT" /> <input type="submit" value="put请求" /> </form> @RequestMapping(value="/testRest",method=RequestMethod.PUT) public String testRestPut(){ System.out.println("PUT请求,更新操作!"); return SUCCESS; }
DELETE请求
DELETE请求: <form action="rest/testRest/10000" method="post"> <!-- 添加隐藏域,名称为_method,value为请求方式 --> <input type="hidden" name="_method" value="DELETE" /> <input type="submit" value="delete请求" /> </form> @RequestMapping(value="/testRest/{id}",method=RequestMethod.DELETE) public String testRestDelete(@PathVariable Integer id){ System.out.println("DELETE请求,删除操作!" + id); return SUCCESS; }
重复一次第一章的内容在我们springmvc拦截所有请求会导致css,js,图片等不能引入我们可以这样解决:
<!--将非mapping配置下的请求交给默认的Servlet来处理--> <mvc:default-servlet-handler/> <!--如果添加了默认servlet,mvc请求将无效,需要添加annotation-driven--> <mvc:annotation-driven></mvc:annotation-driven>
以上がSpringMVCビューとRESTスタイルの詳細な分析(コード付き)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

SpringBoot和SpringMVC都是Java开发中常用的框架,但它们之间有一些明显的差异。本文将探究这两个框架的特点和用途,并对它们的差异进行比较。首先,我们来了解一下SpringBoot。SpringBoot是由Pivotal团队开发的,它旨在简化基于Spring框架的应用程序的创建和部署。它提供了一种快速、轻量级的方式来构建独立的、可执行

SpringBoot与SpringMVC的不同之处在哪里?SpringBoot和SpringMVC是两个非常流行的Java开发框架,用于构建Web应用程序。尽管它们经常分别被使用,但它们之间的不同之处也是很明显的。首先,SpringBoot可以被看作是一个Spring框架的扩展或者增强版。它旨在简化Spring应用程序的初始化和配置过程,以帮助开发人

SpringBoot和SpringMVC是Java开发中常用的两个框架,它们都是由Spring框架所提供的,但在功能和使用方式上有着一些区别。本文将分别介绍SpringBoot和SpringMVC的特点和区别。一、SpringBoot的特点:简化配置:SpringBoot通过约定优于配置的原则,大大简化了项目的配置过程。它可以自动配置项目所需要的参数,开发人

拦截器(interceptor)的作用SpringMVC的拦截器类似于Servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理。将拦截器按一定的顺序联结成一条链,这条链称为拦截器链(InterceptorChain)。在访问被拦截的方法或字段时,拦截器链中的拦截器就会按其之前定义的顺序被调用。拦截器也是AOP思想的具体实现。拦截器和过滤器区别区别过滤器(Filter)拦截器(Intercepter)使用范围是servlet规范中的一部分,任何JavaWeb工程都可以使用是Spri

springboot和springmvc区别是:1、含义不同;2、配置不同;3、依赖项不同;4、开发时间不同;5、生产力不同;6、实现JAR打包功能的方式不同;7、是否提供批处理功能;8、作用不同;9、社区和文档支持不同;10、是否需要部署描述符。

随着互联网的发展,Web服务越来越普遍。JavaAPI作为一种应用编程接口,也在不断地推出新的版本来适应不同的应用场景。而SpringMVC作为一种流行的开源框架,能够帮助我们轻松地构建Web应用程序。本文将详细讲解在JavaAPI开发中,如何使用SpringMVC进行Web服务处理,包括配置SpringMVC、编写控制器、使用

本文主要从源码的阅读和调试的角度,整体的讲解了SpringMVC处理请求的整个流程,并且讲解了参数的绑定以及返回值的处理。相信大家看完后,结合自己的调试信息,会对SpringMVC的请求处理过程有一个更深入的理解。

spring和springmvc的区别:1、定位和功能;2、核心功能;3、应用领域;4、扩展性。详细介绍:1、定位和功能,Spring是一个综合性的应用程序开发框架,提供了依赖注入、面向切面编程、事务管理等功能,旨在简化企业级应用程序的开发,而Spring MVC是Spring框架中的一个模块,用于Web应用程序的开发,实现了MVC模式;2、核心功能等等。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン
