10、對(duì)RESTful的支持

  • 1.什么是RESTful
    其實(shí)是一種開發(fā)的理念,是對(duì)http的很好的詮釋。更詳細(xì)的說明請(qǐng)參考http://www.ruanyifeng.com/blog/2011/09/restful.html

  • 2.作用

    • 1.對(duì)url進(jìn)行規(guī)范,有RESTful風(fēng)格的url。
      RESTfulurlhttp://..../queryItems.action?id=1
      RESTful風(fēng)格的urlhttp://..../ queryItems /1
      特點(diǎn):RESTful風(fēng)格的url簡潔,將參數(shù)通過url傳遞到服務(wù)端。
    • 2.對(duì)http的方法規(guī)范
      不管是刪除、添加、更新,使用的url是一致的。如果要進(jìn)行刪除,需要設(shè)置http的方法為delete,同理添加也是類似。而后臺(tái)的Controller方法需要判斷http方法,如果是delete則執(zhí)行刪除,如果是add則執(zhí)行添加。
    • 3.對(duì)httpcontentType規(guī)范
      請(qǐng)求時(shí)指定contentType,要json數(shù)據(jù),設(shè)置成json格式的type
      說明:實(shí)際開發(fā)中一般只是用到第一條和第三條規(guī)范。
  • 3.例子(工程springmvc-mybatis09
    需求:查詢商品信息,返回json數(shù)據(jù)。

  • 4.Controller方法:
    定義方法,進(jìn)行url映射使用RESTful風(fēng)格的url,將查詢商品信息id傳入到Controller方法中。
    ItemsController.java

@RequestMapping("/itemsView/{id}")
public @ResponseBody ItemsCustom itemsView(@PathVariable("id") Integer id)throws Exception{
    
    //調(diào)用service查詢商品信息
    ItemsCustom itemsCustom = itemsService.findItemsById(id);
    
    return itemsCustom;
}

說明:

  • 1.@RequestMapping(value="/ viewItems/{id}"){×××}占位符,請(qǐng)求的URL可以是"/viewItems/1""/viewItems/2",通過在方法中使用@PathVariable獲取{×××}中的×××變量。

  • 2.@PathVariable用于將請(qǐng)求URL中的模板變量映射到功能處理方法的參數(shù)上。

  • 3.如果RequestMapping中表示為"/viewItems/{id}"id和形參名稱一致,@PathVariable不用指定名稱。

  • 5.在web.xml中重新配置前端控制器

<!-- springMVC前端控制器 RESTful的前端控制器 -->
<servlet>
    <servlet-name>springmvc_restful</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_restful</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

說明:這里配置的前端控制器可以和之前配置的前端控制器共存。最后使用地址http://localhost:8080/springmvc-mybatis09/items/itemsView/1訪問測試。

  • 6.對(duì)靜態(tài)資源的訪問
    當(dāng)我們使用地址http://localhost:8080/springmvc-mybatis09/ js/jquery-1.4.4.min.js
    訪問工程中的靜態(tài)資源時(shí)還是由前端控制器解析的,這樣很顯然是找不到Handler,所以訪問不到靜態(tài)資源。出現(xiàn)404錯(cuò)誤。此時(shí)需要在springmvc.xml中添加對(duì)靜態(tài)資源訪問的配置:
<!-- 靜態(tài)資源(js、css、img)的解析 -->
<mvc:resources location="/js/" mapping="/js/**"></mvc:resources>

這樣就能訪問到上面的靜態(tài)資源了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,837評(píng)論 18 139
  • 1.Spring web mvc介紹 Spring web mvc和Struts2都屬于表現(xiàn)層的框架,它是Spri...
    七弦桐語閱讀 11,541評(píng)論 2 38
  • Spring mvc 框架 DispatcherServlet前端控制器 ---- 整個(gè)流程控制的中心,由它調(diào)用其...
    蕊er閱讀 719評(píng)論 0 0
  • 一.RESTful簡單介紹 RESTful架構(gòu),就是目前最流行的一種互聯(lián)網(wǎng)軟件架構(gòu)。它結(jié)構(gòu)清晰、符合標(biāo)準(zhǔn)、易于理解...
    Mr_歡先生閱讀 393評(píng)論 0 9
  • 一步一步的搭建JAVA WEB項(xiàng)目,采用Maven構(gòu)建,基于MYBatis+Spring+Spring MVC+B...
    葉子的翅膀閱讀 12,700評(píng)論 5 25