SpringMVC面试题()

SpringMVC面试题

1.什么是Spring MVC?简单介绍下你对Spring MVC的理解?

  Spring MVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架,通过把模型-视图-控制器分离,将web层进行职责解耦,

把复杂的web应用分成逻辑清晰的几部分,简化开发,减少出错,方便组内开发人员之间的配合。

2.Spring MVC的主要组件?

  • 前端控制器 DispatcherServlet(不需要程序员开发)

作用:接收请求、响应结果,相当于转发器,有了DispatcherServlet 就减少了其它组件之间的耦合度。

  • 处理器映射器HandlerMapping(不需要程序员开发)

作用:根据请求的URL来查找Handler

  • 处理器适配器HandlerAdapter

注意:在编写Handler的时候要按照HandlerAdapter要求的规则去编写,这样适配器HandlerAdapter才可以正确的去执行Handler。

  • 处理器Handler(需要程序员开发)
  • 视图解析器 ViewResolver(不需要程序员开发)

作用:进行视图的解析,根据视图逻辑名解析成真正的视图(view)

  • 视图View(需要程序员开发jsp)

View是一个接口, 它的实现类支持不同的视图类型(jsp,freemarker,pdf等等)

3.请描述Spring MVC的工作流程?描述一下 DispatcherServlet 的工作流程?

  • 1. 用户通过浏览器发起 HttpRequest 请求到前端控制器 (DispatcherServlet)。
  • 2. DispatcherServlet 将用户请求发送给处理器映射器 (HandlerMapping)。
  • 3. 处理器映射器 (HandlerMapping)会根据请求,找到负责处理该请求的处理器,并将其封装为处理器执行链 返回 (HandlerExecutionChain) 给 DispatcherServlet
  • 4. DispatcherServlet 会根据 处理器执行链 中的处理器,找到能够执行该处理器的处理器适配器(HandlerAdaptor) –注,处理器适配器有多个
  • 5. 处理器适配器 (HandlerAdaptoer) 会调用对应的具体的 Controller
  • 6. Controller 将处理结果及要跳转的视图封装到一个对象 ModelAndView 中并将其返回给处理器适配器 (HandlerAdaptor)
  • 7. HandlerAdaptor 直接将 ModelAndView 交给 DispatcherServlet ,至此,业务处理完毕
  • 8. 业务处理完毕后,我们需要将处理结果展示给用户。于是DisptcherServlet 调用 ViewResolver,将 ModelAndView 中的视图名称封装为视图对象
  • 9. ViewResolver 将封装好的视图 (View) 对象返回给 DIspatcherServlet
  • 10. DispatcherServlet 调用视图对象,让其自己 (View) 进行渲染(将模型数据填充至视图中),形成响应对象 (HttpResponse)
  • 11. 前端控制器 (DispatcherServlet) 响应 (HttpResponse) 给浏览器,展示在页面上。

4.Spring MVC常用的注解有哪些?

  • @RequestMapping:用于处理请求 url 映射的注解,可用于类或方法上。用于类上,则表示类中的所有响应请求的方法都是以该地址作为父路径。
  • @RequestBody:注解实现接收http请求的json数据,将json转换为java对象。
  • @ResponseBody:注解实现将conreoller方法返回对象转化为json对象响应给客户。
  • @Conntroller:控制器的注解,表示是表现层,不能用用别的注解代替
————————

SpringMVC面试题

1.什么是Spring MVC?简单介绍下你对Spring MVC的理解?

  Spring MVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架,通过把模型-视图-控制器分离,将web层进行职责解耦,

把复杂的web应用分成逻辑清晰的几部分,简化开发,减少出错,方便组内开发人员之间的配合。

2.Spring MVC的主要组件?

  • 前端控制器 DispatcherServlet(不需要程序员开发)

作用:接收请求、响应结果,相当于转发器,有了DispatcherServlet 就减少了其它组件之间的耦合度。

  • 处理器映射器HandlerMapping(不需要程序员开发)

作用:根据请求的URL来查找Handler

  • 处理器适配器HandlerAdapter

注意:在编写Handler的时候要按照HandlerAdapter要求的规则去编写,这样适配器HandlerAdapter才可以正确的去执行Handler。

  • 处理器Handler(需要程序员开发)
  • 视图解析器 ViewResolver(不需要程序员开发)

作用:进行视图的解析,根据视图逻辑名解析成真正的视图(view)

  • 视图View(需要程序员开发jsp)

View是一个接口, 它的实现类支持不同的视图类型(jsp,freemarker,pdf等等)

3.请描述Spring MVC的工作流程?描述一下 DispatcherServlet 的工作流程?

  • 1. 用户通过浏览器发起 HttpRequest 请求到前端控制器 (DispatcherServlet)。
  • 2. DispatcherServlet 将用户请求发送给处理器映射器 (HandlerMapping)。
  • 3. 处理器映射器 (HandlerMapping)会根据请求,找到负责处理该请求的处理器,并将其封装为处理器执行链 返回 (HandlerExecutionChain) 给 DispatcherServlet
  • 4. DispatcherServlet 会根据 处理器执行链 中的处理器,找到能够执行该处理器的处理器适配器(HandlerAdaptor) –注,处理器适配器有多个
  • 5. 处理器适配器 (HandlerAdaptoer) 会调用对应的具体的 Controller
  • 6. Controller 将处理结果及要跳转的视图封装到一个对象 ModelAndView 中并将其返回给处理器适配器 (HandlerAdaptor)
  • 7. HandlerAdaptor 直接将 ModelAndView 交给 DispatcherServlet ,至此,业务处理完毕
  • 8. 业务处理完毕后,我们需要将处理结果展示给用户。于是DisptcherServlet 调用 ViewResolver,将 ModelAndView 中的视图名称封装为视图对象
  • 9. ViewResolver 将封装好的视图 (View) 对象返回给 DIspatcherServlet
  • 10. DispatcherServlet 调用视图对象,让其自己 (View) 进行渲染(将模型数据填充至视图中),形成响应对象 (HttpResponse)
  • 11. 前端控制器 (DispatcherServlet) 响应 (HttpResponse) 给浏览器,展示在页面上。

4.Spring MVC常用的注解有哪些?

  • @RequestMapping:用于处理请求 url 映射的注解,可用于类或方法上。用于类上,则表示类中的所有响应请求的方法都是以该地址作为父路径。
  • @RequestBody:注解实现接收http请求的json数据,将json转换为java对象。
  • @ResponseBody:注解实现将conreoller方法返回对象转化为json对象响应给客户。
  • @Conntroller:控制器的注解,表示是表现层,不能用用别的注解代替