SpringMVC学习03:初识SpringMVC

SpringMVC学习03:初识SpringMVC

  • 我们为什么要学习SpringMVC:

    • SpringMVC的特点:

      • 轻量级,简单易学;

      • 高效,基于请求响应的MVC框架;

      • 与Spring兼容性好,无缝结合;

      • 约定大于配置;

      • 功能强大:RESTFUL,数据验证,格式化,本地化,主题等

      • 简洁灵活

         

    • Spring的web框架围绕DispatcherServlet【调度Servlet】设计;

    • SpringMVC的核心:就是不用再手写Servlet了;

    • DispatcherServlet的作用是将请求分发到不同的处理器,从Spring2.5开始,使用java 5或者以上版本的用户可以采用基于注解形式进行开发,十分简洁;

    • 正因为SpringMVC好,简单,便捷,易学,天生和Spring无缝集成(使用SpringIOC和AOP),使用约定大于配置,能够进行简单的Junit测试,支持RestFul风格,异常处理,本地化,国际化,数据验证,类型转换,拦截器等等

    • 最重要的一点还是用的人多,使用的公司多【工作好找】

 

  • 简易DispatcherServlet的流程图:

    • 简易流程图:

       

    • DispatcherServlet的本质还是一个Servlet:

       

 

  • 中心控制器:

    • Spring的web框架围绕DispatcherServlet设计,DispatcherServlet的作用是将请求分发到不同的处理器。

    • SpringMVC框架和其他框架一样,以请求为驱动,围绕一个中心Servlet分派请求及提供其他功能,DispatcherServlet本质也是一个Servlet(它继承自HttpServlet基类);

 

 

  • SpringMVC的原理:

    • 1,当发起请求时被前端控制器拦截到请求;

    • 2,根据请求参数生成代理请求,找到请求对应的实际控制器(HelloController)

    • 3,实际控制器处理请求,创建模型数据,访问数据库;

    • 4,返回模型数据;

    • 5,将模型响应给前端控制器(DispatcherServlet)

    • 6,前端控制器使用模型去渲染视图;

    • 7,将结果返回给前端控制器;

    • 8,前端控制器再将结果返回给请求者;

       

       

 

  • SpringMVC的执行原理:

    • 流程图:

       

    • 图为SpringMVC的一个完整的流程,实线表示SpringMVC框架提供的技术,不需要开发者实现,虚线表示需要开发者实现

       

    • 分析执行原理:

      • 1,DispatcherServlet是前置端控制器,是整个SpringMVC的控制中心,用户发出请求后,DispatcherServlet接收请求并拦截请求;

        我们假设请求的url为 : http://localhost:8080/SpringMVC/hello

         

      • 如上的URL拆分为三部分:

        • http://localhost:8080服务器域名;

        • SpringMVC部署在服务器上的web站点

        • hello表示控制器;

        • 通过分析,如上的URL表示为:请求位于服务器localhost:8080上的SpringMVC站点的hello控制器;

         

        • 2,HandleMapping为处理器映射,DispatcherServlet调用HandleMapping;HandleMapping根据请求url查找Handler

        • 3,HandlerExecution表示具体的Handler,其主要作用是根据url查找控制器,如上url被查找控制器为:hello

        • 4,HandlerExecution将解析后的信息传递给DispatcherServlet,如解析控制器映射等;

        • 5,HandlerAdapter表示处理器适配器,其按照特定的规则去执行Handler

        • 6,Handler让具体的Controller执行;

        • 7,Controller将具体的执行信息返回给HandlerAdapter,如ModelAndView

        • 8,HandlerAdapterModelAndView传递给DispatcherServlet

        • 9,DispatcherServlet调用视图解析器(ViewResolver)来解析HandlerAdapter传递的ModelAndView

        • 10,视图解析器ViewResolver将解析的逻辑视图名传给DispatcherServlet

        • 11,DispatcherServlet根据视图解析器解析的视图结果,调用具体的视图

        • 12,返回给用户;

 

 

 

 

 

 

 

 

posted @   gzs1024  阅读(22)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示