Spring Web MVC 基础

一、Spring Web MVC简介

1.1、MVC模式简介

*M-Model模型

模型(Model)的职责是负责业务逻辑。包含两层:业务数据和业务处理逻辑。比如实体类、DAO、Service都属于模型层。

*V-View视图

视图(View)的职责是负责显示界面和用户交互(收集用户信息)。属于视图的组件是不包含业务逻辑和控制逻辑的JSP。

*C-Controller控制器

控制器是模型层M和视图层V之间的桥梁,用于控制流程比如:在Servlet项目中的单一控制器ActionServlet。

1.2、什么是Spring Web MVC

  Spring Web MVC是spring框架一个非常重要的功能模块。实现了MVC结构,便于简单、快速开发MVC结构的web程序。Spring Web MVC提供的API封装了web开发中常用的功能,简化了web过程。

1.3、Spring Web MVC的核心组件

  Spring Web MVC提供了M、V和C相关的主要实现组件,具体如下

*DispatcherServlet(控制器,请求入口)

*HandlerMapping(控制器,请求派发)

*Controller(控制器,请求处理流程)

*ModelAndView(模型,封装业务处理结果和视图)

*VeiwResolver(视图,视图显示处理器)

1.4、Spring Web MVC的处理流程

Spring Web MVC的主要处理流程如下

*浏览器向Spring发出请求,请求交给前段控制器DispatcherServlet处理。

*控制器通过HandlerMapping找到相应的Controller组件处理请求。

*执行Controller组件约定方法处理请求,在约定方法调用模型组件完成业务处理。约定方法可以返回一个ModelAndView对象,封装了处理结果数据和视图名称信息。

*控制器接收ModelAndView之后,调用V诶我Resolve让自己,定位View(JSP)并传递数据信息,生成响应界面结果。

二、基于XML配置的MVC应用

2.1、搭建Spring Web MVC环境

搭建Spring Web MVC开发环境的主要步骤如下

*创建Web工程,导入Spring Web MVC相关开发包

  例如 Spring API、Web、webmvc等开发包

*在src下添加Spring的XML配置文件

  名称可以自定义,例如spring-mvc.xml

*在web.xml中配置DispatcherServlet前段控制器组件

  DispatcherServlet组件在spring mvc中已提供,只需要配置即可。

  配置DispatcherServlet时,同时指定xml配置文件。

2.2、DispatcherServlet控制器配置

2.3、HandlerMapping组件

  通过HandlerMapping组件,DispatcherServlet控制器可以将客户HTTP请求映射到Controller组件上。

*SimpleURLHandlerMapping

  维护一个HTTP请求和Controller映射关系列表(map),根据列表对应关系调用Controller。

*RequestMappingHandlerMapping

  RequestMappingHandlerAdapter

  在Controller类和方法使用@RequestMapping注解指定对应的客户HTTP请求(后续注解配置部分将信息介绍)。

2.4、Controller组件

  Controller组件负责执行具体的业务处理,可调用DAO等组件,编写时需要Controller借口及约定方法。

2.5、ModelAndView组件

  Controller组件约定的HandlerMapping方法执行后返回一个ModelAndView对象,该对象可封装模型数据和视图名响应信息。ModelAndView构造器如下

  ModelAndView(string viewName)

  ModelAndView(String viewName,Map model)

  viewName是jsp页面的名字

  model的数据存储到request的attribute中

2.6、ViewResolver组件

  所有Controller组件都返回一个ModelAndView实例,封装了视图名。Spring中的视图一名字为标识,视图解析器ViewResolver通过名字来解析视图。

  Spring提供了多种视图解析器,具体如下

InternalResourceViewResolver使用实例如下

如:视图名hello通过以上配置可以映射到/WEB-INF/jsp/hello.jsp

三、基于注解配置的MVC应用

3.1、@RequestMapping注解应用

  @RequestMapping可以用在类定义和方法定义上。

  @RequestMapping标记这个类或方法与哪一个客户请求对应

  

@Controller
@RequestMapping("day01")
public class HelloController{

  @RequestMapping("/hello.form")
  public String execute() threws Exeception{
        return "hello";
    }
}

*开启@RequestMapping注解映射,需要在Spring的XML配置文件中定义RequestMappingHandlerMapping(类定义前)和RequestMappingHandlerMapping(方法定义前)两个bean组件。

RequestMappingHandlerMapping和RequestMappingHandlerAdapter两个bean组件定义示例

从spring3.2版本开始可以使用下面xml配置简化

RequestMappingHandlerMapping和RequestMappingHandlerAdapter定义

<mvc:annotation-driven/>

3.2、@Controller注解应用

  推荐使用@Controller注解声明Controller组件,这样可以使得Controller定义更加灵活,可以不用实现Controller接口,请求处理的方法也可以灵活定义。

@Controller
@RequestMapping("/day01")
public class HelloController{

  @RequestMapping("/hello.form")
  public String execute() throws Exception{
       return "hello";
    }
}

  为了使@Controller注解生效,需要在Spring的xml配置文件中开启组件扫描定义,并指定Controller组件所在的包。

