SpringMVC——概述

  • Spring 为展现层提供的基于 MVC 设计理念的优秀的Web 框架,是目前最主流的 MVC 框架之一
  • Spring3.0 后全面超越 Struts2,成为最优秀的 MVC 框架
  • Spring MVC 通过一套 MVC 注解,让 POJO 成为处理请求的控制器,而无须实现任何接口。
  • 支持 REST 风格的 URL 请求
  • 采用了松散耦合可插拔组件结构,比其他 MVC 框架更具扩展性和灵活性

一、MVC :Model-View-Control

  框架性质的C 层要完成的主要工作:封装web 请求为一个数据对象、调用业务逻辑层来处理数据对象、 返回处理数据结果及相应的视图给用户。

二、简要概述springmvc

  Spring C 层框架的核心是 DispatcherServlet,它的作用是将请求分发给不同的后端处理器,也即 使用 了一种被称为Front Controller 的模式。 Spring的C 层框架使用了后端控 制器来、映射处理器和视图解析器来共同完成C 层框架的主要工作。并且spring 的C 层框架还真正地把 业务层处理的数据结果和相应的视图拼成一个对象,即我们后面会经常用到的ModelAndView 对象。

三、 简析spring mvc 工作原理

  1. 启动服务器,根据web.xml 的配置加载前端控制器(也称总控制器) DispatcherServlet 。在加载时、会完成一系列的初始化动作。
  2. 根据servlet 的映射请求,并参照“控制器配置文 件”(即spmvc-servlet.xml 这样的配置)文件,把具体的请求分发给特定的后端控制器进行处理
  3. 后端控制器调用相应的逻辑层代码,完成处理并返回视图对象( ModelAndView )给前端处理器。
  4. 前端控制器根据后端控制器返回的 ModelAndView 对象,并结合一些配置(后面有说明),返回一 个相应的页面给客户端。

四、架构流程

  1、  用户发送请求至前端控制器DispatcherServlet

  2、  DispatcherServlet收到请求调用HandlerMapping处理器映射器。

  3、  处理器映射器根据请求url找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。

  4、  DispatcherServlet通过HandlerAdapter处理器适配器调用处理器

  5、  执行处理器(Controller,也叫后端控制器)。

  6、  Controller执行完成返回ModelAndView

  7、  HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet

  8、  DispatcherServlet将ModelAndView传给ViewReslover视图解析器

  9、  ViewReslover解析后返回具体View

  10、 DispatcherServlet对View进行渲染视图(即将模型数据填充至视图中)。

  11、 DispatcherServlet响应用户

五、组件说明

以下组件通常使用框架提供实现:

  • DispatcherServlet:前端控制器

用户请求到达前端控制器,它就相当于mvc模式中的c,dispatcherServlet是整个流程控制的中心,由它调用其它组件处理用户的请求,dispatcherServlet的存在降低了组件之间的耦合性。

  • HandlerMapping:处理器映射器

HandlerMapping负责根据用户请求找到Handler即处理器,springmvc提供了不同的映射器实现不同的映射方式,例如:配置文件方式,实现接口方式,注解方式等。

  • Handler:处理器

Handler 是继DispatcherServlet前端控制器的后端控制器,在DispatcherServlet的控制下Handler对具体的用户请求进行处理。由于Handler涉及到具体的用户业务请求,所以一般情况需要程序员根据业务需求开发Handler。

  • HandlAdapter:处理器适配器

通过HandlerAdapter对处理器进行执行,这是适配器模式的应用,通过扩展适配器可以对更多类型的处理器进行执行。

  • View Resolver:视图解析器

View Resolver负责将处理结果生成View视图,View Resolver首先根据逻辑视图名解析成物理视图名即具体的页面地址,再生成View视图对象,最后对View进行渲染将处理结果通过页面展示给用户。

  • View:视图

springmvc框架提供了很多的View视图类型的支持,包括:jstlView、freemarkerView、pdfView等。我们最常用的视图就是jsp。一般情况下需要通过页面标签或页面模版技术将模型数据通过页面展示给用户,需要由程序员根据业务需求开发具体的页面。

六、SpringMVC-HelloWorld

步骤:

  1. 加入 jar 包
  2. 在 web.xml 中配置 DispatcherServlet
    <!-- 配置 DispatcherServlet -->
    <servlet>
        <servlet-name>dispatcherServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <!-- 配置 DispatcherServlet 的一个初始化参数: 配置 SpringMVC 配置文件的位置和名称 -->
        <!--
            实际上也可以不通过 contextConfigLocation 来配置 SpringMVC 的配置文件, 而使用默认的.
            默认的配置文件为: /WEB-INF/<servlet-name>-servlet.xml
        -->
        <!--
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:springmvc.xml</param-value>
        </init-param>
        -->
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>dispatcherServlet</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

 简要说明 :DispatcherServlet 就是一个Servlet ,也是对请求进行转发的核心Servlet 。在这里即所 有的请求将首先被DispatcherServlet 处理,而DispatcherServlet 它要作的工作就是对请求进行分发(也即是说把请求转发给具体的Controller )。可以简单地认为,它就是一个总控处理器,但事实上它除了具备总控处理理器对请求进行分发的能力外,还与spring 的IOC 容器完全集成在一起,从而可以 更好地使用spring 的其它功能。

 3.加入 Spring MVC 的配置文件

