SpringMVC的知识点

Posted fmir

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringMVC的知识点相关的知识,希望对你有一定的参考价值。

  1. 什么是SpringMVC?
    • SpringMVC是一个基于Java实现了MVC设计模式的轻量级Web框架。通过把model-view-controller进行分离,将Web层进行职责解耦,把Web应用分成逻辑清晰的几部分,方便开发人员之间的配合
  2. SpringMVC的执行流程?
    • 用户发送请求给DispatcherServlet,DispatcherServlet调用HandlerMapping
    • HandlerMapping通过请求中的URL找到对应的Handler,并返回Handler给DispatcherServlet
    • DispatcherServlet调用HandlerAdapter请求执行Handler,执行结束返回ModelAndView
    • DispatcherServlet调用ViewResolver进行解析ModelAndView,返回真正的视图对象
    • DispatcherServlet对视图对象进行渲染,渲染结束就将此视图返回给用户
  3. SpringMVC的优点是什么?
    • 支持多种视图类型,不仅仅局限于JSP
    • 与Spring很好的集成
    • 有明确的角色分配:
      • 前端控制器(DispatcherServlet)
      • 处理器映射器(HandlerMapping)
      • 处理器适配器(HandlerAdapter)
      • 视图解析器(ViewResolver)
    • 支持任何资源的映射策略
  4. SpringMVC和Struts2的区别?
    • 拦截级别:
      • SpringMVC是方法级别的拦截
      • Struts2是类级别的拦截
    • 数据的独立性:
      • SpringMVC的方法之间是独立的,独享request和response数据,请求数据通过参数获取,处理数据通过ModelMap交回框架
      • Struts2方法也是独立的,但所有的action都是共享的,虽然不会对程序执行造成影响,但是对开发者开发和读程序时带来麻烦
    • 拦截方式:
      • SpringMVC用独立的AOP方式
      • Struts2有自己的interceptor机制,这就导致要比SpringMVC的配置文件要多
    • 对Ajax的支持:
      • SpringMVC集成了Ajax,使用Ajax更加方便,我们可以使用@ResponseBody注解进行实现
      • Struts2一般需要安装插件或者自己手写代码进行实现
  5. Spring的重要组件?
    • 前端控制器(DispatcherServlet):主要接受请求,响应结果,相当于一个转发器。它可以降低其他组件的耦合度
    • 处理器映射器(HandlerMapping):通过请求的URL查询到Handler
    • 处理器适配器(HandlerAdapter):编写Handler时要按照HandlerAdapter的规则进行编写,这样才能保证HandlerAdapter正常执行Handler
    • 处理器(Handler 需要开发者开发)
    • 视图解析器(ViewResolver):解析视图,根据视图逻辑名解析成真正的视图对象
    • 视图(View):是一个接口,实现类拥有多种不同的视图类型(如:JSP、FreeMarker、PDF等)
  6. SpringMVC常用的注解有哪些?
    • @RequestMapping:用于处理请求http映射的注解,可以在类和方法上使用。当时用在类上时,此类中所有响应的方法都以此地址作为父路径
    • @RequestBody:注解实现接收http请求的json数据,将json对象转为Java对象
    • @ResponseBody:注解实现controller响应数据的Java对象转为json对象并响应给客户
  7. 说一说注解的原理是什么?
    • 注解就是一个继承了Annotation的特殊接口,其实现类就是在运行时动态的生成代理对象。在我们通过反射获取注解时,会返回Java运行时生成的动态代理对象。通过代理对象调用自定义注解的方法,会最终调用AnnotationInvocationHandler的invoke()方法。该方法会从memberValues这个map中索引出对应的值,memberValues中的数据来自Java的常量池

以上是关于SpringMVC的知识点的主要内容,如果未能解决你的问题,请参考以下文章

面试过程中SpringMVC被问到的知识点,你知道多少?

SpringMvc必备面试知识点

在面试过程中SpringMVC常常被问到的有哪些知识点?

Spring知识点总结4 SpringMVC

SpringMVC知识梳理

SpringMVC知识梳理