SpringMVC学习

1、概述

Spring MVC是一种基于Java实现MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行解耦,基于请求-响应模型帮助我们简化日常web系统的开发。

Spring MVC框架就是一种MVC框架。其前端控制器是DispatcherServlet主要用于控制流程;应用控制器为Handler Mapping-处理器映射器进行处理器管理和View Resolver-视图解析器进行视图的解析;页面控制器/动作跳转处理器为Controller接口;支持本地化解析、文件上传等;提供了十分灵活的数据校验、格式化和数据绑定机制;采用约定优于配置的契约式编程方式。

Spring MVC框架围绕DispatcherServlet这个核心展开,DispatcherServlet的作用是截获请求并组织一系列组件共同完成请求的处理工作。

2、Spring MVC的特点

l  容易设计清爽干净的web层。

l  与Spring框架集成(IOC容器、AOP等)。

l  提供约定优于配置的契约式编程支持。

l  更加快捷、简单的单元测试。

l  灵活的URL到控制器的映射。

l  支持Rest风格。

l  ...........................

3、Spring MVC体系结构

Spring MVC框架也是一个基于驱动的MVC框架,通过实现Model-View-Controller模式很好的将数据、业务、展现进行分离。Spring Web MVC的设计是围绕前端控制器DispatcherServlet来展开的,DispatcherSerlvet负责将请求根据映射规则分发给相应控制器 (Controller),根据可配置的Handler mappings处理请求并转到相应的视图。Spring MVC的整体处理流程如下:

图3-1 Spring MVC处理流程

由上图可知,Spring MVC大致的执行流程如下:

1、首先浏览器发送请求给前端控制器DispatcherServlet,DispatcherSerlvet根据请求信息,基于一定的原则选择合适的控制器进行处理并把 请求委托给它。

2、页面控制器接收到请求之后进行功能处理,首先需要收集、绑定请求参数到一个对象(命令对象),并进行验证,然后将该对象委托给业务对象进行处理(service层);业务对象处理之后控制器将返回一个ModelAndView(模型数据和逻辑视图名);

3、DispatcherServlet根据返回的逻辑视图名,选择合适的视图进行渲染(界面展示、资源加载),并把模型数据传入以便视图渲染。

4、前端控制器将响应返回个客户端浏览器。

4、Spring MVC版本的helloworld

1)准备jar包

2)文件结构

3)web.xml

在web.xml文件中配置DispatcherServlet,在web.xml文件中添加如下片段:

4)Spring配置文件 hello-servlet.xml

在这个文件中可以定义各种各样的Spring MVC需要使用的Bean。

5)控制器类HelloController

首先通过@Controller注解标示这个类是一个控制器,接下来通过@RequestMapping注解为制定方法sayHello处理哪些请求,在这个例子中,sayHello方法仅仅处理GET类型的/hello请求。

sayHello方法接收一个org.springframework.ui.Model类型的参数model,SpringMVC会自动将请求参数封装进model中,我们可以简单的把model理解为一个Map。我们在方法中从model中取出参数person的值并且打印出来,接下来往 model中添加一个属性msg,值为"Hello,World!",然后返回视图名称hello。

6)在Spring MVC配置文件中配置一个视图解析器

添加了mvc名称空间,接下来启用了spring的自动扫描,并且设置了默认的注解映射支持。

这里需要重点解释的是配置文件中的那个bean。它的类型是是Spring MVC中最常用的一种视图解析器,当然还有很多其他的类型。

其中prefix属性是指视图前缀,suffix是视图后缀,这里配置的是.jsp,我们在控制器的方法 sayHello中返回的是hello,再结合这里的配置,对应的完整的视图是:/WEB-INF/jsp/hello.jsp。

7)hello.jsp

8)演示

5、SSH:Spring MVC+Spring+hibernate

1)准备jar包

此处略

2)文件结构

3)web.xml

配置字符集略

4)spring-bean.xml


5)spring-common.xml

6)后台实现

Dao、entity、manager包下的类实现略。

UserController.java代码实现如下:

7)index.jsp

8)通过注解实现实体类和数据库表的绑定

  1. User
    Bean

2、spring-common.xml


6、Spring MVC 配置详解

以上4个方法示例,是一个Controller里含有不同的请求url,也可以采用一个url访问,通过url参数来区分访问不同的方法

 其实RequestMapping在Class上,可看做是父Request请求url,而RequestMapping在方法上的可看做是子Request请求url,父子请求url最终会拼起来与页面请求url进行匹配,因此RequestMapping也可以这么写:

在SpringMVC中常用的注解还有@PathVariable,@RequestParam,@PathVariable标记在方法的参数上,利用它标记的参数可以利用请求路径传值,看下面一个例子

7、AJAX+JSON

a) 页面显示

b) 响应事件

c) 效果演示

d) 后台实现

e)        
所需jar包

