springmvc

  • 1. 流程
  • 2. SpringMVC常用的注解有哪些?

1. 流程

  1. 用户发送请求至前端控制器DispatcherServlet;
  2. DispatcherServlet收到请求后,调用HandlerMapping处理器映射器,请求获取Handle;
  3. 处理器映射器根据请求url找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet;
  4. DispatcherServlet 调用 HandlerAdapter处理器适配器;
  5. HandlerAdapter 经过适配调用 具体处理器(Handler,也叫后端控制器);
  6. Handler执行完成返回ModelAndView;
  7. HandlerAdapter将Handler执行结果ModelAndView返回给DispatcherServlet;
  8. DispatcherServlet将ModelAndView传给ViewResolver视图解析器进行解析;
  9. ViewResolver解析后返回具体View;
  10. DispatcherServlet对View进行渲染视图(即将模型数据填充至视图中)
  11. DispatcherServlet响应用户。

2. SpringMVC常用的注解有哪些?

1.@RestController=@ResponseBody+@Controller
2.@RequestMapping @GetMapping @PostMapping
@GetMapping是一个组合注解,是@RequestMapping(method = RequestMethod.GET)的缩写。
@PostMapping是一个组合注解,是@RequestMapping(method = RequestMethod.POST)的缩写。
3.@RequestParam

//加或不加@RequestParam注解
@RequestMapping("/list")
public String test(int userId) {
return "list";
}
@RequestMapping("/list")
public String test(@RequestParam int userId) {
return "list";
}

第一种写法参数为非必传,第二种写法参数为必传。参数名为userId。
第二种写法可以通过@RequestParam(required = false)设置为非必传。因为required值默认是true,所以默认必传。
第二种写法可以通过@RequestParam(“userId”)或者@RequestParam(value = “userId”)指定参数名。
第二种写法可以通过@RequestParam(defaultValue = “0”)指定参数默认值

更多推荐

【面试题 - springmvc】SpringMVC的流程