SpringMVCのRESTfullへのサポートについて
本論文で研究したのは主にSpringMVCのRESTfullに対するサポートに関する内容であり、具体的には以下の通りである。
RESTfulアーキテクチャとは、現在流行しているインターネットソフトウェアアーキテクチャのことである。それは構造がはっきりしていて、標準に合っています。分かりやすくて、広がりやすいです。RESTfulアーキテクチャはurlを規範化し、RESTfulフォーマットを書くurlはどのようなものですか?私たちが普通に要請したurlはこのようなものです。
http://...../xxx.action?id=001&type=aaa
RESTのurlスタイルはどうですか?一般的には、
http://..../xxx/001
だからRESTは明らかな特徴があります。urlをシンプルにして、パラメータをurlを通してサーバーに伝えます。springmvcもこのRESTスタイルのurlをサポートしています。私達はcontrolerを定義してテストしてみます。
しかし、これはまだいけません。フロントエンドコントローラにRESTを配置する必要があります。
しかし、上の配置を使うと、すべてのurlをブロックします。静的な資源に対してもブロックしますので、Displatch Servletも静的な資源を解析します。しかし、こうするとエラーが発生しますので、静的な資源を解析しないように設定します。例えば:
締め括りをつける
以上、本文ではSpringMVCのRESTfullに対するサポートの全部の内容についてお話ししました。興味のある方は引き続き当駅の他のテーマを参照してください。友達のサポートに感謝します。
RESTfulアーキテクチャとは、現在流行しているインターネットソフトウェアアーキテクチャのことである。それは構造がはっきりしていて、標準に合っています。分かりやすくて、広がりやすいです。RESTfulアーキテクチャはurlを規範化し、RESTfulフォーマットを書くurlはどのようなものですか?私たちが普通に要請したurlはこのようなものです。
http://...../xxx.action?id=001&type=aaa
RESTのurlスタイルはどうですか?一般的には、
http://..../xxx/001
だからRESTは明らかな特徴があります。urlをシンプルにして、パラメータをurlを通してサーバーに伝えます。springmvcもこのRESTスタイルのurlをサポートしています。私達はcontrolerを定義してテストしてみます。
// , json, RESTful
@RequestMapping("/itemsView/{id}")
public @ResponseBody ItemsCustom itemsView(@PathVariable("id") Integer id) throws Exception {
ItemsCustom itemsCustom = itemsService.findItemsById(id);
return itemsCustom;
}
@ResponseBody
はitemsCustom
をjsonに変換するための注釈であり、@PathVariable
はRESTに関する注釈であり、@RequestMapping(value=”/ itemsView/{id}”)
の「id」は一つのプレースホルダを表しています。この中から伝わった値は@PathVariable
によってマークされたモダリティに伝えられます。モダリティとプレースホルダの変数が同じなら、再注釈で指定しなくてもいいです。このプレースホルダの変数(すなわちid)を指定します。このようにすれば、パラメータはurlを通して形参に伝わることができます。しかし、これはまだいけません。フロントエンドコントローラにRESTを配置する必要があります。
<!-- springmvc DispatcherServlet,REST -->
<servlet>
<servlet-name>springmvc_rest</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/springmvc.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>springmvc_rest</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
ブロックはすべてのurl(/)であり、この構成は前に配置されたフロントエンドコントローラと競合しないで共存できます。このように設定すれば、ブラウザに入力できます。http://localhost:8080/SpringMVC_Study/items View/1は、ブラウザに戻ったデータをテストします。jsonのデータが戻ります。しかし、上の配置を使うと、すべてのurlをブロックします。静的な資源に対してもブロックしますので、Displatch Servletも静的な資源を解析します。しかし、こうするとエラーが発生しますので、静的な資源を解析しないように設定します。例えば:
<!-- , js,css,img... -->
<mvc:resources location="/js/" mapping="/js/**"></mvc:resources>
<mvc:resources location="/img/" mapping="/img/**"></mvc:resources>
他の静的資源があれば、静的資源を解析しないように設定し、静的資源を訪問する時に直接アクセスすればいいです。締め括りをつける
以上、本文ではSpringMVCのRESTfullに対するサポートの全部の内容についてお話ししました。興味のある方は引き続き当駅の他のテーマを参照してください。友達のサポートに感謝します。