springmvc RESTful

一、对url进行规范

  非REST的url:http://...../Items.action?id=001&type=T01

  RESTful格式的url:http://..../items/001/T01

二、对http的contentType规范

  请求时要json数据(contentType:'application/json;charset=utf-8')

三、RESTful应用

  ①、controller方法

    //如果占位符中的名称和形参名一致,在@PathVariable可以不指定名称
    @RequestMapping("/itemsView/{id}")
    public @ResponseBody ItemsCustom itemsView(@PathVariable("id") Integer id)throws Exception{
        
        //调用service查询商品信息
        ItemsCustom itemsCustom = itemsService.findItemsById(id);
        
        return itemsCustom;
        
    }

    @RequestMapping(value="/ itemsView/{id}"):{×××}占位符,请求的URL可以是“/viewItems/1”或“/viewItems/2”,通过在方法中使用@PathVariable获取{×××}中的×××变量的值。

    @PathVariable用于将请求URL中的变量映射到方法的参数上。

      RequestMapping中表示为"/ itemsView /{id}",id和形参名称一致,@PathVariable可以不用指定名称。

  ②、前端控制器配置

    <!-- 2、springmvc前端控制器,rest配置 
        2.1、配置DispatcherServlet前端控制器
        2.1、配置servlet映射(访问方式)
    -->
    <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:springmvc.xml</param-value>
        </init-param>
    </servlet>
    <servlet-mapping>
        <servlet-name>springmvc_rest</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
<url-pattern>/</url-pattern>的配置前端控制器会解析静态资源(前端控制器会去处理器映射器中查找对应的Handler,是一定找不到的)

  ③、单独解析静态资源

    <!-- 静态资源解析
    包括 :js、css、img、..
     -->
     <mvc:resources location="/js/" mapping="/js/**"/>
     <mvc:resources location="/img/" mapping="/img/**"/>

使用RESTful要特别注意静态资源的解析

原文地址:https://www.cnblogs.com/WarBlog/p/15034586.html