Web:全球广域网,也称为万维网(www),能够通过浏览器访问的网站。
JavaWeb:是用 Java技术来解决相关web互联网领域的技术栈。
JavaWeb 技术栈
B/S 架构:Browser/Server,浏览器/服务器 架构模式,它的特点是:客户端只需要浏览器,应用程序的逻辑和数据都存储在服务器端。浏览器只需要请求服务器,获取Web资源,服务器把Web资源发送给浏览器即可
好处:易于维护升级。服务器端升级后,客户端无需任何部署就可以使用到新的版本。

静态资源:HTML、CSS、JavaScript、图片等。负责页面展现
动态资源:Servlet、JSP 等。负责逻辑处理
数据库:负责存储数据
HTTP协议:定义通信规则
Web服务器:负责解析 HTTP 协议,解析请求数据,并发送响应数据
HTTP
概念:HyperText Transfer Protocol,超文本传输协议,规定了浏览器和服务器之间数据传输的规则
HTTP 协议特点:
基于TCP协议:面向连接,安全
基于请求-响应模型的:一次请求对应一次响应
HTTP协议是无状态的协议:对于事务处理没有记忆能力。每次请求-响应都是独立的。
缺点:多次请求间不能共享数据。(Java中使用会话技术(Cookie、Session)来解决这个问题)
优点:速度快
HTTP-请求数据格式
请求数据分为3部分:
1、请求行:请求数据的第一行。其中GET表示请求方式,/表示请求资源路径,HTTP/1.1表示协议版本
2、请求头:第二行开始,格式为key:value形式。
3、请求体: POST请求的最后一部分,存放请求参数
常见的HTTP 请求头:
Host: 表示请求的主机名
User-Agent: 浏览器版本,例如Chrome浏览器的标识类似Mozilla/5.0 ... Chrome/79,IE浏览器的标识类似Mozilla/5.0 (Windows NT ...) like Gecko;
Accept:表示浏览器能接收的资源类型,如text/*,image/*或者*/*表示所有;
Accept-Language:表示浏览器偏好的语言,服务器可以据此返回不同语言的网页;
Accept-Encoding:表示浏览器可以支持的压缩类型,例如gzip, deflate等。
GET / HTTP/1.1
Host: www.itcast.cn
Connection: keep-alive
User-Agent: Mozilla/5.0 Chrome/91.0.4472.106
…
POST / HTTP/1.1 Host: www.itcast.cn Connection: keep-alive Cache-Control: max-age=0 Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 Chrome/91.0.4472.106 username=superbaby&password=123456
GET请求和 POST请求区别:
GET请求请求参数在请求行中,没有请求体。POST请求请求参数在请求体中。
GET请求请求参数大小有限制,POST没有。
HTTP-响应数据格式
响应数据分为3部分:
1、响应行:响应数据的第一行。其中HTTP/1.1表示协议版本,200表示响应状态码,OK表示状态码描述
2、响应头:第二行开始,格式为key:value形式
3、响应体: 最后一部分。存放响应数据
常见的HTTP 响应头:
Content-Type:表示该响应内容的类型,例如text/html,image/jpeg;
Content-Length:表示该响应内容的长度(字节数);
Content-Encoding:表示该响应压缩算法,例如gzip;
Cache-Control:指示客户端应如何缓存,例如max-age=300表示可以最多缓存300秒
HTTP/1.1 200 OK Server: Tengine Content-Type: text/html Transfer-Encoding: chunked… <html> <head> <title></title> </head> <body></body> </html>
响应状态码:

常见的响应状态码:

Web 服务器 - Tomcat
Web服务器是一个应用程序(软件),对 HTTP协议的操作进行封装,简化开发。让Web开发更加便捷。可以将web项目部署到服务器中,对外提供网上浏览服务。
Tomcat简介
概念: Tomcat是Apache 软件基金会一个核心项目,是一个开源免费的轻量级Web服务器,支持Servlet/JSP少量JavaEE规范。
JavaEE:Java Enterprise Edition,Java企业版。指Java企业级开发的技术规范总和。包含13项技术规范:JDBC、JNDI、EJB、RMI、JSP、Servlet、XML、JMS、Java IDL、JTS、JTA、JavaMail、JAF
Tomcat 也被称为 Web容器、Servlet容器。Servlet 需要依赖于 Tomcat才能运行
官网:https://tomcat.apache.org/
Tomcat基本使用
下载:官网下载
安装:绿色版,直接解压即可

卸载:直接删除目录即可
启动:双击:bin\startup.bat
控制台中文乱码:修改conf/ logging.properties
![]()
关闭:
直接×掉运行窗口:强制关闭
bin\shutdown.bat:正常关闭
Ctrl+C:正常关闭
配置:
修改启动端口号:conf/server.xml

注:HTTP协议默认端口号为80,如果将Tomcat端口号改为80,则将来访问Tomcat时,将不用输入端口号
启动时可能出现的问题:
1、端口号冲突:找到对应程序,将其关闭掉

2、启动窗口一闪而过:检查JAVA_HOME环境变量是否正确配置
Tomcat 部署项目:
将项目放置到 webapps 目录下,即部署完成。
一般 JavaWeb项目会被打成war包,然后将war包放到 webapps目录下,Tomcat会自动解压缩 war文件。
IDEA中创建 Maven Web项目
Web项目结构
Maven Web项目结构:开发中的项目

部署的JavaWeb项目结构:开发完成,可以部署的项目

1.编译后的Java字节码文件和resources的资源文件,放到WEB-INF下的classes目录下
2.pom.xml中依赖坐标对应的jar包,放入WEB-INF下的lib目录下
使用骨架
骨架:项目模板
1. 选择web项目骨架,创建项目

2. 删除pom.xml中多余的坐标

3. 补齐缺失的目录结构


不使用骨架
1. 不选择web项目骨架,创建项目

2. pom.xml中添加打包方式为war

3. 补齐缺失的目录结构:webapp




IDEA中使用 Tomcat
集成本地 Tomcat
将本地Tomcat集成到Idea中,然后进行项目部署即可









![]()
Tomcat Maven 插件
1、pom.xml 添加 Tomcat插件
<build> <plugins> <!--Tomcat 插件--> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version> </plugin> </plugins> </build>
<plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version> <configuration> <port>80</port><!--访问端口号--> <path>/</path><!--项目访问路径--> </configuration> </plugin>
2、使用Maven Helper 插件快速启动项目,选中项目,右键 --> Run Maven --> tomcat7:run

如果需要断点调试,选择 Debug Maven

Servlet