<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ## 一、返回頁面 在controller類中返回到頁面中一共有兩種方式,即controller的返回值為ModelAndView或者String。二者的區別就在于ModelAndView能夠像session一樣存儲一些屬性。 使用ModelAndView作為返回值: ~~~ @Controller public class LoginController { @RequestMapping(value = "/login") public ModelAndView login(){ ModelAndView mv = new ModelAndView(); mv.setViewName("/login.html"); return mv; } } ~~~ 使用String作為返回值: ~~~ @Controller public class HelloController { @RequestMapping("/hello") public String hello() { return "sampe/test/hello.html"; } } ~~~ >[danger] springboot中靜態資源默認是放在static路徑下的,換而言之就是html等頁面的根路徑是static,但是,如果整合了thymeleaf之后,靜態資源默認是放在templates路徑下的,也就是html等頁面的根路徑是templates了; ## 二、控制器類型 @Controller和@RestController; ### **@Controller** 它返回一個頁面; 單獨使用 @Controller不加 @ResponseBody的話一般使用在要返回一個視圖的情況,這種情況屬于比較傳統的Spring MVC 的應用,對應于前后端不分離的情況; ![](https://img.kancloud.cn/16/83/1683684e4b1ca6c98987e6244308d64a_500x313.png) >[danger] 注意: > 1、@Controller +@ResponseBody=@RestController; > 2、@ResponseBody 注解的作用是將 Controller 的方法返回的對象通過適當的轉換器轉換為指定的格式之后,寫入到HTTP 響應(Response)對象的 body 中,通常用來返回 JSON 或者 XML 數據,返回 JSON 數據的情況比較多; ### **@RestController** 它返回JSON 或 XML 形式數據; @RestController只返回對象,對象數據直接以 JSON 或 XML 形式寫入 HTTP 響應(Response)中,這種情況屬于 RESTful Web服務,這也是目前日常開發所接觸的最常用的情況(前后端分離); ![](https://img.kancloud.cn/23/7f/237ffb25961cb5bb038bb41acd3febc9_505x239.png) ## 三、請求映射 @RequestMapping將 HTTP 請求映射到 MVC控制器 和 REST 控制器的處理方法上;可以同時在類和方法上應用; 在類的級別上的注解會將一個特定請求或者請求模式映射到一個控制器之上。之后你還可以另外添加方法級別的注解來進一步指定到處理方法的映射關系; method: 指定請求的method類型, GET、POST、PUT、DELETE等; @RequestMapping的不同Method還有更多的等價的標注; 例如: @RequestMapping(value="/{day}", method = RequestMethod.GET) 等于:@GetMapping @RequestMapping(value="/{day}", method = RequestMethod.POST) 等于:@PostMapping ## 四、方法參數輸入 ### (1)**請求路徑參數** **@PathVariable**:接收請求路徑中占位符的值; 例如: @PathVariable("xxx") 通過 @PathVariable 可以將URL中占位符參數{xxx}綁定到處理器類的方法形參中@PathVariable(“xxx“) @RequestMapping(value=”user/{id}/{name}”) 請求路徑:http://localhost:8080/hello/user/1/james **@RequestParam**:常用于GET,也可用于POST 獲取查詢參數。即*url?name=*這種形式 ### (2)**Body參數** **@RequestBody**:只可用于POST @RequestBody主要用來接收前端傳遞給后端的json字符串中的數據的(請求體中的數據的);GET方式無請求體,所以使用@RequestBody接收數據時,前端不能使用GET方式提交數據,而是用POST方式進行提交;在后端的同一個接收方法里,@RequestBody與@RequestParam()可以同時使用,@RequestBody最多只能有一個,而@RequestParam()可以有多個; @RequestBody可以自動的將請求的json數據裝配為對象,也可以直接以字符串的形式獲取; **無注解** ### (3)**請求頭參數以及Cookie** **@RequestHeader** @RequestHeader 是獲取請求頭中的數據,通過指定參數 value 的值來獲取請求頭中指定的參數值。其他參數用法和 @RequestParam 完全一樣; @CookieValue 用來獲取Cookie中的值; 跟@RequestHeader類似,無須通過參數傳值; ## 五、方法返回值 Controler的返回值可以是modelAndView或頁面模板等; RestController的返回值都會轉換為json字符串; ## 六、周邊設施 Filter,Inteceptor等機制: ![](https://img.kancloud.cn/65/c1/65c1cd5e3f193e3020c8b39a2e9cebed_1413x1014.png)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看