admin管理员组

文章数量:1794759

【面试题

【面试题

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

1. 流程
  • 用户发送请求至前端控制器DispatcherServlet;
  • DispatcherServlet收到请求后,调用HandlerMapping处理器映射器,请求获取Handle;
  • 处理器映射器根据请求url找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet;
  • DispatcherServlet 调用 HandlerAdapter处理器适配器;
  • HandlerAdapter 经过适配调用 具体处理器(Handler,也叫后端控制器);
  • Handler执行完成返回ModelAndView;
  • HandlerAdapter将Handler执行结果ModelAndView返回给DispatcherServlet;
  • DispatcherServlet将ModelAndView传给ViewResolver视图解析器进行解析;
  • ViewResolver解析后返回具体View;
  • DispatcherServlet对View进行渲染视图(即将模型数据填充至视图中)
  • 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”)指定参数默认值

    本文标签: 面试题