springmvc对rest的支持

springmvc对rest的支持

RESTful的理解

REST,即Representational State Transfer的缩写。我对这个词组的翻译是”表现层状态转化”。

REST的名称”表现层状态转化”中,省略了主语。”表现层”其实指的是”资源”(Resources)的”表现层”。所谓”资源”,就是网络上的一个实体,或者说是网络上的一个具体信息

rest方式url要求简洁,一个url对应互联网上的一个资源:
http://www.bsw.com/user/001 001用户资源 特点:将原来url请求参数放在url中传入服务。
。。。

“资源”是一种信息实体,它可以有多种外在表现形式。我们把”资源”具体呈现出来的形式,叫做它的”表现层”(Representation)。
一个资源可以使用html展示、xml展示、json展示,,这此展示方式都不同的表现形式

通过url输出json、xml等格式的数据。

就是HTTP协议里面,四个表示操作方式的动词:GET、POST、PUT、DELETE。它们分别对应四种基本操作:GET用来获取资源,POST用来新建资源(也可以用于更新资源),PUT用来更新资源,DELETE用来删除资源。

比如:
请求url:http://www.bsw.com/user/001
当请求的方法为get时,表示获取001的用户资源,服务端程序应该根据http的方法类型判断应该查询001用户
请求url:http://www.bsw.com/user/001
当请求的方法为post时,表示新建一个001的用户资源。

案例

第一步:编写controller

// 使用rest的请求路径
@RequestMapping("/itemViewRest/{id}")
@ResponseBody
public Items itemViewRest(@PathVariable("id") Integer id) {
    ItemsCustom items = itemService.findItemsById(id);
    return items;
}

@RequestMapping(value=”/ viewItems/{id}”):{×××}占位符,请求的URL可以是“/viewItems/1”或“/viewItems/2”,通过在方法中使用@PathVariable获取{×××}中的×××变量。
@PathVariable用于将请求URL中的模板变量映射到功能处理方法的参数上
如果RequestMapping中表示为”/viewItems/{id}”,id和形参名称一致,@PathVariable不用指定名称。
第二步:配置前端控制器支持rest

<!-- springmvc的前端控制器支持rest -->
<servlet>
    <servlet-name>springmvc-rest</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <!-- 加载springmvc的xml配置文件 注意:如果不加此配置,springmvc默认加载/WEB-INF/[DispatcherServlet 
        的Servlet 名字]-servlet.xml 即:/WEB-INF/springmvc-serlvet.xml -->
    <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>
    <!-- rest的路径为/ -->
    <url-pattern>/</url-pattern>
</servlet-mapping>

第三步:解决静态资源访问问题-此问题因为配置了支持rest的前端控制器所以必须配置,不然无法访问静态资源

<!-- 处理对静态资源的访问,因为实现支持rest并且路径为/,就必须处理对静态资源的访问,使这些资源不走前端控制器 -->
<mvc:resources location="/js/" mapping="/js/**"/>
<mvc:resources location="/css/" mapping="/css/**"/>
  • 最终测试结果:
    请求路径:
    这里写图片描述
    得到结果:
    这里写图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值