Spring
官网:spring.io
Spring发展到今天已经形成了一种开发生态圈,Spring提供了若干个子项目,每个项目用于完成特定的功能
Spring Boot 可以帮助我们非常快速的构建应用程序、简化开发、提高效率
SpringBootWeb入门
①.创建springboot工程,并勾选web开发相关依赖
②.定义HelloController类,添加方法 hello,并添加注解
③.运行测试
SpringBoot父工程:
所有创建的SpringBoot工程都需要继承自这个父工程,在Maven中叫继承
进行外部开发的依赖:
进行单元测试的依赖:
HTTP协议
HTTP概述
概念:Hyper Text Transfer Protocol,超文本传输协议,规定了浏览器和服务器之间数据传输的规则
特点:
1.基于TCP协议:面向连接,安全
2.基于请求-响应模型的:一次请求对应一次响应
3.HTTP协议是无状态的协议:对于事务处理没有记忆能力。每次请求-响应都是独立的
缺点:多次请求间不能共享数据
优点:速度快
HTTP请求协议
请求数据格式
请求行
请求数据第一行(请求方式、资源路径、协议)
请求头
第二行开始,格式key:value
GET /brand/findAll?name=0PP0&status=1 HTTP/1.1 (请求方式:GET /brand/findAll后面跟的是请求参数 /brand/findAll?name=0PP0&status=1:请求路径 HTTP/1.1 :协议以及协议的版本
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*
Accept-Encoding:gzip,deflate,br
Accept-Language:zh-CN,zh;q=0.9
Host:localhost:8080
User-Agent: Mozilla/5.0 (Windows NT 10.0: Win64:x64)AppleWebKit/537.36 (KHTML, like Gecko) chrome/..
POST /brand HTTP/1.1
Accept:application/json,text/plain,*/*
Accept-Encoding: gzip,deflate, br
Accept-Language:zh-CN,zh;q=0.9
Content-Length:161
Content-Type:application/json;charset=UTF-8Cookie:Idea-8296eb32-841b16f0-0cfe-495a-9cc9-d5aaa71501a6; JSESSIONID=0FDE4E430876BD9C5C955F061207386FHost: localhost:8080
User-Agent: Mozilla/5.0 (windows NT 10.0; Win64; x64)AppleWebKit/537.36 (KHTML, like Gecko) chrome/...
["status":1,"brandName":"黑马","companyName":"黑马程序员",“id":"","description":"黑马程序员”}
Accept:请求头的名字 text/html,application/xhtml+xml,application/xml:请求头对应的值,中间用冒号连接
解决浏览器兼容性问题最核心的是要拿到浏览器的版本
请求响应
响应格式
HTTP/1.1 200 OK (HTTP/1.1:协议以及协议的版本 200:响应的状态码<响应成功还是失败> OK:响应成功)
Content-Type:application/json
Transfer-Encoding:chunked
Date: Tue,10 May 2022 07:51:07 GMT
Keep-Alive:timeout=60
Connection:keep-alive
[{id:1,brandName:"阿里巴巴",companyName:"腾讯计算机系统有限公司",description:"玩玩玩”}]
协议解析
概念:Hyper Text Transfer Protocol,超文本传输协议,规定了浏览器和服务器之间数据传输的规则
Tomcat
介绍
概念:Tomcat是Apache 软件基金会一个核心项目,是一个开源免费的轻量级Web服务器,支持Servlet/JSP少量JavaEE规范
JavaEE:Java Enterprise Edition,java企业版。指|ava企业级开发的技术规范总和。包含13项技术规范:IDBC、INDI、EIBRMI、JSP、Servlet、XML、JMS、Java IDL、JTS、JTA、JavaMail、JAF
Tomcat 也被称为 Web容器、Servlet容器。Servlet程序需要依赖于Tomcat才能运行
官网:https://tomcat.apache.org/
Web服务器
对HTTP协议操作进行封装,简化web程序开发
部署web项目,对外提供网上信息浏览服务
Tomcat
一个轻量级的web服务器,支持servlet、jsp等少量javaEE规范
也被称为web容器、servlet容器
基本使用
下载:官网下载,地址 https://tomcat.apache.org/download-90.cgi
安装:绿色版,直接解压即可
卸载:直接删除目录即可
启动:双击:bin\startup.bat
控制台中文乱码:修改conf/logging.properties
关闭:
直接x掉运行窗口:强制关闭
bin\shutdown.bat:正常关闭
Ctrl+C:正常关闭
注意事项
HTTP协议默认端口号为80,如果将Tomcat端口号改为80,则将来访问Tomcat时,将不用输入端口号
Tomcat 部署项目:
将项目放置到 webapps 目录下,即部署完成
SpringBootWeb-入门程序解析
1.起步依赖
spring-boot-starter-web
spring-boot-starter-test
2.内嵌Tomcat服务器
基于Springboot开发的web应用程序,内置了tomcat服务器,当启动类运行时,会自动启动内嵌的tomcat服务器
请求响应
概述
将所有的信息封装到一个对象中,这个对象就是HttpServletRequest,也叫请求对象
通过HttpServletResponse这个对象来设置响应数据
请求
Postman
Postman是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件。作用:常用于进行接口测试
简单参数
实例:
java">@RequestMapping(ov"/simpleParam")
public string simpleParam(HttpServletRequest request){
//获取请求参数
String name request.getParameter(s:"name");
String agestr=request.getParameter(s:"age");
int age = Integer.parseInt(agestr);
System.out.println(name+":"+age);
return "OK";
java">//springboot方式
@RequestMapping(ov"/simpleParam")
public string simpleParam(string name, Integer age){
System.out.println(name+ ":" + age);
return "OK";
}
请求的参数名与形参名保持一致就能请求成功
java">@RequestMapping(~"/simpleParam")
public String simpleParam(@RequestParam(name"name")
String username,Integer age){
System.out.println(username+ ":"+ age);
return "OK";
}
注意事项
@RequestParam中的required属性默认为true,代表该请求参数必须传递,如果不传递将报错。如果该参数是可选的,可以将required属性设置为false
修改:
小结:
实体参数
数组集合参数
数组参数:请求参数名与形参数组名称相同且请求参数为多个,定义数组类型形参即可接收参数
数组集合参数
集合参数:请求参数名与形参集合名称相同且请求参数为多个,@RequestParàm 绑定参数关系
小结:
数组:请求参数名与形参中数组变量名相同,可以直接使用数组封装
集合:请求参数名与形参中集合变量名相同,通过@RequestParam绑定参数关系