文章大纲

一、Spring mvc介绍
二、Spring mvc代码实战
三、项目源码下载
四、参考文章

一、Spring mvc介绍

1. 什么是springmvc

  springmvc是spring框架的一个模块,springmvc和spring无需通过中间整合层进行整合。springmvc是一个基于mvc的web框架。

2. mvc设计模式在b/s系统 下的应用

3. Spring mvc框架执行流程

  第一步:发起请求到前端控制器(DispatcherServlet)
  第二步:前端控制器请求HandlerMapping查找 Handler,可以根据xml配置、注解进行查找,通过@RequestMapping(value = "/test")中的test进行查找
  第三步:处理器映射器HandlerMapping向前端控制器返回Handler
  第四步:前端控制器调用处理器适配器去执行Handler
  第五步:处理器适配器去执行Handler
  第六步:Handler执行完成给适配器返回ModelAndView
  第七步:处理器适配器向前端控制器返回ModelAndView,ModelAndView是springmvc框架的一个底层对象,包括 Model和view
  第八步:前端控制器请求视图解析器去进行视图解析,根据逻辑视图名解析成真正的视图(jsp)
  第九步:视图解析器向前端控制器返回View
  第十步:前端控制器进行视图渲染,视图渲染将模型数据(在ModelAndView对象中)填充到request域
  第十一步:前端控制器向用户响应结果

4. Spring mvc组件介绍

(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...)

二、Spring mvc代码实战

  Spring mvc常见使用功能有数据交互方式(ModelAndView和JSON)、静态资源的解析、参数校验、全局异常处理、拦截器、上传图片等。

1. 创建maven的javaweb项目

文章重点在于讲解Spring mvc功能,因此创建项目方式不进行深入讲解,创建后的项目目录如下:

2. Spring mvc基本配置

2.1 在pom.xml添加maven依赖

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>springmvc_demo</groupId> <artifactId>springmvc_demo</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>war</packaging> <name/> <description/> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <!-- spring版本号 --> <spring.version>4.2.5.RELEASE</spring.version> </properties> <dependencies> <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.8.2</version> </dependency> <dependency> <groupId>org.apache.openejb</groupId> <artifactId>javaee-api</artifactId> <version>5.0-1</version> <scope>provided</scope> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2</version> <scope>provided</scope> </dependency> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> <version>2.1</version> <scope>provided</scope> </dependency> <!-- 分页 --> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>4.1.4</version> </dependency> <!--测试包--> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <!-- c3p0数据库连接池 --> <dependency> <groupId>c3p0</groupId> <artifactId>c3p0</artifactId> <version>0.9.1.2</version> </dependency> <!-- commons工具包 --> <!--图片上传相关的--> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.1</version> </dependency> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.6</version> </dependency> <dependency> <groupId>commons-beanutils</groupId> <artifactId>commons-beanutils</artifactId> <version>1.7.0</version> </dependency> <dependency> <groupId>commons-codec</groupId> <artifactId>commons-codec</artifactId> <version>1.7</version> </dependency> 

转载于:https://www.cnblogs.com/WUXIAOCHANG/p/10765264.html

Java之Spring mvc详解(非原创)相关推荐

  1. Spring MVC详解(学习总结)

    一.Sprig MVC简介 1.1介绍 1.2MVC是什么 二.Spring MVC实现原理 2.1核心组件 2.2工作流程 三.第一个Spring MVC 四.常用注解 五.参数绑定 5.1URL风 ...

  2. Redis基础知识详解(非原创)

    文章大纲 一.Redis介绍 二.Redis安装并设置开机自动启动 三.Redis文件结构 四.Redis启动方式 五.Redis持久化 六.Redis配置文件详解 七.Redis图形化工具 八.Ja ...

  3. 搭建Spring MVC详解

    文章目录 一.Spring 二.component-scan 三.搭建Spring MVC(一) 四.搭建Servlet 五.搭建Spring MVC(二) 六.搭建Spring MVC(三) 一.S ...

  4. MySQL数据库基础详解(非原创)

    文章大纲 一.数据库简介 二.Mysql数据库简介 三.Mysql安装与服务启动(Windows版本) 四.Mysql图形化工具 五.Mysql存储引擎精讲 六.Mysql数据类型介绍 七.Mysql ...

  5. 产品经理之市场需求分析详解(非原创)

    文章大纲 一.为什么要进行市场需求 二.市场需求分析要素实战 三.市场需求文档(MRD)模板下载 四.参考文章 一.为什么要进行市场分析    市场分析在中小型公司中,很难得以真正实施,但进行市场分析 ...

  6. 产品经理之PRD详解(非原创)

    文章大纲 一.PRD基础 二.PRD要素讲解 三.相关模板下载 四.参考文章 一.PRD基础 1. PRD简介    PRD中文意思为:产品需求文档.PRD的主要使用对象有:开发.测试.项目经理.交互 ...

  7. http数据绑定spring mvc详解

    转载于:https://www.cnblogs.com/panxuejun/p/6834365.html

  8. Spring Web MVC详解

    Spring Web MVC详解 原创 2016年03月23日 10:55:57 标签: 421 编辑 删除 2.1.Spring Web MVC是什么 Spring Web MVC是一种基于Java ...

  9. Spring IoC详解

    Spring IoC详解 原文地址:Spring IoC详解 写在最前 本文将主要写Spring最核心的部分,为什么写这篇的原因也是因为在刚开始学习Spring的时候,学得太粗糙了.感觉学了个皮毛,从 ...

最新文章

  1. 调试coffee script 的一个技巧
  2. 一次PostgreSQL行估算偏差导致的慢查询分析
  3. 用VC和MinGW导出dll的def和lib(a)文件
  4. c mysql安装教程视频_MySQL安装教程 - Windows安装MySQL教程 - 小白式安装MySQL教程 - 青衫慧博客...
  5. JavaScript是如何工作的:Web推送通知的机制
  6. 排序算法之——希尔排序分析
  7. linux 修改文件日期,Linux中使用touch命令来修改文件的时间
  8. 一文详解ERP的提取原理
  9. 使用stylebook制作精美界面的方法(firemonkey)
  10. ggplot2作图之NMDS图
  11. 干货 | 4小时上线一个接口,高效统一的携程酒店数据服务平台实践
  12. 数据库设计-UML模型
  13. mysql bitmap index_位图索引:原理(BitMap index)
  14. 宇视科技android面试_在宇视科技工作是怎样的体验?
  15. OraDump导出套件
  16. linux的iso镜像文件,linux系统安装iso文件方法
  17. Creating a Font for Apps and Games with Glyphs 如何使用Glyphs为应用和游戏创建字体 Lynda课程中文字幕
  18. EOJ Contest61 2018研究生面试机考(软件工程)个人题解
  19. Python: 使用xlrd读取Excel文件
  20. Linux装逼命令行以及实用命令行

热门文章

  1. Docker安装Apache与运行简单的web服务——httpd helloworld
  2. CentOS Docker安装配置部署Golang web helloworld
  3. 2022-2028年中国汽车内饰行业市场需求与投资规划分析报告
  4. BCELoss BCEWithLogitsLoss 多标签损失函数
  5. 最强 NLP 预训练模型库 PyTorch-Transformers 正式开源:支持 6 个预训练框架,27 个预训练模型...
  6. LeetCode中等题之两两交换链表中的节点
  7. 如何在 CPU 上优化 GEMM
  8. TVM图优化与算子融合
  9. 3层-CNN卷积神经网络预测MNIST数字
  10. 可视化反投射:坍塌尺寸的概率恢复:ICCV9论文解读