Java之Spring mvc详解(非原创)
文章大纲
一、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详解(非原创)相关推荐
- Spring MVC详解(学习总结)
一.Sprig MVC简介 1.1介绍 1.2MVC是什么 二.Spring MVC实现原理 2.1核心组件 2.2工作流程 三.第一个Spring MVC 四.常用注解 五.参数绑定 5.1URL风 ...
- Redis基础知识详解(非原创)
文章大纲 一.Redis介绍 二.Redis安装并设置开机自动启动 三.Redis文件结构 四.Redis启动方式 五.Redis持久化 六.Redis配置文件详解 七.Redis图形化工具 八.Ja ...
- 搭建Spring MVC详解
文章目录 一.Spring 二.component-scan 三.搭建Spring MVC(一) 四.搭建Servlet 五.搭建Spring MVC(二) 六.搭建Spring MVC(三) 一.S ...
- MySQL数据库基础详解(非原创)
文章大纲 一.数据库简介 二.Mysql数据库简介 三.Mysql安装与服务启动(Windows版本) 四.Mysql图形化工具 五.Mysql存储引擎精讲 六.Mysql数据类型介绍 七.Mysql ...
- 产品经理之市场需求分析详解(非原创)
文章大纲 一.为什么要进行市场需求 二.市场需求分析要素实战 三.市场需求文档(MRD)模板下载 四.参考文章 一.为什么要进行市场分析 市场分析在中小型公司中,很难得以真正实施,但进行市场分析 ...
- 产品经理之PRD详解(非原创)
文章大纲 一.PRD基础 二.PRD要素讲解 三.相关模板下载 四.参考文章 一.PRD基础 1. PRD简介 PRD中文意思为:产品需求文档.PRD的主要使用对象有:开发.测试.项目经理.交互 ...
- http数据绑定spring mvc详解
转载于:https://www.cnblogs.com/panxuejun/p/6834365.html
- Spring Web MVC详解
Spring Web MVC详解 原创 2016年03月23日 10:55:57 标签: 421 编辑 删除 2.1.Spring Web MVC是什么 Spring Web MVC是一种基于Java ...
- Spring IoC详解
Spring IoC详解 原文地址:Spring IoC详解 写在最前 本文将主要写Spring最核心的部分,为什么写这篇的原因也是因为在刚开始学习Spring的时候,学得太粗糙了.感觉学了个皮毛,从 ...
最新文章
- 调试coffee script 的一个技巧
- 一次PostgreSQL行估算偏差导致的慢查询分析
- 用VC和MinGW导出dll的def和lib(a)文件
- c mysql安装教程视频_MySQL安装教程 - Windows安装MySQL教程 - 小白式安装MySQL教程 - 青衫慧博客...
- JavaScript是如何工作的:Web推送通知的机制
- 排序算法之——希尔排序分析
- linux 修改文件日期,Linux中使用touch命令来修改文件的时间
- 一文详解ERP的提取原理
- 使用stylebook制作精美界面的方法(firemonkey)
- ggplot2作图之NMDS图
- 干货 | 4小时上线一个接口,高效统一的携程酒店数据服务平台实践
- 数据库设计-UML模型
- mysql bitmap index_位图索引:原理(BitMap index)
- 宇视科技android面试_在宇视科技工作是怎样的体验?
- OraDump导出套件
- linux的iso镜像文件,linux系统安装iso文件方法
- Creating a Font for Apps and Games with Glyphs 如何使用Glyphs为应用和游戏创建字体 Lynda课程中文字幕
- EOJ Contest61 2018研究生面试机考(软件工程)个人题解
- Python: 使用xlrd读取Excel文件
- Linux装逼命令行以及实用命令行
热门文章
- Docker安装Apache与运行简单的web服务——httpd helloworld
- CentOS Docker安装配置部署Golang web helloworld
- 2022-2028年中国汽车内饰行业市场需求与投资规划分析报告
- BCELoss BCEWithLogitsLoss 多标签损失函数
- 最强 NLP 预训练模型库 PyTorch-Transformers 正式开源:支持 6 个预训练框架,27 个预训练模型...
- LeetCode中等题之两两交换链表中的节点
- 如何在 CPU 上优化 GEMM
- TVM图优化与算子融合
- 3层-CNN卷积神经网络预测MNIST数字
- 可视化反投射:坍塌尺寸的概率恢复:ICCV9论文解读