zoukankan      html  css  js  c++  java
  • SpringMVC

    MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。最典型的MVC就是JSP + servlet + javabean的模式

    Spring Web MVC是一种基于Java实现的Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发,Spring Web MVC也是要简化我们日常Web开发 SpringMVC是spring框架的一个子模块,springmvc和spring无需通过中间整合层进行整合。

    SpringMVC处理流程图

     

     

    处理流程

    整个处理过程从一个HTTP请求开始:

    1)DispatcherServlet接收到请求后,根据对应配置文件中配置的处理器映射,找到对应的处理器映射项(HandlerMapping),根据配置的映射规则,找到对应的处理器(Handler)。接着再通过相应的HandlerAdapter处理该Handler

    2) HandlerAdapter在对Handler进行处理之后会返 回一个ModelAndView传给DispatcherServlet, ModelAndView包含了处理结果的视图和视图中要使用的数据。

    3)DispatcherServlet根据得到的ModelAndView中的视图对象,找到一个合适的ViewReslover(视图解析器),根据视图解析器的配置,DispatcherServlet将视图要显示的数据传给对应的视图,最后给浏览器构造一个HTTP响应。

    组件说明

    1、前端控制器DispatcherServlet(不需要程序员开发) 作用接收请求,响应结果,相当于转发器,中央处理器。 有了DispatcherServlet减少了其它组件之间的耦合度。

     2、处理器映射器HandlerMapping(不需要程序员开发) 作用:根据请求的url查找Handler  

    3、处理器适配器HandlerAdapter(不需要程序员开发) 作用:按照特定规则(HandlerAdapter要求的规则)去执行Handler  

    4、处理器Handler(需要程序员开发) 注意:编写Handler时按照HandlerAdapter的要求去做,这样适配器才可以去正确执行Handler  

    5、视图解析器View resolver(不需要程序员开发) 作用:进行视图解析,根据逻辑视图名解析成真正的视图(view)

     6、视图View(需要程序员开发jsp) View是一个接口,实现类支持不同的View类型(jsp、freemarker、pdf...)

    搭建环境

    1、增加Spring的JAR 包。注意不能缺少spring-webmvc.XXX.jar

    2、在web.xml 中配置DispatcherServlet 控制器

    3、在springmvc.xml 中进行配置

    编写Handler 和jsp

     

    测试运行

    其他非注解映射器

     

     

     

    注解方式配置方式

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

  • 相关阅读:
    理解Python的With语句
    python按行读取文件,如何去掉换行符" "
    如何使用科大 mirrors 加速 pip?
    python os.path模块常用方法详解
    Python ConfigParser的使用
    mono-project
    Ubuntu 15.04下MySQL 5.6.25不支持中文解决办法
    ubuntu 15.04开放mysql远程连接
    在Linux(Ubuntu/openSUSE/CentOS)下配置ASP.NET(Apache + Mono)转载+补充
    Asp.net MVC @Html.DisplayNameFor中文乱码解决办法
  • 原文地址:https://www.cnblogs.com/LPJ-BLOG/p/12544228.html
Copyright © 2011-2022 走看看