1⃣️Tomcat简介
安装Tomcat
请参考另一篇文章juejin.cn/post/714283…
❗️ 最好下载tomcat9版本,这样IDEA里面不会报错
Tomcat概述
Tomcat是一个免费的Web应用服务器,用来发布web项目
启动Tomcat:
验证启动:
Tomcat目录结构
动态WEB资源目录结构
website
|----静态页面(HTML、CSS、JS、图片等)
|----JSP页面
|----WEB-INF(目录,必须存在)
|----web.xml(文件,必须存在)
|----classes(可选)
|----lib(第三方jar包,可选)
2⃣️Tomcat项目发布方式
方式1
直接将项目复制到 tomcat目录/webapps
然后访问项目地址: http://localhost:8080/test/aaa/hello.html
方式2(不推荐)
在 tomcat/conf/server.xml 里配置tomcat的虚拟路径
这种方式需要修改server.xml,是属于核心配置文件
方式3(推荐)
首先要去 tomcat/conf/Catalina/localhost/ 路径下配置tomcat的虚拟路径
如:test.xml,文件内容如下:
<?xml version="1.0" encoding="utf-8"?>
<Context docBase="/Users/xxx/demo/test"></Context>
其中Context里面放置的是项目路径
如,我放了一个hello3.html
最后使用 http://localhost:8080/test/hello3.html 进行访问
3⃣️ IDEA创建Tomcat项目
点击IDEA左上角的File-->new-->Project,或者小窗口里直接点击Create New Project:
选择Java Enterprise,在Application Server里添加Tomcat Server:
选择Web Application,并勾选Create web.xml,点击Next:
第一项是你的工程名字随便取,第二个是你的工程路径,选择好之后点击finish:
完成之后,点击WEF-INF-->右键-->NEW-->Directory,创建两个文件夹,classes和lib,这个名字不要改!!!
再点击File ,选择Project Structure,点击Modules ,选择Paths,选中Use module compile output path ,把路径改成刚刚创建的classes文件夹:
再点旁边的Dependencies,点击"+"号,选择1 JARs or directories
选择你刚刚创建的lib文件夹,点击OK。选第3个,jar Directory。 一路OK 到底!
回到主界面后,点击Run ,选择Edit Configurations
点击Deployment:
点击运行:
去浏览器里查看效果:
4⃣️ Http协议
规定了浏览器和服务器端的数据交互的格式
特点:基于请求和响应模型(成对出现,先有请求,后有响应)、简单快捷(请求只需要发送请求方式和请求路径)
GET请求
GET /web_test2/demo2.html?name=zhangsan&name=qqq222 HTTP/1.1
Host: localhost:8080
Connection: keep-alive
sec-ch-ua: "Chromium";v="88", "Google Chrome";v="88", ";Not A Brand";v="99"
sec-ch-ua-mobile: ?0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.146 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Sec-Fetch-Site: same-origin
Sec-Fetch-Mode: navigate
Sec-Fetch-User: ?1
Sec-Fetch-Dest: document
Referer: http://localhost:8080/web_test2/demo.html
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8
Cookie: Idea-a610e0bc=10b95e24-4b65-4216-ba5b-bac507d4488b
POST请求
POST /web_test2/demo2.html HTTP/1.1
Host: localhost:8080
Connection: keep-alive
Content-Length: 20
Cache-Control: max-age=0
sec-ch-ua: "Chromium";v="88", "Google Chrome";v="88", ";Not A Brand";v="99"
sec-ch-ua-mobile: ?0
Upgrade-Insecure-Requests: 1
Origin: http://localhost:8080
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.146 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Sec-Fetch-Site: same-origin
Sec-Fetch-Mode: navigate
Sec-Fetch-User: ?1
Sec-Fetch-Dest: document
Referer: http://localhost:8080/web_test2/demo.html
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8
Cookie: Idea-a610e0bc=10b95e24-4b65-4216-ba5b-bac507d4488b
入参:
请求部分解析
请求行
- 常用请求方式(get/post)
- GET请求:请求参数会显示在地址栏;有大小限制;
- POST请求:请求参数不显示在地址栏,在请求体中;没有大小限制;
- 请求路径(如:/web_test2/demo2.html)
- 协议版本(HTTP/1.1)
请求头
- 一般是一个key对应一个value,或一个key对应多个value
- Referer:代表网页的来源(如:http://localhost:8080/web_test2/demo.html)
- User-Agent:获得客户端浏览器的类型
请求体
- POST请求方式的请求参数
Get响应部分
HTTP/1.1 200
Accept-Ranges: bytes
ETag: W/"126-1612425416000"
Last-Modified: Thu, 04 Feb 2021 07:56:56 GMT
Content-Type: text/html
Content-Length: 126
Date: Thu, 04 Feb 2021 08:00:45 GMT
Keep-Alive: timeout=20
Connection: keep-alive
响应部分解析
响应行
- 协议版本(如:HTTP/1.1)
- 状态码
- 200:响应成功
- 302:需要进行重定向操作
- 304:需要查找本地缓存
- 404:请求资源不存在
- 500:服务器内部错误
- 状态码描述
响应头
- 一般是一个key对应一个value,或一个key对应多个value
- Location:重定向的路径
- Refresh:定时刷新
- Content-Disposition:文件下载时使用
响应体
- 显示到浏览器页面上的代码