Springmvc对restful的支持

Restful架构,就是目前 流行的一种互联网架构。他结构清晰,符合标准,已于理解,扩展方便,所以正得到越来越多网站的采用。Restful架构对url进行规范,写restful格式的url是怎么样子呢》我们一般请求的url是类似 这样子的:

http://...../xxx.action?id=001&type=aaa 

而rest的url的风格是什么样子的呢?一般他类似于:http://..../xxx/001 

所以REST有个很明显的特点:使url变得简洁 ,将参数通过url传到服务器,springmvc也是支持这种REST风格的url的,我们定义一个controller来测试一下:

//查询商品信息,输出json。使用RESTful。

@RequestMapping("/itemView/{id}")

public @ResponseBody ItemCustom itemView(@PathVariable(“id”) Integer id) throwException{

ItemsCustom itemsCustom = itemsService.findItemsById(id);
    return itemsCustom;

}

@ResponseBody是用来将itemsCustom转成json注解的,而@PathVariable注解则是跟REST有关了。

@RequestMapping(value="/itemView/{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/SpringMVV_studyView/1 来测试返回到浏览器的数据了。乐意看到返回遗传json数据。

但是有个问题,使用上面的配置后悔拦截所有的url.那么对静态资源也会拦截。所以DispatcherServlet也会解析静态资源,但是这样的话就会出错,所以我们要设置一下不让解析静态资源springmvc.xml.如;

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

如果还有其他静态资源的话,也要设置一下,这样就不会去解析静态资源呢了,访问静态资源的时候就可以直接访问。

 

这里是我转载的 https://www.cnblogs.com/shanheyongmu/p/5882125.html

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值