Spring MVC 常用注解教程 (三)

本篇博客主要学习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";
    }

如有不当之处请多多指教,如对你有所帮助,请留言或点赞予以支持,谢谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值