码迷,mamicode.com
首页 > 编程语言 > 详细

SpringMVC的知识点

时间:2019-09-19 16:39:08      阅读:98      评论:0      收藏:0      [点我收藏+]

标签:安装   定义   servlet   视图   请求   控制器   区别   职责   RKE   

  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的知识点

标签:安装   定义   servlet   视图   请求   控制器   区别   职责   RKE   

原文地址:https://www.cnblogs.com/Fmir/p/11526610.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!