本篇博客主要学习Controller 层常用的注解。
一、 原生Servlet API 使用
在导入依赖包后,只需要在控制器中的方法中添加参数 :HttpServletRequest 和 HttpServletResponse
@RequestMapping("/servletApi")
public String servletApi(HttpServletRequest request, HttpServletResponse response) {
String name = request.getParameter("name");
String age = request.getParameter("age");
System.out.println("用户名:" + name + " , 年龄:" + age);
String method = request.getMethod();
System.out.println("请求方式: "+ method);
return "success";
}
二、 @RequestParam 注解
可以给请求中的参数名设置别名并给控制器中的形参赋值
<a href="/param?name=姚明&password=123456" style="color: darkmagenta;">SpringMVC</a>
@RequestMapping("/param")
public String sayHello(@RequestParam(value = "name") String userName, String password) {
System.out.println("用户名:" + userName + " , 密码:" + password);
return "success";
}
三、 @RequestBody 注解
@RequestBody接收的是一个Json对象的字符串,而不是一个Json对象。
前端提交的form表单
<form action="/requestBody" method="post">
姓名:
<input type="text" name="name">
<br>
年龄:
<input type="text" name="age"><br>
出生日期:
<input type="text" name="birthday"><br>
<input type="submit" value="提交">
</form>
后端方法:
@RequestMapping("/requestBody")
public String requestBody(@RequestBody String user) {
System.out.println(" 获取请求体内容 json字符串: "+user);
return "success";
}
运行结果:
获取请求体内容 json字符串: name=admin_host&age=66&birthday=121
四、 @PathVariable 注解
用于绑定url中的占位符。
<a href="/pathVaribale/姚明" style="color: darkmagenta;">pathVaribale</a>
@RequestMapping("/pathVaribale/{name}")
public String pathVaribale(@PathVariable("name") String name) {
System.out.println(" 路径传值: "+name);
return "success";
}
五、 @RequestHeader 注解
@RequestHeader 获取请求头文件的信息
1、value值:对应头文件中的键
2、defaultValue 该参数的默认值
当键值没有传输时将使用这个参数进行赋值
3、required:是否必须。默认为 true, 表示请求参数中必须包含对应
的参数,若不存在,将抛出异常
<a href="/requestHeader" style="color: darkmagenta;">requestHeader</a>
@RequestMapping("/requestHeader")
public String requestHeader(@RequestHeader("Accept-Language") String header) {
System.out.println(" 获取请求头的值: "+ header);
return "success";
}
获取请求头的值: zh-CN,zh;q=0.9
六、 @CookieValue 注解
@CookieValue方便我们获取指定Cookie数据。
<a href="/cookieValueTest" style="color: darkmagenta;">cookieValueTest</a>
@RequestMapping("/cookieValueTest")
public String cookieValue(@CookieValue(value="JSESSIONID") String sessionId) {
System.out.println("通过@CookieValue获得JSESSIONID:"+sessionId);
return "success";
}
如有不当之处请多多指教,如对你有所帮助,请留言或点赞予以支持,谢谢!