<!--SpringMVC只是控制网站跳转逻辑  -->
    <!-- 只扫描控制器 -->
    <context:component-scan base-package="com.nchu.mybatis" use-default-filters="false">
        <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
    </context:component-scan>

    <!-- 配置视图解析器: 如何把 handler 方法返回值解析为实际的物理视图 -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">  <!--配置视图解析器:视图名称解析器:将视图逻辑 名解析为: /WEB-INF/pages/.jsp-->
        <property name="prefix" value="/WEB-INF/pages/"></property>
        <property name="suffix" value=".jsp"></property>
    </bean>

4.编写处理请求的处理器,并标识为处理器

5.编写视图

原文地址:https://www.cnblogs.com/realshijing/p/8111325.html

时间: 2024-10-12 17:15:31

SpringMVC——概述的相关文章

001 springmvc概述

一 . 概述 springmvc作为一个当前最为流行的mvc框架,从本质的设计上讲还是延续了前端控制器模式来完成整合设计. 但是springmvc凭借和spring的无缝连接,获得了IOC和AOP的能力,于是功能强大了很多. 本次,我们需要从原理上说一下springmvc,然后找到一些扩展点,完成对springmvc的学习. 二 .springmvc的架构 在上面的图中,我们看到了整个springmvc的运行流程. 我们发现整个流程还是比较复杂的,其实当我们在后面分析的时候,整个流程还会更加的复

1.SpringMVC 概述

SpringMVC 简介 SpringMVC 也叫 Spring web mvc ,属于表现层的框架.SpringMVC 是 Spring框架的一部分,是在Spring3.0后发布的 第一个SpringMVC 程序 1.导入jar包 2.注册中央调度器 a)<load-on-startup/>  值大于等于0时,表示这个servlet随服务器启动 b)<url-pattern/>  不能写为 /*,最好也不要写为 /,建议写为 *.do的形式 c) 配置文件与名称(这里必须要设置一

SpringMVC概述

SpringMVC为展现层提供的基于MVC设计理念的优秀的WEB框架,是目前主流的MVC框架之一.Spring 3.0之后,超越Struts2成为最优秀的MVC框架. SpringMVC通过一套MVC注解,让POJO成为处理请求的控制器,而无须实现任何接口. 支持REST风格的URL请求.

一、SpringMVC 概述

SpringMVC为展现层提供的基于MVC设计理念的优秀的WEB框架,是目前主流的MVC框架之一.Spring 3.0之后,超越Struts2成为最优秀的MVC框架. SpringMVC通过一套MVC注解,让POJO成为处理请求的控制器,而无须实现任何接口. 支持REST风格的URL请求.

一 SpringMvc概述&amp;入门

what: SpringMVC:类似Struts2的MVC框架,属于SpringFrameWork的后续产品. why: 原文地址:https://www.cnblogs.com/ltfxy/p/10415958.html

01.SpringMVC概述

springMVC架构 SpringMVC是Spring框架的一个模块,Spring和SpringMVC无需通过中间整合层进行整合.SpringMVC是基于MVC架构的WEB框架.SpringMVC框架是一个基于请求驱动的Web框架,使用了前端控制器模式来进行设计,再根据请求映射规则分发给相应的页面控制器(动作/处理器)进行处理. springMVC请求处理流程 组件说明: 1.DispatcherServlet:前端控制器.用户请求到达前端控制器,它就相当于mvc模式中的c,dispatche

SpringMVC概述(2)

1.Spring Web MVC是服务到工作者模式的实现. 前端控制器是DispatcherServlet: 应用控制器包含处理器映射和视图解析器.处理器映射器(HandlerMapping)进行处理器管理和视图解析器(View Resolver)进行视图管理: 页面控制器/动作/处理器为Controller接口(仅包含ModelAndView handleRequest(request, response) 方法)的实现(也可以是任何的POJO类): 支持本地化(Locale)解析.主题(Th

《SpringMVC从入门到放肆》一、概述

一.SpringMVC概述 View Service Dao DB Spring MVC interface interface Mysql impls impls SpringMVC也叫Spring web mvc,属于表现层框架.SpringMVC是Spring框架的一部分,是在Spring3.0后发布的. 二.第一个SpringMVC程序功能描述: 用户提交一个请求,服务器端处理器在接收到这个请求后,向客户端响应一条欢迎信息.新建项目: Eclipse:File-->New-->Web

SpringMVC配置实例

一.SpringMVC概述 MVCII模式实现的框架技术 Model--业务模型(Biz,Dao...) View--jsp及相关的jquery框架技术(easyui) Contraller--DispatcherServlet以及控制器组件 二.控制器组件 1).DispatherServlet 2).xxx-servlet.xml文件 3).转向模型ModelAndView类 4).相应的Aop组件和拦截器组件 三.springMvc的开发步骤 1.在当前工程引入spring组件包 2.编写