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