Springmvc映射请求(二)
来源:互联网 发布:linux c执行shell命令 编辑:程序博客网 时间:2024/06/08 19:37
一、使用@RequestMapping映射请求
Spring MVC 使用 @RequestMapping 注解为控制器指定可以处理哪些 URL 请求,该注解可以在控制器类定义和方法定义处使用。
- 类定义处:提供初步的请求信息,相对于web应用请求的根目录
- 方法处:提供进一步细分的请求信息,相对于类定义处目录(若类定义处未标注则此处相对于web应用根目录)
DispatcherServlet(前端控制器设计模式的实现,提供Spring Web MVC的集中访问点,而且负责职责的分派,而且与Spring IoC容器无缝集成,从而可以获得Spring的所有好处)截获请求后就通过控制器上@RequestMapping提供能的请求信息确定具体的处理方法。
1.1 请求参数、请求方法、请求头
@RequestMapping除了可以使用请求URL映射请求外,还可以使用请求方法、请求参数、请求头映射请求。他们之间是与的关系,联合使用可以使请求更加细化。
value:请求URL
method:请求方法RequestMethod(GET, HEAD, POST, PUT, PATCH, DELETE, OPTIONS, TRACE)
param:请求参数
- param1:表示请求必须包含param1这个请求参数
- !param1:表示请求必须不能包含param1这个请求参数
- param1 != value1:表示请求必须包含param1这个请求参数,但是其值不能等于value1
- {“param1=value1”, “param2”}:请求必须包含param1和param2两个参数,param1必须等于value1
headers:请求头
1.2 模糊匹配
springmvc使用Ant风格资源地址进行模糊匹配
?:匹配一个字符
*:匹配任意字符
**:匹配多层路径
二、获取请求参数
Spring MVC 通过分析处理方法的签名,将HTTP请求信息绑定到处理方法的相应入参中。
2.1 @PathVariable映射URL绑定的占位符
带占位符的URL是SpringMVC3.0新增的功能,该功能是SpringMVC向REST目标挺近发展过程中具有里程碑的意义。
通过@PathVariable可以将URL中占位符参数绑定到控制器处理方法的入参中:URL中的 {xxx} 占位符可以通过 @PathVariable(“xxx”) 绑定到操作方法中入参。
@RequestMapping("/delete/{id}")public String delete(@PathVariable("id") String id) { System.out.println("id"); return "success";}
2.2 @RequestParam 绑定请求参数值
在处理方法入参处使用 @RequestParam 可以把请求参数传递给请求方法。
- value:参数名
- required:是否必须,默认true。表示请求参数必须包含对应的参数,否则将抛出异常。
@RequestMapping("/handle")public String handle(@RequestParam(value="username") String username, @RequestParam(value="age", required=false) int age) { System.out.println(username); return "success";}
2.3 @RequestHeader 绑定请求报头的属性值
请求头包含了若干个属性,服务器可据此获取客户端的信息,通过@RequestHeader 即可将请求头中的属性值绑定到处理方法中入参。
@RequestMapping("/handle1")public String handle1(@RequestHeader("Accept-Encoding") String encoding, @RequestHeader("Keep-Alive") long alive) { return "success";}
2.4 @CookieValue 绑定请求中的Cookie值
@RequestMapping("/handle2")public String handle2(@CookieValue(value="JSESSIONID", required=false) String sessionId, @RequestParam("age") int age) { return "success";}
2.5 使用实体类(POJO)绑定请求参数
Spring MVC 会按请求参数名和 实体类属性名进行自动匹配,自动为该对象填充属性值。支持级联属性。如:dept.deptId, dept.address.tel
@RequestMapping("/pojoParams") public String pojoParams(User user){ System.out.println(user); return "helloworld"; }
2.6 使用ServletAPI入参
MVC 的Handler方法可以接受以下9种类型的ServletAPI入参
- javax.servlet.ServletRequest
- javax.servlet.ServletResponse
- javax.servlet.http.HttpSession
- java.security.Principal
- java.util.Locale
- java.io.InputStream
- java.io.Reader
- java.io.OutputStream
- java.io.Writer
- Springmvc映射请求(二)
- SpringMVC学习(二) @RequestMapping映射请求
- SpringMVC入门(二)--使用@RequestMapping映射请求
- SpringMVC学习笔记(2):请求映射
- SpringMVC源码(十)RequestMapping请求映射
- springmvc @RequestMapping映射请求
- springmvc-3,映射请求
- springMVC请求映射
- 【springMVC】请求参数映射
- SpringMVC学习(三)映射请求参数&请求参数
- springMVC请求映射全面分析
- SpringMVC中的请求映射规则
- 10006---SpringMVC 映射请求参数 & 请求参数
- SpringMVC映射请求参数的方式(参数绑定方式)
- SpringMVC学习(2):使用@RequestMapping映射请求方式
- SpringMVC学习(3):使用@PathVariable映射请求参数
- 10003---SpringMVC 使用@RequestMapping映射请求
- jquery- $.ajax请求映射springmvc中的@RequestBody
- php匹配年月日的正则
- Linux(CentOS 6)下设置nginx开机自动启动和chkconfig管理
- UnityShader——初探Compute Shader
- 1028. 人口普查(20)
- JAVA使用ROME读取百度RSS的编码错误问题
- Springmvc映射请求(二)
- Maven依赖的scope去除部署不需要的jar包(打包)
- 【iOS】标签视图与分组静态表布局使用、利用通知和全局变量传值
- 简谈JVM
- centos 安装 php7
- Hough变换非常详细讲解
- 多物体运动 根据传递的属性值改变
- Java中关于nextInt()、next()和nextLine()的理解
- ios https与http混合使用