SpringMVC:
一、RequestMapping
1、在方法上使用@RequestMapping注解来映射请求的URL
返回值会通过视图解析器解析为实际的物理视图,前缀+返回值+后缀,然后转发。
@RequestMapping既可以修饰方法,也可以修饰类,
类定义处:提供初步的请求映射,对应WEB应用的根目录
方法定义处:提供进一步的细节映射信息
2、@RequestingMapping()中的value,method,
value指定请求URL
method指定请求方式:method = RequestMethod.POST.......
params指定请求参数,支持表达式:
param1:请求必须包含名为param1的请求参数
!param1:不能包含命名为这个的请求参数
param1!=value1:必须包含名为param1的参数,但其值不能是value1
{"param1=value1","param2"}:必须包含param1,param2,且param1的值必须为value
heads指定请求头
了解:
可以使用params和headers来更加精确的映射请求,params与headers支持简单
的表达式。
3、@RequestMapping()映射URL时支持通配符,通配符需要使用Ant风格,
Ant风格资源地址 支持3种匹配符:
?:匹配文件名中的一个字符
* :匹配文件名中的任意字符
** : **匹配多层路径
4、@PathVariable可以来映射URL中的占位符到目标方法的参数中。

5、REST风格:(资源)表现层转化,最流行的一种互联网软件架构
HTTP 协议里面,四个表示操作方式的动词:GET、POST、PUT、DELETE。
它们分别对应四种基本操作:
GET 用来获取资源POST 用来新建资源PUT 用来更新资源DELETE 用来删除。

Rest风格的URL:
以CRUD为例:
新增: /order POST
修改: /order/1 PUT update?id=1
获取: /order/1 GET get?id = 1
删除: /order/1 DELETE delete?id=1
如何发送delete与put请求?
1. 需要配置hiddenHttpMethodFilter
2. 需要发送POST请求
3. 需要在发送POST请求时携带一个name="_method"的隐藏域,值为DELETE 或PUT
在SpringMVC的目标方法中如何得到id呢?
使用@PathVariable注解即可。
6、使用@RequestParam绑定请求参数值
@RequestParam来映射请求参数:
value 值即请求参数的参数名
required 该请求是否必须,默认为 true
defaultValue 请求参数的默认值

7、@RequestHeader映射请求头信息
用法同@RequestParam

8、@CookieValue映射一个Cookie值,属性同@RequestParam

9、Spring MVC 会按请求参数名和 POJO 属性名进行自动匹配,自动为该对象填充属性
值。支持级联属性。
如:dept.deptId、dept.address.tel 等


10、可以使用Serlvet原生的API作为目标方法的参数,具体支持以下类型:
HttpServletRequest
HttpServletResponse
HttpSession
java.security.Principal
Locale
InputStream
OutputStream
Reader
Writer

网友评论