Spring MVC是一种基于Java的MVC(Model-View-Controller)架构的Web应用程序开发框架。它是Spring框架的一部分,用于构建灵活和高效的Web应用程序。
Spring MVC的核心思想是将应用程序的逻辑分成模型(Model)、视图(View)和控制器(Controller)。模型表示应用程序的数据和业务逻辑,视图负责呈现数据给用户,控制器接收用户的请求并根据请求选择合适的模型和视图。
Spring MVC提供了一组丰富的功能和特性,使开发人员可以轻松地构建可扩展的Web应用程序。它具有以下特点:
- 支持灵活的URL映射:Spring MVC通过使用控制器处理器映射URL到适当的控制器方法。
- 强大的数据绑定和验证:Spring MVC提供了数据绑定功能,可以将用户提交的数据绑定到模型中。它还支持验证机制,可以验证并处理用户输入的数据。
- 灵活的视图解析:Spring MVC支持多种视图技术,包括JSP、FreeMarker、Thymeleaf等。开发人员可以根据需求选择合适的视图技术。
- 强大的拦截器支持:Spring MVC提供了拦截器机制,可以在请求处理的不同阶段添加拦截器来执行特定的操作,例如身份验证、日志记录等。
- 易于测试:Spring MVC的松耦合架构使得对控制器进行单元测试变得简单。开发人员可以使用JUnit等测试框架来编写测试用例。
Spring MVC是一个功能强大且易于使用的Web应用程序开发框架,使开发人员能够高效地构建可扩展和可维护的Web应用程序。它是Java开发人员在构建Web应用程序时的首选框架之一。
调用流程:(图片来自尚硅谷)
@RequestMapping
@RequestMapping(value = "/user/login",method = RequestMethod.GET)//1.进准地址[一个|多个] {"地址1","地址2"}//2.模糊地址 user/*//3.可以用与方法或类//4.method = RequestMethod.GET 指定访问方式 不符合会出现405异常//5.@RequestMapping(method = RequestMethod.GET) 等同于 @GetMapping
接收参数
1:param参数 param1=value1¶m2=value2¶m3=value3
//1.直接接收 属性名要求对应相等@RequestMapping("/data")@ResponseBodypublic String data(String name,int age){return "name="+name+"age="+age;}//2.注解接收@RequestMapping("/data1")@ResponseBodypublic String data1(@RequestParam(value="account")String name,@RequestParam(required = false,defaultValue = "18")int page){return "name="+name+"page="+page;}//3.实体对象接收 属性名需要等于参数名@RequestMapping("/data2")@ResponseBodypublic String data2(User user){return user.toString();}
2:路径传参
@RequestMapping("{account}/{password}") //动态路径public String login(@PathVariable String account,@PathVariable String password){return "account:"+account+" password:"+password;}
3:json参数 { “name”: “John”, “age”: 25, “email”: “john@example.com”}
@EnableWebMvc //配置json转化器 (使用postman)@PostMapping("/data")public String data( Person person){return person.toString();}