目錄
SpringMVC
一 簡單使用
1 新建模塊選擇指定參數
2 創建實現類
3 將項目啟動
4 運行結果:在瀏覽器當中響應執行
二 RequestMapping
三 請求限定
SpringMVC
SpringMVC是Spring的web模塊,用來開發Web應用,SpringMVC應用最終作為B/S,C/S模式下的Server端,Web應用的核心是處理HTTP響應。
Spring Web MVC 是構建在 Servlet API 上的原始 Web 框架,已被包含在內 在 Spring Framework 中。正式名稱“Spring Web MVC”, 來自其源模塊的名稱 (spring-webmvc)、 但它更通常被稱為 “Spring MVC”。
一 簡單使用
1 新建模塊選擇指定參數
2 創建實現類
package org.example.spring04mvc.controller;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;/*** - @Controller:* 標記類作為控制器,處理HTTP請求。* - @ResponseBody:* 標記方法返回的數據直接寫入HTTP響應體中,無需額外的處理。* - @RequestMapping:* 標記方法為控制器處理請求的方法。*/
@Controller
public class helloController {@ResponseBody@RequestMapping("/hello")public String hello() {return "hello SpringMVC";}
}
@RestController
?注解
-
作用:
@RestController
?是 Spring 4.0 引入的組合注解,相當于?@Controller
?+?@ResponseBody
。-
@Controller
:標識該類為 Spring MVC 的控制器。 -
@ResponseBody
:將方法的返回值直接寫入 HTTP 響應體(通常是 JSON 或字符串),而不是跳轉到視圖頁面。
-
//@ResponseBody
//@Controller@RestController
public class helloController {@RequestMapping("/hello")public String hello() {return "hello SpringMVC";}}
3 將項目啟動
package org.example.spring04mvc;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;@SpringBootApplication
public class Spring04MvcApplication {public static void main(String[] args) {SpringApplication.run(Spring04MvcApplication.class, args);}
}
4 運行結果:在瀏覽器當中響應執行
補充修改端口:
二 RequestMapping
路徑映射:將方法與路徑進行綁定,訪問指定路徑就執行指定方法進行處理。
路徑位置通配符:
優先級:精確匹配 > ?> * > **
* | 匹配任意多個字符 |
** | 匹配任意多層路徑 |
? | 匹配人以單個字符 |
三 請求限定
在Spring MVC中,請求限定(Request Mapping)是指通過特定的條件將HTTP請求映射到對應的控制器方法進行處理。主要通過@RequestMapping
及其衍生注解實現,以下是部分的請求限定方式:
package org.example.spring04mvc.controller;import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;@RestController
public class RequestMappingControllerLimit {//請求方式@RequestMapping(value = "/limit", method = RequestMethod.DELETE)public String limit1() {return "limit1";}//請求參數@RequestMapping(value = "/limit2", params = {"name", "age=18"})public String limit2() {return "limit2";}//請求頭@RequestMapping(value = "/limit3", headers = {"name"})public String limit3() {return "limit3";}//請求內容類型(下面舉例表名瀏覽器必須攜帶json格式格式的數據)@RequestMapping(value = "/limit4", consumes = {"application/json"})public String limit4() {return "limit4";}//響應內容類型(下面舉例瀏覽器只能接受json格式的數據)@RequestMapping(value = "/limit5", produces = "text/html;charset=utf-8")public String limit5() {return "<h2>limit5</h2>";}
}