目录标题
1 Http协议
1.1 什么是Http协议
HTTP,超⽂本传输协议(HyperText Transfer Protocol)是互联⽹上应⽤最为⼴泛的⼀种⽹络协议。
所有的WWW⽂件都必须遵守这个标准。设计HTTP最初的⽬的是为了提供⼀种发布和接收HTML⻚⾯的⽅法。
- 传输协议:定义了,客户端和服务器端通信时,发送数据的格式
- 特点:
- 基于TCP/IP的⾼级协议
- 默认端⼝号:80
- ⼀次请求对应⼀次响应
- ⽆状态的:每次请求之间相互独⽴,不能交互数据
- 历史版本:
1.0:每⼀次请求响应都会建⽴新的连接
1.1:复⽤连接
1.2 Http协议的组成
-
HTTP协议:服务器和客户端之间,进行超文本传输的行为规范
Http请求:客户端 -> 服务器
Http响应:服务器 -> 客户端
端口:80有请求就没有响应。
1.3 Http请求
-
请求⾏
请求⽅式:HTTP协议有7种请求⽅式,常⽤的有2种- GET
1. 请求参数在请求⾏中,在url后。
2. 请求的url⻓度有限制的
3. 不太安全 - POST
- 请求参数在请求体中
- 请求的url⻓度没有限制的
- 相对安全
- GET
-
请求头
请求头是客户端发送给服务器端的⼀些信息,使⽤键值对表示key:value
-
请求体
当请求⽅式是post的时,封装POST请求消息的请求参数的,格式如下:
username=zhangsan&password=123
如果请求⽅式为get,那么请求参数不会出现在请求体中,会拼接在url地址后⾯:
http://localhost:8080…?username=zhangsan&password=123
1.4 Http响应
-
响应⾏
Http协议;
状态码:常⽤的状态码如下:
200 :请求成功。
302 :请求重定向。
304 :请求资源没有改变,访问本地缓存。
404 :请求资源不存在。通常是⽤户路径编写错误,也可能是服务器资源已删除。
500 :服务器内部错误。通常程序抛异常。
状态信息:状态信息是根据状态码变化⽽变化的。 -
响应头
响应也都是键值对形式,服务器端将信息以键值对的形式返回给客户端。
-
响应体
响应体是服务器回写给客户端的⻚⾯正⽂
2 Tomcat服务器
2.1 Web开发中的常⻅概念
2.1.1 B/S系统和C/S系统
Brower/Server:浏览器/服务器 系统 ----- ⽹站
Client/Server:客户端/服务器 系统 ----- QQ、⻜秋、⼤型游戏
2.1.2 web应⽤服务器
供向外部发布web资源的服务器软件
2.1.3 web资源
存在于web应⽤服务器可供外界访问的资源就是web资源。
例如:存在于web应⽤服务器内部的Html、CSS、JS、图⽚、视频等。
1. 静态资源:浏览的数据始终是不变。⽐如:HTML、CSS、JS、图⽚、多
媒体。
2. 动态资源:指web⻚⾯中供⼈们浏览的数据是由程序产⽣的,不同时间点访问web⻚⾯看到的内容各不相同。
⽐如:JSP/Servlet、ASP、PHP
javaWEB领域:动态资源认为通过java代码去动态⽣成html。
2.1.4 请求和响应
2.2 Web开发中常⽤的web应⽤服务器
WebLogic:oracle公司的⼤型收费web服务器,⽀持全部JavaEE规范。
WebSphere:IBM公司的⼤型收费web服务器,⽀持全部的JavaEE规范。
Tomcat:Apache开源组织下的开源免费的中⼩型的web应⽤服务器,⽀持JavaEE中的Servlet 和 JSP规范。
3 Tomcat的下载与安装
3.1 下载Tomcat
官⽹地址:https://tomcat.apache.org/download-80.cgi
3.2 安装Tomcat
Tomcat有安装版和解压版(绿⾊版)
安装版:以.exe形式的安装包,双击安装到我们的电脑上,⽤的较少
解压版:即绿⾊版,解压后直接使⽤,⽤的⽐较多
3.3 Tomcat的⽬录结构与安装
安装:解压,解压后的整体路径不要出现中文和空格
bin: 命令、工具 startup shutdown
conf:配置文件 web.xml server.xml
lib: 类库 jsp-api.jar servlet-api.jar
logs:日志文件
webapps:部署java程序(web应用)的目录 ROOT
works:JSP运行后生成的文件
3.4 Tomcate的启动与运⾏
开启:
cmd: startup 配置环境变量
新建一个环境变量
将新建的环境变量加到path中,并上移到第一行
环境变量配置好了过后,cmd中输入startup开启,会弹出一个新窗口
浏览器输入下面地址,成功
http://localhost:8080
部署出现的问题:
1.startup报错了
缺少path:CATALINA_HOME Tomcat_home
tomcat安装目录
JRE_HOME
2.闪退:logs
1.缺少环境变量
2.Address already in use 端口被占用
暴力杀死进程
修改tomcat端口号 server.xml
关闭:关掉窗口
shutdown
在浏览器的地址栏中输⼊http://localhost:8080,看到如下⻚⾯证明启动成功
tomcat部署web应用
应用目录[hello]
|- [hello.html]
|- [index.html]
|- 目录(WEB-INF) - 客户端不能直接访问
|- java部分
|- 目录[img/image.jpg]
访问tomcat: http://localhost:8080
访问应用:http://localhost:8080/应用名/…/资源名字
http://localhost:8080/应用名 -> 默认首页
安装=部署
1.安装:tomcat关闭状态,应用目录复制到 webapps 中
应用名 = 目录名
卸载:关闭服务器,删除目录
2.安装:应用目录 压缩 hello.war
tomcat可以是开启状态,直接将hello.war复制到webapps中,自动解压成hello目录
卸载:删除 hello.war
3.安装:tomcat关闭状态,修改server.xml文件
path: 虚拟目录名
docBase: hello 目录的绝对路径(避免中文空格)
访问时,使用的是虚拟目录名
卸载:删掉Context标签,重启服务器
4.安装:tomcat可以是开启状态
conf/Catalina/localhost/xx.xml
文件内容:
访问时,使用虚拟目录名-应用名,xx.xml文件名
IDEA默认使用方式
卸载:删除xml文件
5 使⽤IDEA创建Web应⽤并部署运⾏
5.1 步骤
- 创建一个空的Java⼯程
2.创建一个module,并右键项⽬,添加框架⽀持
- 添加运⾏环境
点击窗⼝右下⻆ Fix 按键,即部署web应⽤。
4.设置工程,添加Javaee依赖
5.2 IDEA与tomcat的相关配置
- IDEA会为每⼀个tomcat部署的项⽬单独建⽴⼀份配置⽂件
查看控制台的log:Using CATALINA_BASE - ⼯作空间项⽬ 和 tomcat部署的web项⽬
tomcat真正访问的是“tomcat部署的web项⽬”,“tomcat部署的web项⽬"对应着"⼯作
空间项⽬” 的web⽬录下的所有资源
WEB-INF⽬录下的资源不能被浏览器直接访问