框架系列课程-SpringMVC课程
文章目录
- 1. SpringMVC
- 1.1 SpringMVC介绍
- 1.2 SpringMVC 入门案例
- 1.2.1 添加jar包
- 1.2.2 编辑YML配置文件
- 1.2.3 编辑Controller
- 1.2.4 关于thymeleaf 语法说明:
- 1.2.5 页面效果展现
- 2 SpringMVC调用原理
- 3 SpringMVC 用法
- 3.1 简化ModelAndView操作
- 3.1.1 编辑Controller方法
- 3.1.2 页面效果测试
- 3.2 页面参数接收
- 3.2.1 编辑页面
- 3.2.2 编辑UserController
- 3.2.3 简化参数接收
- 3.3 @RequestParam注解说明
- 3.3.1 功能说明
- 3.3.2 编辑UserController
- 3.4 同名提交问题
- 3.4.1 编辑HTML页面
- 3.4.2 编辑UserController
- 3.5 使用对象接收参数
- 3.5.1 编辑User对象
- 3.5.2 编辑UserController
- 3.6 为对象引用赋值
- 3.6.1 准备Dog对象
- 3.6.2 编辑页面HTML
- 3.7 转发和重定向
- 3.7.1 转发
- 3.7.1.1 什么是转发
- 3.7.1.2 转发原理
- 3.7.1.3 转发特点
- 3.7.2 重定向
- 3.7.2.1 什么是重定向
- 3.7.2.2 重定向原理图
- 3.7.2.3 重定向特点
- 3.8 RestFul
- 3.8.1restFul结构介绍
- 3.9 @ResponseBody注解
- 3.9.1 JSON结构
- 3.9.2 @ResponseBody
- 3.10 SpringBoot/SpringMVC/Mybatis整合
- 3.10.1 编辑页面
- 3.10.2 页面效果展现
1. SpringMVC
1.1 SpringMVC介绍
Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,从而在使用Spring进行WEB开发时,可以选择使用Spring的Spring MVC框架或集成其他MVC开发框架,如Struts1(现在一般不用),Struts 2(一般老项目使用)等等。
1.2 SpringMVC 入门案例
1.2.1 添加jar包
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><!--thymeleaf导入模版工具类--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency>
1.2.2 编辑YML配置文件
#配置模版工具类
spring:thymeleaf:#设置页面前缀prefix: classpath:/templates/#设置页面后缀suffix: .html#是否使用缓存cache: false
1.2.3 编辑Controller
@Controller
public class HelloController {@RequestMapping("/hello")public ModelAndView hello(){ModelAndView modelAndView = new ModelAndView("hello");modelAndView.addObject("name","SpringMVC测试");return modelAndView;}
}
1.2.4 关于thymeleaf 语法说明:
1.标签中取值: <h1>[[${name}]]</h1>
2.标签内获取文本: <h1 th:text="${name}"></h1>
3. 标签内获取value: <input name="name" th:value="${name}"/>
引入头标签: <html lang="en" xmlns:th="http://www.thymeleaf.org">
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><h1>Hello 入门案例</h1><h1>[[${name}]]</h1><h1 th:text="${name}"></h1><input name="name" th:value="${name}"/>
</body>
</html>
1.2.5 页面效果展现
2 SpringMVC调用原理
3 SpringMVC 用法
3.1 简化ModelAndView操作
3.1.1 编辑Controller方法
@RequestMapping("/hello")public String hello(Model model){model.addAttribute("name", "简化mvc结构");return "hello";}
3.1.2 页面效果测试
3.2 页面参数接收
3.2.1 编辑页面
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head><meta charset="UTF-8"><title>用户注册</title>
</head>
<body>
<form action="/user/addUser" method="POST"><table border="1px" cellspacing="0" align="center" width="350px" style="margin-top: 50px"><tr align="center"><td colspan="2"><h1>表格数据提交</h1></td></tr><tr><td>ID:</td><td><input id="id" name="id" type="text"/></td></tr><tr><td>姓名:</td><td><input id="name" name="name" type="text"/></td></tr><tr><td colspan="2" align="center"><button type="submit">提交</button></td></tr></table>
</form>
</body>
</html>
3.2.2 编辑UserController
3.2.3 简化参数接收
3.3 @RequestParam注解说明
3.3.1 功能说明
1. 为参数设定默认值2. 当提交参数名称与接收参数不一致时使用
3.3.2 编辑UserController
/*** 如果提交参数为空时,可以设置默认值* @RequestParam* value/name 接收参数的名称* required=true 为必填参数* defaultValue="" 设定默认值*/@RequestMapping("/addUser")public String addUser(@RequestParam(name = "id",defaultValue = "100") Integer id,@RequestParam(name="name",defaultValue = "张三") String name){System.out.println("动态获取数据:id:"+id);System.out.println("动态获取数据:name:"+name);//新增成功之后.跳转到user页面中return "user";}
3.4 同名提交问题
3.4.1 编辑HTML页面
3.4.2 编辑UserController
3.5 使用对象接收参数
3.5.1 编辑User对象
3.5.2 编辑UserController
3.6 为对象引用赋值
3.6.1 准备Dog对象
/*** @author 刘昱江* 时间 2021/4/26*/
@Data
@Accessors(chain = true)
public class Dog {private String dogName;private String dogAge;
}
3.6.2 编辑页面HTML
3.7 转发和重定向
3.7.1 转发
3.7.1.1 什么是转发
什么是转发: 由服务器端进行的页面跳转
3.7.1.2 转发原理
3.7.1.3 转发特点
1.地址栏不发生变化,显示的是上一个页面的地址
2.请求次数:只有1次请求
3.请求域中数据不会丢失
3.7.2 重定向
3.7.2.1 什么是重定向
由浏览器端进行的页面跳转
3.7.2.2 重定向原理图
3.7.2.3 重定向特点
1.地址栏:显示新的地址
2.请求次数:2次
3.请求域中的数据会丢失,因为是2次请求
3.8 RestFul
3.8.1restFul结构介绍
3.9 @ResponseBody注解
3.9.1 JSON结构
1.JSON 有2种基本机构
object/array
3.复杂格式
3.9.2 @ResponseBody
3.10 SpringBoot/SpringMVC/Mybatis整合
3.10.1 编辑页面
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head><meta charset="UTF-8"><title>用户列表数据</title>
</head>
<body><table border="1px" align="center" width="800px"><tr align="center"><td colspan="4"><h1>用户信息查询</h1></td></tr><tr align="center"><td>编号</td><td>名称</td><td>年龄</td><td>性别</td></tr><tr align="center" th:each="user : ${userList}"><td th:text="${user.id}"></td><td th:text="${user.name}"></td><td th:text="${user.age}"></td><td th:text="${user.sex}"></td></tr></table>
</body>
</html>
3.10.2 页面效果展现
框架系列课程-SpringMVC课程相关推荐
- 热门框架系列 (二) -- SpringMvc的父子容器,SpringBoot是否有父子容器?
@TOC# 热门框架系列 记录在程序走的每一步___auth:huf 从新的篇章开始;篇章阅读需要先关注; 因为笔者想参与技术文章的评选.;需要一定的粉丝量; 粉丝量达到一定数量.所有文章阅读限制将会 ...
- 【SSM框架系列】SpringMVC的文件上传、拦截器及异常处理
SpringMVC的文件上传 服务器端实现文件上传的技术有很多种,Servlet3.0,FileUtils,框架等等,都可以实现文件上传,不管使用哪一种上传技术,都必须满足三要素: 表单项type=& ...
- 【SSM框架系列】SpringMVC的请求和响应
request和response request对象的作用 获取请求参数 作为域对象存取数据 获取请求头 请求转发 response功能 回写数据,JSON格式字符串 页面跳转(请求重定向) Spri ...
- 【SSM框架系列】Spring-MVC的组件解析
SpringMVC完整执行流程 用户发送请求至前端控制器DispatcherServlet. DispatcherServlet收到请求调用HandlerMapping处理器映射器. 处理器映射器找到 ...
- 【SSM框架系列】SpringMVC基本介绍
SpringMVC 是web层的框架 SpringMVC 是一种基于 Java 的实现 MVC 设计模型的请求驱动类型的轻量级 Web 框架,属于SpringFrameWork 的后续产品,已经融合在 ...
- 大数据系列修炼-Scala课程96(2)
大数据系列修炼-Scala课程96(2) 核心内容: 1.Akka第一个案例动手实战代码总结 1.Akka第一个案例动手实战代码总结 Akka案例之WordCount完整代码: import akka ...
- SpringMVC 框架系列之组件概述与配置详解
在上一篇文章 SpringMVC 框架系列之初识与入门实例 的实例中,我们已经知道,SpringMVC 框架是一个 web 层的框架,本篇文章就详细解释一下 SpringMVC 框架具体文件的配置以及 ...
- 大数据系列修炼-Scala课程65
大数据系列修炼-Scala课程65 核心内容:Scala中的隐式转换操作规则与如何更好的使用隐式转换操作代码实战 1.Scala中的隐式转换操作规则与如何更好的使用隐式转换操作代码实战 1>Sc ...
- 大数据系列修炼-Scala课程101
大数据系列修炼-Scala课程101 核心内容: 1.使用SBT开发Akka第一个案例源码解析MapActor.ReduceActor.AggregateActor 1.使用SBT开发Akka第一个案 ...
最新文章
- Linux之文件管理(一)
- pop3服务器协议初始化失败,Exchange2003系统管理器中的默认POP3 虚拟服务器无法自动启动...
- Python基础(一)简介与安装
- Unity3d之AssetBundle打包与读取
- eclipse中对单独JS文件取消报错的处理
- top.location.href
- VC++开发数字图像处理系统2
- iOS 利用UIPresentationController自定义转场动画
- Java数据类型占用内存最多的_java基础数据类型的内存占用
- 深入浅出通信原理知识点5
- 计算机系徽 节徽设计,数学节节徽设计图
- 近期计算机病毒爆发,最新警示!最新电脑病毒全面爆发,沉寂已久的incaseformat蠕虫病毒肆虐横行!...
- 度分秒地理位置转wgs84坐标和2000坐标,2000坐标转wgs84坐标
- 【HMS core】【Analytics Kit】华为分析服务常见问题FAQ 2
- 基于Modelica的起落架摆震建模
- 自动整理html书签,Bookmarks Organizer - Chrome书签整理排序
- 瞎聊高速公路与主干道的立交匝道设计
- java unhandled,Unhandled Exception thrown: class java.lang.ClassCastException
- Kaggle比赛—预测 DNA、RNA 和蛋白质测量如何在单细胞中共同变化
- mysql我没压岁钱了,你压没压我?岁没岁我?该不该给我压岁钱表情包
热门文章
- 单元测试异常:InvalidTestClassError: Invalid test class : 1. Method testConnect () should be public
- 2021011029wxy-实验5
- 第六章-“那又如何”:情绪低落为何会使人屈服于诱惑
- MS SQL 数据库出现损坏(可疑)的修复方法
- 生成式AI助力出门问问赴港IPO,李志飞能否成为中国的OpenAI?
- 如何使用 Xshell 连接 Linux 服务器
- asixs 响应慢_大智慧经典指标原理及用法
- bottle 文件服务器,Python库glances和Bottle完成服务器交互式动态监控
- 智能报表系统,实用的中国式复杂报表软件
- 较有创意的广告创意入门读物——Leo鉴书50