首页 技术 正文
技术 2022年11月9日
0 收藏 376 点赞 2,597 浏览 1811 个字

一、什么是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可以采用以下使用格式:

(1)@RequestMapping(value=”/emp/{id}”,method=RequestMethod.GET)

(2)@RequestMapping(value=”/emp/{id}”,method=RequestMethod.DELETE)

(3)@RequestMapping(value=”/emp/{id}”,method=RequestMethod.PUT)

(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/>

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

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,088
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,565
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,413
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,186
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,822
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,905