SpringMVC学习笔记(三)
文章目录
1.@Controller注解
在SpringMVC 中,@Controller表示在tomcat启动的时候,把这个类作为一个控制器加载到Spring的Bean工厂,控制器Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理层处理之后封装成一个Model ,然后再把该Model 返回给对应的View 进行展示。
@Controller
@RequestMapping("/g")//等于@RequestMapping(value="/g")
public class helloworldController {
@RequestMapping(value="/h")
public String hello() {
System.out.println("hello world");
return "s";
}
}
2.@RequestMapping注解
@RequestMapping 是 SpringMVC 应用程序中最常被用到的注解之一。这个注解会将 HTTP 请求映射到 MVC 和 REST 控制器的处理方法上。@RequestMapping 还可以来处理多个URL请求。
1.@RequestMapping的请求路径
Ant风格的请求路径:
通配符 | 简介 |
---|---|
? | 匹配任何单字符 |
* | 匹配0或者任意数量的字符 |
** | 匹配0或者更多的目录 |
例如:
REST风格的请求方式:
RESR(Repressentational State Transfer)是一种编程风格,可以降低开发的复杂性。
举例:
 请求页面:
<!--对应增删改出 -->
<form action="g/requestREST/1234" method="post">
<input type="hidden" name="_method" value="DELETE"/>
<input type="submit" value="删除"/>
</form>
<form action="g/requestREST/1234" method="post">
<input type="hidden" name="_method" value="PUT"/>
<input type="submit" value="修改"/>
</form>
<form action="g/requestREST/1234" method="post">
<input type="submit" value="增加"/>
</form>
<br>
<a href="g/requestREST/1234">查看</a>
控制器controller:
//使用REST风格,处理“删除”的请求
@RequestMapping(value="requestREST/{id}",method=RequestMethod.DELETE)
public String requestRestDelete(@PathVariable("id") Integer id) {
System.out.println("删除时需要的id:"+id);
return "s";
}
//使用REST风格,处理“增加”的请求
@RequestMapping(value="requestREST/{id}",method=RequestMethod.POST)
public String requestRestAdd(@PathVariable("id") Integer id) {
System.out.println("增加时需要的id:"+id);
return "s";
}
//使用REST风格,处理“修改”的请求
@RequestMapping(value="requestREST/{id}",method=RequestMethod.PUT)
public String requestRestPut(@PathVariable("id") Integer id) {
System.out.println("修改时需要的id:"+id);
return "s";
}
//使用REST风格,处理“查看”的请求
@RequestMapping(value="requestREST/{id}",method=RequestMethod.GET)
public String requestRestGet(@PathVariable("id") Integer id) {
System.out.println("修改时需要的id:"+id);
return "s";
}
2.@RequestMapping的常用属性
1.value:
指定请求的实际地址,属性名value可以省略。
2.method:
指定请求的method类型,包括GET(默认)\、POST、PUT、DELETE等,可以通过枚举类来设置,如
3.consumes:
指定处理请求的提交内容类型(Content-Type),例如application/json、application/xml、text/html等。
4.produces:
指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回。
5.params:
指定request中必须包含某些参数值才让该方法处理,param本身就是一个字符串数组。
6.headers:
指定request中必须包含某些指定的header值,才能让该方法处理请求。
3.@RequestParam注解
SpringMVC通过@RequestParam注解来解释请求中的参数值,该注解的常用属性如下:
1. value / name: 请求参数中的参数名 (必写参数)
2. required: 请求参数中是否必须提供此参数,默认值是true,true为必须存在,不在则抛出异常,flase:可以不存在。
3. defaultValue: 给参数一个默认值。
例如:
请求页面:

<br>
<a href="g/requestParam?name=zqq&age=24">
超链接测试5:requestParam</a>
<br>
控制器:
//使用@RequestParam注解接收请求参数
@RequestMapping("/requestParam")
//使用defaultValue="23"将age的默认值设置为23,如果前端发送到值没有age,那么默认就是23
public String requestParam(@RequestParam(value="name")String name,@RequestParam(value="age",required=false,defaultValue="23") Integer age) {
System.out.println("name:"+name+" age: "+age);
return "s";
}