10、對RESTful的支持

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

  • 2.作用

    • 1.對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.對http的方法規(guī)范
      不管是刪除、添加、更新,使用的url是一致的。如果要進(jìn)行刪除,需要設(shè)置http的方法為delete,同理添加也是類似。而后臺的Controller方法需要判斷http方法,如果是delete則執(zhí)行刪除,如果是add則執(zhí)行添加。
    • 3.對httpcontentType規(guī)范
      請求時指定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}"){×××}占位符,請求的URL可以是"/viewItems/1""/viewItems/2",通過在方法中使用@PathVariable獲取{×××}中的×××變量。

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

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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容