spring mvc面试题整理

spring mvc面试题整理

什么是spring mvc?

他是轻量级web框架,通过模型,视图,控制器分离。将web层记性解耦,简化开发

spring mvc优点?
  • 支持个各种视图
  • 与spring框架集成
  • 清晰的角色分配:前端控制器(dispatcherSerclet),请求处理映射(handlerMapping),处理适配器(HandlerAdapter),视图解析器(ViewResoler)
什么是DispatcherServlet?

他用来处理所有的HTTP请求和响应

Spring MVC的控制器是不是单例模式,如果是,有什么问题,怎么解决?

是的。会影响性能,解决方法是在控制器里面不能写字段

请描述Spring MVC的工作流程?描述一下 DispatcherServlet 的工作流程?
  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响应用户。

spring mvc面试题整理

@Controller注解的作用

控制器Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理层处理之后封装成一个Model ,然后再把该Model 返回给对应的View 进行展示