1.@RequestMapping 还支持 Ant 风格的 URL
:
– /user/createUser??: 匹配 /user/createUseraa、/user/createUserbb 等 URL
最流行的一 种 互 联 网 软 件架 构 。它 结构 清晰、符合 标 准、易于理解、 扩 展方便,
所以正得到越来越多网站的采用
? 资 源( Resources ) :网 络 上的一个 实 体,或者 说 是网 络 上的一个具体信息。它
可以是一段文本、一 张图 片、一首歌曲、一 种 服 务 , 总 之就是一个具体的存在。
可以用一个 URI ( 统 一 资 源定位符)指向它, 每 种资 源 对应 一个特定的 URI 。要
获 取 这 个 资 源, 访问 它的 URI 就可以,因此 URI 即 为 每 一个 资 源的独一无二的 识
别 符 。
? 表 现层 ( Representation ) : 把 资 源具体呈 现 出来的形式 ,叫做它的表 现层
( Representation )。比如,文本可以用 txt 格式表 现 ,也可以用 HTML 格
式、 XML 格式、 JSON 格式表 现 ,甚至可以采用二 进 制格式。
? 状 态转 化( State Transfer ) : 每 发 出一个 请 求,就代表了客 户 端和服 务 器的一
次交互 过 程。 HTTP 协议 ,是一个无状 态协议 ,即所有的状 态 都保存在服 务 器
端。因此,如果客 户 端想要操作服 务 器,必 须 通 过 某 种 手段, 让 服 务 器端 发 生 “
状 态转 化 ” ( State Transfer )。而 这种转 化是建立在表 现层 之上的,所以就是 “
表 现层 状 态转 化 ” 。具体 说 ,就是 HTTP 协议 里面,四个表示操作方式的 动
词 : GET 、 POST 、 PUT 、 DELETE 。它 们 分 别对应 四 种 基本操作: GET 用来 获
取 资 源, POST 用来新建 资 源, PUT 用来更新 资 源, DELETE 用来 删 除 资 源。
(2)HiddenHttpMethodFilter : 浏览 器 form 表 单 只支持 GET 与 POST 请 求,而 DELETE 、 PUT 等 method 并不支
持, Spring3.0 添加了一个 过滤 器,可以将 这 些 请 求 转换为标 准的 http 方法,使得支持 GET 、 POST 、 PUT 与
DELETE 请 求
Ant 风格资源地址支持 3 种匹配符:
– ?:匹配文件名中的一个字符
– *:匹配文件名中的任意字符
– **:** 匹配多层路径
– /user/*/createUser: 匹配/user/aaa/createUser、/user/bbb/createUser 等 URL
– /user/createUser??: 匹配 /user/createUseraa、/user/createUserbb 等 URL
@RequestMapping("testAnt/*/abc")public String testAntPath(){System.out.println("test ant");return SUCCESS;}
hello.jsp
<a href="testAnt/1111/abc">testAnt</a><br>
2.
REST
:即
Representational State Transfer。(资源)表现层状态转
化。是目前最流行的一 种 互 联 网 软 件架 构 。它 结构 清晰、符合 标 准、易于理解、 扩 展方便,
所以正得到越来越多网站的采用
? 资 源( Resources ) :网 络 上的一个 实 体,或者 说 是网 络 上的一个具体信息。它
可以是一段文本、一 张图 片、一首歌曲、一 种 服 务 , 总 之就是一个具体的存在。
可以用一个 URI ( 统 一 资 源定位符)指向它, 每 种资 源 对应 一个特定的 URI 。要
获 取 这 个 资 源, 访问 它的 URI 就可以,因此 URI 即 为 每 一个 资 源的独一无二的 识
别 符 。
? 表 现层 ( Representation ) : 把 资 源具体呈 现 出来的形式 ,叫做它的表 现层
( Representation )。比如,文本可以用 txt 格式表 现 ,也可以用 HTML 格
式、 XML 格式、 JSON 格式表 现 ,甚至可以采用二 进 制格式。
? 状 态转 化( State Transfer ) : 每 发 出一个 请 求,就代表了客 户 端和服 务 器的一
次交互 过 程。 HTTP 协议 ,是一个无状 态协议 ,即所有的状 态 都保存在服 务 器
端。因此,如果客 户 端想要操作服 务 器,必 须 通 过 某 种 手段, 让 服 务 器端 发 生 “
状 态转 化 ” ( State Transfer )。而 这种转 化是建立在表 现层 之上的,所以就是 “
表 现层 状 态转 化 ” 。具体 说 ,就是 HTTP 协议 里面,四个表示操作方式的 动
词 : GET 、 POST 、 PUT 、 DELETE 。它 们 分 别对应 四 种 基本操作: GET 用来 获
取 资 源, POST 用来新建 资 源, PUT 用来更新 资 源, DELETE 用来 删 除 资 源。
(2)HiddenHttpMethodFilter : 浏览 器 form 表 单 只支持 GET 与 POST 请 求,而 DELETE 、 PUT 等 method 并不支
持, Spring3.0 添加了一个 过滤 器,可以将 这 些 请 求 转换为标 准的 http 方法,使得支持 GET 、 POST 、 PUT 与
DELETE 请 求
1.首先在web.xml配置过滤器 HiddenHttpMethodFilter
<filter><filter-name>HiddenHttpMethodFilter</filter-name><filter-class>org.springframework.web.filter.HiddenHttpMethodFilter </filter-class></filter><filter-mapping><filter-name>HiddenHttpMethodFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping>
2. 写一个Test方法
@RequestMapping(value = "/testRest/{id}", method = RequestMethod.DELETE)public String testRestDelete(@PathVariable Integer id){System.out.println("testRest"+id);return SUCCESS;}
3. 将form表单的post请求 转为 delete请求
<form action="/springMVC-01/testRest/1" method="post"><input type="hidden" name="_method" value="put"/><input type="submit" value="TestRest DELETE"/> </form>
三.使用 @RequestParam 绑定请求参数值
<1>在处理方法入参处使用 @RequestParam 可以把请求参数传递给请求方法
@RequestParam 来映射请求参数. value 值即请求参数的参数名 required 该参数是否必须. 默认为 true,defaultValue 请求参数的默认值
@RequestMapping(value="/testRequestParam")
public String testRequestParam(
@RequestParam(value="username")String un,
@RequestParam(value="age",required=false,defaultValue="0")int age){
System.out.println("username="+un+ ""+"age="+age);
return SUCCESS;
}
<a href="springMVC-01/testRequestParam?username=atguigu&age=11">Test RequestParam</a>