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";
    }

如有不當之處請多多指教,如對你有所幫助,請留言或點贊予以支持,謝謝!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章