zoukankan      html  css  js  c++  java
  • .Net转Java自学之路—SpringMVC框架篇一(简述)

    SpringMVC是Spring框架的一个模块,SpringMVC和Spring无需通过中间层进行整合。SpringMVC是一个基于MVC设计模式的一个框架。

    SpringMVC框架原理:

      客户端发送一个request请求到SpringMVC的前端控制器(DispatcherServlet),DispatcherServlet接收用户请求,并且响应;前端控制器根据request请求的URL通过处理器映射器(HandlerMapping)来请求查找Handler。处理器映射器返回的一个执行链(HandlerExceptionChain),该链中含有HandlerInterceptor(拦截器)、Handler,在该链中可以由多个拦截器。前端控制器请求处理器适配器(HandlerAdapter)去执行Handler处理器(Controller),每一个Handler处理器都对应一个处理器是配置。Handler处理器返回ModelAndView,就是模型和视图的结合体。处理器适配器将ModelAndView返回前端控制器。前端控制器请求视图解析器(ViewResoler)进行视图解析,该视图为逻辑视图,视图解析器解析后返回View(物理视图)。然后前端控制器将模型数据填充到request域,请求View视图进行视图渲染。

      1、客户端发送一个request请求到SpringMVC的前端控制器(DispatcherServlet)

      2、前端控制器请求HandlerMapping查找Handler。根据xml配置、注解进行查找。

      3、处理器映射器HandlerMapping向前端控制器返回Handler。

      4、前端控制器调用处理器是配置去执行Handler

      5、处理器适配器去执行Handler。

      6、Handler处理器执行完成后给处理器适配器返回ModelAndView

      7、处理器适配器像前端控制器返回ModelAndView。ModelAndView是SpringMVC框架的一个底层对象,包含Model和View

      8、前端控制器请求视图解析器去进行视图解析。根据逻辑视图名解析成真正的视图(JSP)。

      9、视图解析器向前端控制器去执行视图解析。

      10、前端控制器进行视图渲染。视图渲染就是模型数据填充到request域。模型数据就是在ModelAndView中。

      11、前端控制器向客户端响应结果。

    组件:

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

      处理器映射器HandlerMapping:
        作用:根据请求的URL查找Handler。

      处理器适配器HandlerAdapter:
        作用:按照特定规则执行Handler。

      处理器Handler:
        编写Handler时需要按照HandlerAdapter的要求编写,这样适配器才可以正确只能怪Handler。

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

      视图View:
        View是一个接口,实现类支持不同的View类型。如:jsp、freemarker、pdf等。

    SpringMVC和Struts2区别:

      1、SpringMVC是基于方法开发的;Struts2是基于类开发的。
        SpringMVC将url和controller方法进行映射。映射成功后SpringMVC生成一个Handler对象,对象只包含一个method。方法执行结束,形参数据销毁。
        SpringMVC的controller开发更类似于service开发。

      2、SpringMVC可以进行单例开发,并且建议使用单例开发,Struts2通过类的成语那变量接收参数,无法使用单例,只能使用多例。

      3、通过实际测试,Struts2速度慢的原因,在于使用了Struts标签,若使用Struts建议使用JSTL。

  • 相关阅读:
    第一阶段各队建议
    解决死锁四大方式
    进程和线程区别
    windows 地址空间分配
    Linux下用户组、文件权限详解
    2016总结
    class内部处理
    c++ devived object model
    static
    reinterpret
  • 原文地址:https://www.cnblogs.com/zltao/p/10630684.html
Copyright © 2011-2022 走看看