这里写目录标题
day01 的上课笔记、文件
SSM框架集
SpringBoot + SpringMVC + MyBatis
业务逻辑层 视图层 数据库层
SpringBoot 是 spring 加强版
服务器
- 服务器就是一台高性能的电脑
- 在此电脑上安装了xx服务软件 则此电脑就可以称为xx服务器
- 有哪些服务器?
- 邮件服务器: 电脑上安装了提供邮件收发服务的软件,就称为邮件服务器
- ftp服务器: 电脑上安装了提供文件上传下载服务的软件,就称为ftp服务器
- web服务器: 电脑上安装了web服务软件(webServer或Tomcat),就称为web服务器
- 数据库服务器: 电脑上安装了MySQL或Oracle等数据库软件,就称为数据库服务器
WebServer做了哪些事儿?
- 负责建立底层的网络连接
- 负责将客户端请求的静态资源文件找到并返回给客户端
- 负责根据用户请求的路径 找到对应的Servlet并执行
什么是Servlet和Controller
Servlet是 Web服务软件(Tomcat)中实现业务功能的组件 ,WebServer自身不具备任何业务功能,可以理解为一个容器,这个容器就是用来装实现各种业务的Servlet,Servlet就是用来处理业务的
RegServlet
LoginServlet
ShowAllUserServlet
DeleteServlet
UpdateServlet
- SpringMVC框架引入了Controller的概念
以上5个Servlet 可以合并为一个UserController,大大提高了代码的开发效率
SpringBoot
SpringBoot是目前主流的开发框架,使用此框架创建 包含各种其它框架时 可以大大减少配置操作, 只需要勾选上某些其它框架就可以把此框架引入到自己的工程中
核心思想:约定大于配置, 用户不需要关系每个框架具体的配置 直接使用SpringBoot中所约定好的内容
创建工程注意事项:
1、 创建之前一定要确保maven配置是成功的
2、
这个创建的工程里,目前已经内置了一个Tomcat/WebServer,已经包含了WebServer的功能,可以直接跑起来的
测试工程是否创建成功
在resources/static文件夹下创建hello.html页面 运行工程 访问以下地址
http://localhost:8080/hello.html
处理静态资源文件请求
把客户端需求 请求的文件放在resources/static文件夹中
处理客户端发出的动态请求
- 创建HelloController, 在类名上面添加@Controller注解
- 在HelloController里面声明一个方法,在方法上面添加 @RequestMapping注解 里面写上处理的路径
- 在方法的参数列表里面添加HTTPServletResponse对象,通过此对象给客户端发出响应数据
客户端发出请求的几种方式:
1.在浏览器的地址栏输入请求的地址 回车发出请求
2.在html页面中通过超链接发出请求
boot-2
SayHello练习
- 创建boot1-2工程,把11改成8 勾选Web->Spring Web
- 在static文件夹中创建sayhello.html 页面 里面准备一个form表单 提交地址为/sayhello 表单中一个文本框和一个提交按钮
- 创建SayHelloController 在类名上面添加 @Controller注解, 创建一个sayhello方法 方法上面写上 @RequestMapping注解 处理路径为/sayhello
- sayhello方法的参数列表中声明HttpServletRequest 和HttpServletResponse
- sayhello方法中获取传递过来的参数 , 在后面拼接上"你好!" ,返回给客户端
BMI身体指数练习
-
BMI = 体重/(身高*身高) 体重(公斤) 身高(米)
举例身高一米八: 1.8 体重160斤 80
bmi = 80/(1.8*1.8)
bmi小于 18.5偏瘦 18.5-24正常 24-28 偏胖 大于28肥胖
-
步骤:
1、在static文件夹中创建bmi.html页面,页面中准备form表单,提交地址为/bmi 表单中两个文本输入框 分别获取用户输入的身高和体重 两个文本框的name分别为h和w 最后还有一个提交按钮
2、在controller包下面创建BMIController,类名上创建@Controller注解, 然后创建bmi方法并通过@RequestMapping配置处理路径为/bmi
3、bmi在方法中获取传递过来的身高和体重 得到的是字符串类型 转成float类型 通过上面公式得到bmi 通过比较bmi的取值 给客户端返回对应的信息
相比之前的 改了 4 处地方
InfoController 练习
创建 实体类 entity.User 生成set/get方法 ToString方法
获取参数的几种方式
-
在参数列表中声明一个HttpServletRequest对象,调用该对象的getParamter()方法, 一个参数一个参数的获取,这种方式代码繁琐而且 只能获取出字符串类型的数据(boot-1、sayhello)
-
在参数列表中直接声明接收的参数名, 这种方式可以自动转换类型(BMI)
-
如果有重复的参数名 通过声明数组得到多个同名的参数(Info第一种)
-
可以将接收到的多个参数封装到实体类中(Info)
提交员工信息练习
EmpController
- 创建emp.html页面 页面中添加form表单, 提交地址为/add 表单中有三个文本框分别获取员工姓名name,员工年龄age和工作job 最后还有一个提交地址
- 创建EmpController, 在类名上面添加 @RestController,
声明一个add方法处理路径为/add, 通过上面第四种方式(自动封装实体类的方式) 获取传递过来的员工信息.
需要在entity包下创建Emp实体类,最后把接收到的员工信息以 以下格式返回给客户端 “我叫xxx今天xx岁我的工作是xxx”
UserController:
工程中使用数据库准备工作:
- 在pom.xml文件中添加 两个依赖: MySQL驱动 数据
库连接池
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connectorjava</artifactId>
<version>8.0.15</version>
</dependency>
<!-- 数据库连接池 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.21</version>
</dependency>
- 把之前工程中的DBUtils工具类添加到自己工程里面,
创建一个utils包 - 把jdbc.properties配置文件添加到resources目录下
记得点重新编译!!!
注册功能步骤: reg
数据库里 创建user表
drop table user;
create table user(id int primary key auto_increment,
username varchar(50),password varchar(50)) charset=utf8;
- 在static里面创建reg.html页面 里面添加form表单提
交地址为/reg 表单中一个文本输入框和一个密码框,
最后一个注册按钮 - 创建UserController,添加@RestController注解, 添加
reg方法在RequestMapping注解中处理路径为/reg - 创建User实体类 有id,username,password 三个属性
生成setget方法和tostring方法 - 在reg方法的参数列表中声明一个User对象 用来接收
参数 ,在方法体里面通过jdbc代码 将User对象中的数
据保存到user表中 ,给客户端返回"注册成功"