注:此笔记内容参考了网上部分文章,因距此笔记内容编写时间较长,具体出处已忘,若原作者见此文章感觉侵权,请联系我,我会把参考链接挂上。over

Spring MVC 学习笔记(整理)的更多相关文章

  1. Spring MVC 学习笔记一 HelloWorld

    Spring MVC 学习笔记一 HelloWorld Spring MVC 的使用可以按照以下步骤进行(使用Eclipse): 加入JAR包 在web.xml中配置DispatcherServlet ...

  2. Spring MVC 学习笔记12 —— SpringMVC+Hibernate开发(1)依赖包搭建

    Spring MVC 学习笔记12 -- SpringMVC+Hibernate开发(1)依赖包搭建 用Hibernate帮助建立SpringMVC与数据库之间的联系,通过配置DAO层,Service ...

  3. Spring MVC 学习笔记11 —— 后端返回json格式数据

    Spring MVC 学习笔记11 -- 后端返回json格式数据 我们常常听说json数据,首先,什么是json数据,总结起来,有以下几点: 1. JSON的全称是"JavaScript ...

  4. Spring MVC 学习笔记10 —— 实现简单的用户管理(4.3)用户登录显示全局异常信息

    </pre>Spring MVC 学习笔记10 -- 实现简单的用户管理(4.3)用户登录--显示全局异常信息<p></p><p></p>& ...

  5. Spring MVC 学习笔记9 —— 实现简单的用户管理(4)用户登录显示局部异常信息

    Spring MVC 学习笔记9 -- 实现简单的用户管理(4.2)用户登录--显示局部异常信息 第二部分:显示局部异常信息,而不是500错误页 1. 写一个方法,把UserException传进来. ...

  6. Spring MVC 学习笔记8 —— 实现简单的用户管理(4)用户登录

    Spring MVC 学习笔记8 -- 实现简单的用户管理(4)用户登录 增删改查,login 1. login.jsp,写在外面,及跟WEB-INF同一级目录,如:ls Webcontent; &g ...

  7. Spring MVC 学习笔记2 - 利用Spring Tool Suite创建一个web 项目

    Spring MVC 学习笔记2 - 利用Spring Tool Suite创建一个web 项目 Spring Tool Suite 是一个带有全套的Spring相关支持功能的Eclipse插件包. ...

  8. Spring MVC 学习笔记1 - First Helloworld by Eclipse【& - java web 开发Tips集锦】

    Spring MVC 学习笔记1 - First Helloworld by Eclipse reference:http://www.gontu.org 1. 下载 Spring freamwork ...

  9. spring MVC学习笔记

    为开发团队选择一款优秀的MVC框架是件难事儿,在众多可行的方案中决择需要很高的经验和水平.你的一个决定会影响团队未来的几年.要考虑方面太多: 1.简单易用,以提高开发效率.使小部分的精力在框架上,大部 ...

随机推荐

  1. C# 消息处理机制及自定义过滤方式

    一.消息概述 Windows 下应用程序的执行是通过消息驱动的.消息是整个应用程序的工作引擎,我们需要理解掌握我们使用的编程语言是如何封装消息的原理. 1. 什么是消息(Message) 消息就是通知 ...

  2. 子iframe刷新父ifrmae的方法

    //子iframe刷新父ifrmae的方法parent.location.href="";parent.location.reload();

  3. OC三种方法实现定时器

    在软件开发过程中,我们常常需要在某个时间后执行某个方法,或者是按照某个周期一直执行某个方法.在这个时候,我们就需要用到定时器. 在iOS中有很多方法完成定时器的任务,例如 NSTimer.CADisp ...

  4. easymock入门贴

    from:http://macrochen.iteye.com/blog/298032 关于EasyMock常见的几个问题, 这里(http://ozgwei.blogspot.com/2007/06 ...

  5. 【ToolGood.Words】之【StringSearch】字符串搜索——基于BFS算法

    字符串搜索中,BFS算法很巧妙,个人认为BFS算法效率是最高的. [StringSearch]就是根据BFS算法并优化. 使用方法: string s = "中国|国人|zg人|fuck|a ...

  6. windows win7 win10 多系统启动菜单 多系统引导设置

    win键+R 输入msconfig 根据显示的程序设置(除非你看不懂文字)

  7. js 创建List<Map> 这种格式的集合

    //赋值 var list_map = new Array(); for ( var i = 0; i < 10; i++) { list_map.push({baidux:'baidux'+i ...

  8. jquery获取表单的值

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  9. java画图输出到磁盘

    直奔主题,实战例子如下 package com.yuanmeng.jase; import java.awt.Color; import java.awt.Font; import java.awt. ...

  10. Eclipse配置PyDev插件

    安装python解释器 安装PyDev: 首先需要去Eclipse官网下载:http://www.eclipse.org/,Eclipse需要JDK支持,如果Eclipse无法正常运行,请到Java官 ...