微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

springMVC实现REST开发详解补充Json解析问题以及静态文件404错误解决办法

一、什么是REST?

符合REST约束风格和原则的应用程序或者设计就是REST
例如:
/blog/1   HTTP GET    =>查询id=1的blog
/blog/1   HTTP DELETE =>删除id=1的blog
/blog/1   HTTP PUT    =>更新blog
/blog/add HTTP POST  =>新增blog

二、SpringMVC对REST应用提供了以下支持

1、利用@RequestMapping指定要处理请求的URI模板和HTTP请求的动作类型。

1.1、@RequestMapping应用

@RequestMapping可以定义在Controller类前和处理方法前,主要用于指定Controller的方法处理那些请求


1.2、在REST应用中,@RequestMapping可以采用以下使用格式:

@H_404_25@(1)@RequestMapping(value="/emp/{id}",method=RequestMethod.GET)@H_404_25@@H_404_25@(2)@RequestMapping(value="/emp/{id}",method=RequestMethod.DELETE)@H_404_25@(3)@RequestMapping(value="/emp/{id}",method=RequestMethod.PUT)@H_404_25@(4)@RequestMapping(value="/emp/add",method=RequestMethod.POST)


2、利用@PathVariable将URI模板中的变量映射到处理方法的参数上

2.1、@PathVariable应用

@PathVariable作用是将URI请求模板中的变量解析出来,映射到处理方法的参数上

2.2、@PathVariable使用示例

@RequestMapping(value="/appName/{name}",method=RequestMethod.GET)
public String execute(@PathVariable("name")int name)
return name;
}

2.3、URL请求匹配

比如上述的例子可以这样访问:http://www.eguid.cn/appName/参数

参数对应的就是name的值。


3、利用Ajax,在客户端发出PUT、POST、GET和DELETE请求

客户端发送PUT、POST、GET和DELETE请求

采用Ajax方式发送PUT、POST、GET和DELETE
$.ajax({
type:"PUT",//这里的参数可以是PUT、POST、GET和DELETE
url:"/appName/name",//请求地址,name就是你的参数
data:JSON.stringify($("#myform").serializaObject()),
dataType:"json",
contentYype:"application/json",//这个一定要设置
success:function(data){
//这里是成功获取信息后的处理方法
}

});


重要的补充:

data:JSON.stringify($("#myform").serializaObject())

$("#myform").serializaObject()是通过jquery直接将form表单生成json对象;

JSON.stringify()是把json对象转成json字符串的操作;

再次补充:spring4.x支持json对象解析,如果使用spring4.x,这里直接写$("#myform").serializaObject()就可以了,不需要再转成字符串。

后端spring可以直接通过实体类就可以自动解析json

4、静态资源访问处理

采用RESTful架构后,必须将web.xml中控制器拦截的请求设置为 ‘ / ’ ;但是这样会产生一个问题,就是会将css,js,图片等静态资源拦截,发生404错误


解决方案如下:

1、配置<mvc:resources/>

springMVC配置文件中这样使用:

<mvc:resources mapping="请求URI" location="资源位置";


2、在springMVC配置文件中使用<mvc:default-servlet-handler/>

配置该指令放行认的静态资源:

<mvc:default-servlet-handler/>


大部分情况下第二种就可以解决问题,而且方便简单

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