<context:component-scan base-package="com.tarena.controller"/>
时间: 2024-08-05 23:13:21

Spring Web MVC 基础的相关文章

Spring Web MVC基础

1.MVC模式简介 M-Model模型 模型(Model)的职责是负责业务逻辑.包含两层:业务数据和业务处理逻辑.比如实体类.DAO.Service都属于模型层. V-View视图 视图(View)的职责是负责显示界面和用户交互(手机用户信息).属于视图的组件是不包含业务逻辑和控制逻辑的JSP C-Controller 控制器 控制器是模型层M和视图层V之间的桥梁,用于控制流程比如: 在Servlet项目中的单一控制器ActionServlet. 2.什么是Spring Web MVC Spri

Spring Framework------&gt;version4.3.5.RELAESE-----&gt;Reference Documentation学习心得-----&gt;Spring Framework中的spring web MVC模块

spring framework中的spring web MVC模块 1.概述 spring web mvc是spring框架中的一个模块 spring web mvc实现了web的MVC架构模式,可以被用于开发web网站 spring web mvc 实现web网站的原理,如下图: 2.使用spring web mvc开发web应用的步骤 step1:在自己的工程中引入spring web mvc模块 step2:配置spring web mvc模块 中的DispatcherServlet,告

Spring Web MVC框架(八) 配置Spring Web MVC

这一篇文章对应于Spring参考文档 Configuring Spring MVC,讲的是Spring Web MVC各部分的配置方法,包括Java代码配置和XML文件配置以及MVC命名空间的使用方法. 启用MVC Java配置和XML命名空间 默认配置 要启用MVC Java配置(@Controller等各种注解)和XML命名空间,如果使用的是Java配置,在配置类上再添加@EnableWebMvc注解即可. @Configuration @EnableWebMvc public class

Features of Spring Web MVC

21.1.1 Features of Spring Web MVC Spring Web Flow Spring Web Flow (SWF) aims to be the best solution for the management of web application page flow. SWF integrates with existing frameworks like Spring MVC and JSF, in both Servlet and Portlet environ

1.Spring Web MVC有什么

Spring Web MVC使用了MVC架构模式的思想,将web层进行职责解耦. 同样也是基于请求驱动的,也就是使用请求-响应模型.它主要包含如下组件: DispatcherServlet :前端控制器 Handler Mapping :将请求映射到处理器 HandlerAdapter :把处理器包装为适配器,用来支持多种类型的处理器 View Resolver :视图解析器 Controller接口 :页面控制器/动作/处理器 LocalResolver:本地化解析,因为Spring支持国际化

Spring官方文档翻译——15.1 介绍Spring Web MVC框架

Part V. The Web 文档的这一部分介绍了Spring框架对展现层的支持(尤其是基于web的展现层) Spring拥有自己的web框架--Spring Web MVC,在前两章中会有介绍.剩下的章节则用来介绍Spring和其他web技术的集成,比如Struts和JSF(这里只提两个). 本节以对Spring MVC portlet框架的介绍结尾. 第十五章--Web MVC框架(Web MVC framework) 第十六章--视图技术(View technologie) 第十七章--

Sprig Web MVC 基础

1.MVC模式简介 M-Model模型 模型(Model)的职责是负责业务逻辑.包含两层:业务数据和业务处理逻辑.比如实体类.DAO.Service都属于模型层. V-View视图 视图(View)的职责是负责显示界面和用户交互(收集用户信息).属于视图的组件是不包含业务逻辑和控制逻辑的JSP C-Controller控制器 控制器是模型层M和视图层V之间的桥梁,用于控制流程 比如:在Servlet项目中的单一控制器ActionServlet. 2.什么是Spring Web MVC Sprin

4.Spring Web MVC处理请求的流程

具体执行步骤如下: 1.首先用户发送请求——>前端控制器,前端控制器根据请求信息(如URL)来决定选择哪一个页面控制器进行处理并把请求委托给它, 即以前的控制器的控制逻辑部分:图中的1.2步骤: 2.页面控制器接收到请求后,进行功能处理,首先需要收集和绑定请求参数到一个对象,这个对象在Spring Web MVC中叫命令对象,并进行验证,然后将命令对象 委托给业务对象进行处理:处理完毕后返回一个ModelAndView(模型数据和逻辑视图名):图中的3.4.5步骤: 3.前端控制器收回控制权,然

初试 spring web mvc

作为一名code需要了解更多的知识,编程方面的东西太多了,是个逐渐积累的过程.最近学习一下spring web mvc,写下我个人的一些经验. 1.准备jar包.spring mvc 已经到了版本4,网上的很多资料已经不在适用.给出的下载地址也无法适用.这是非常痛苦的.我费了好大功夫才获得这些JAR包. 在官方介绍文档里获得http://docs.spring.io/spring/docs/4.1.0.BUILD-SNAPSHOT/spring-framework-reference/htmls