Spring mvc的层次:
view(视图):将数据通过网页的形式展现给用户,并将用户的请求操作发送给controller
model(模型):应用程序的数据和业务逻辑,用于处理用户的业务请求,与数据库进行交互
controller(控制器):接受用户的请求,并转发给model处理数据,负责协调业务逻辑和用户界面之间的交互
mcv工作流程:用户通过view层 的交互向controller发去业务请求。controller接受到请求后选择合适的model并向model发送请求。model处理后,将结果再发送给controller。controller接受到结果后再将结果返回给view界面。
在SpringMVC项目中使用@RequestMapping
注解来实现URL路由映射。@RequestMapping
即可修饰类,也可同时修饰方法,RequestMapping可以
指定请求的HTTP方法:GET/POST:@RequestMapping(value = "/hello", method = RequestMethod.POST)。
也可以通过使用@PathVariable注解来接收路径中的参数:
@RequestMapping("/hello/{name}")
public String hello(@PathVariable String name)
{ return "Hello " + name + "!"; }
RESTful风格的url参数获取
传统的URL:localhost:8080/hello/?id=1&name=tom
RESTful URL:localhost:8080/hello/restful/1/tom(@RequestMapping("/restful/{id}/{name}"))
@GetMapping和@PostMapping是Spring Framework中的注解,用于定义HTTP请求的处理方法的映射。
@GetMapping注解表示该方法用于处理HTTP GET请求。
@PostMapping注解表示该方法用于处理HTTP POST请求。 <servlet-mapping>
dispatcherServlet拦截请求: <url-pattern>/</url-pattern> 不会拦截.jsp,但是会拦截.html等静态资源。<url-pattern>/*</url-pattern>拦截所有。
@Data:自动生成setter和getter、toString方法
@RequestParam:指定value
或name
属性
@RequestBody:将请求体的JSON数据绑定到方法参数上
业务数据绑定:Map Model ModelAndView @SessionAttribute @ModelAttribute API
Map/Model:业务方法通过入参来完成业务数据的绑定 设置业务方法的入参为Map/Model类型
ModelAndView:ModelAndView不仅包含业务数据,同时也封装了视图信息
Servlet API:Spring MVC可以在业务方法种直接获取Servlet原生Web资源,只需要在方法定义时添加HttpServletRequest输入参数就可以,在方法体种直接使用request对象