一、Web开发核心基础
1. JavaWeb定义
Java中动态web资源开发的技术统称为JavaWeb,Web应用编写完成后,必须部署到web服务器上,才能对外提供访问服务,服务器负责统一管理web资源、处理客户端请求并返回响应。
2. 主流Web开发技术对比
- ASP:微软开发,允许在HTML中嵌入VBScript/JScript脚本,可与COM组件交互;缺点是代码与HTML混合,维护成本高,存在性能瓶颈。
- PHP:开源脚本语言,简单易学、跨平台、开发速度快,适合中小型网站;缺点是高并发、大数据量处理时易出现性能瓶颈。
- JSP/Servlet:基于Java语言,天生跨平台;Servlet负责处理请求、返回响应,JSP允许在HTML中嵌入Java代码,实现呈现逻辑与业务逻辑分离;优势是可承载高并发、高负载,配套开源组件丰富,是JavaWeb核心技术。
3. 两种核心架构模式
- B/S(浏览器/服务器) :客户端通过Web浏览器与服务器交互,业务逻辑、数据处理集中在服务器端,客户端无需安装专用软件,部署和维护成本低。
- C/S(客户端/服务器) :分为专用客户端软件和服务器两部分,性能好、交互体验丰富,但部署和维护成本较高。
二、Web服务器详解
1. 服务器核心作用
Web服务器是被动操作的软件,核心功能是接收客户端的HTTP请求,处理请求(如解析请求参数、调用对应资源),最终返回响应信息(页面、数据等)。
2. 主流Web服务器软件
- IIS:微软开发,仅适用于Windows系统,支持ASP、ASP.NET等技术,与Windows系统紧密集成,配置管理便捷。
- Tomcat:Apache软件基金会jakarta项目,开源免费,是轻量级Web应用服务器,也是开发、调试JSP/Servlet的首选;适合中小型系统、并发用户量适中的业务,技术先进、性能稳定,率先支持最新的Servlet和JSP规范。
3. Tomcat核心细节
- 关键目录:
work目录(存放Tomcat编译JSP文件生成的Servlet类和临时文件)、webapps目录(默认Web应用部署目录,放入WAR包可自动解压部署)。 - 核心配置文件:
conf/server.xml(用于配置端口、主机等核心参数)。
4. Tomcat各文件夹功能详解(视频重点)
Tomcat解压后包含7个核心文件夹,每个文件夹各司其职,是Tomcat正常运行和Web应用部署的基础,具体功能如下:
- bin 文件夹:核心执行脚本目录,存放Tomcat启动、关闭及相关辅助脚本,是操作Tomcat服务的入口。 Windows系统:
startup.bat(启动Tomcat)、shutdown.bat(关闭Tomcat)、catalina.bat(核心运行脚本)。 - Linux/Mac系统:
startup.sh(启动)、shutdown.sh(关闭)、catalina.sh(核心运行脚本)。 - 注意:双击启动脚本一闪而过,大概率是未配置JDK的JAVA_HOME环境变量。
- conf 文件夹:Tomcat全局配置目录,存放所有核心配置文件,修改此目录文件需谨慎,直接影响Tomcat运行。
server.xml:最核心的配置文件,配置端口、主机、连接器、引擎等全局参数(如端口修改、虚拟主机配置均在此文件)。 web.xml:Web应用的默认配置文件,定义MIME类型、默认Servlet、会话超时时间等,所有Web应用都会继承此配置。tomcat-users.xml:Tomcat用户权限配置文件,用于配置管理端(如应用管理、虚拟主机管理)的登录用户名、密码和角色。context.xml:所有Web应用的公共上下文配置文件,可配置数据库连接池等全局资源。- lib 文件夹:Tomcat运行依赖的类库目录,存放所有必需的jar包,无需额外配置,Tomcat会自动加载此目录下的jar包。 包含Servlet、JSP核心规范jar包(如javax.servlet-api.jar)、Tomcat自身运行依赖jar包。
- 所有部署在Tomcat上的Web应用,均可共享此目录下的jar包,无需在每个Web应用中重复引入。
- logs 文件夹:Tomcat日志存储目录,记录Tomcat启动、运行、错误及客户端访问等所有信息,是排查问题的核心依据。
catalina.out:主日志文件,记录Tomcat启动过程、运行中的异常信息,是最常用的日志文件。 localhost.log:本地主机访问日志,记录localhost域名相关的请求和运行信息。access_log.*.txt:客户端访问日志,记录所有客户端的HTTP请求(如请求地址、请求时间、客户端IP等)。- temp 文件夹:Tomcat运行时的临时文件目录,由Tomcat自动创建和管理,用于存储运行过程中产生的临时数据(如文件上传临时文件)。 临时文件可随时手动删除,不会影响Tomcat正常运行,重启Tomcat后会自动重建此目录。
- webapps 文件夹:Tomcat默认的Web应用部署目录,是最常用的应用部署路径,支持两种部署形式。 文件夹部署:将Web应用打包后的文件夹直接复制到此目录,Tomcat会自动识别并部署。
- WAR包部署:将Web应用打包为WAR格式文件,复制到此目录后,Tomcat会自动解压并部署。
- 默认自带应用:ROOT(根应用,访问
http://localhost:8080直接进入)、examples(示例程序)、manager(应用管理端)。 - work 文件夹:Tomcat的工作目录,专门用于存放JSP编译后生成的文件,是JSP运行的核心目录。 JSP首次被访问时,Tomcat会将其编译为Servlet源文件(.java),再编译为字节码文件(.class),并存储在此目录。
- 若修改JSP文件后不生效,可删除此目录下对应的文件,Tomcat会重新编译JSP。
- 重启Tomcat后,此目录下的文件会被重新生成,删除不影响Web应用的核心代码。
三、Tomcat基础配置(核心重点)
1. 端口配置
配置标签为<Connector>,默认HTTP端口为8080,HTTPS重定向端口为8443,可修改为未被占用的端口。
核心配置示例:
<Connector port="8081" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
关键参数说明:
port:服务器监听的端口号protocol:使用的网络协议,默认HTTP/1.1connectionTimeout:连接超时时间,单位为毫秒redirectPort:HTTPS重定向端口
2. 常见默认端口对照(必记)
- Tomcat HTTP端口:8080
- MySQL数据库端口:3306
- 通用HTTP端口:80(浏览器访问可省略端口号)
- 通用HTTPS端口:443(浏览器访问可省略端口号)
3. 主机与虚拟主机配置
默认主机名为localhost,映射本地IP 127.0.0.1;虚拟主机通过<Host>标签配置,可实现不同域名映射到不同Web应用。
核心配置示例:
<Host name="www.qinjiang.com" appBase="webapps"
unpackWARs="true" autoDeploy="true">
关键参数说明:
name:虚拟主机名(域名)appBase:Web应用存放的基础目录unpackWARs:是否自动解压部署WAR包autoDeploy:是否开启自动部署功能
JavaWeb:Tomcat详解
一、Tomcat 核心定位
Tomcat 是 Apache 软件基金会 Jakarta 项目下的开源免费轻量级 Web 应用服务器,核心作为 Servlet/JSP 容器,是 JavaWeb 开发、调试的首选服务器,适配中小型系统及并发访问量适中的业务场景,率先支持最新的 Servlet 和 JSP 规范,同时兼具 Web 服务器的基础功能,可直接处理静态资源请求。
二、Tomcat 下载与安装
1. 下载渠道
Apache 官方网站(tomcat.apache.org/),根据自身操作系统(Windows/Linux/Mac)选择对应版本,推荐下载 8.x、9.x 等稳定版本,适配主流 JDK 版本。
2. 安装前提
必须提前配置JDK 的 JAVA_HOME 环境变量,Tomcat 运行完全依赖 JDK,未配置或配置错误会导致启动失败。
3. 安装方式
采用绿色版解压安装,无需复杂的安装步骤,将下载的压缩包解压到无中文、无空格的目录下即可使用,解压后直接进入 bin 目录即可执行启动 / 关闭操作,适合开发环境快速部署。
三、Tomcat 核心目录结构及功能详解
Tomcat 解压后包含 7 个核心文件夹,各文件夹各司其职,是 Tomcat 正常运行和 Web 应用部署的基础,具体功能及核心文件如下:
1. bin 文件夹
-
核心作用:Tomcat 的执行脚本目录,存放启动、关闭及核心运行脚本,是操作 Tomcat 服务的唯一入口。
-
跨平台脚本:
- Windows 系统:
startup.bat(启动 Tomcat)、shutdown.bat(关闭 Tomcat)、catalina.bat(底层核心运行脚本,startup/shutdown 均调用此脚本)。 - Linux/Mac 系统:
startup.sh(启动)、shutdown.sh(关闭)、catalina.sh(底层核心运行脚本)。
- Windows 系统:
-
关键问题:双击启动脚本后窗口一闪而过,大概率是未配置 JAVA_HOME 环境变量或配置路径错误。
2. conf 文件夹
-
核心作用:Tomcat 的全局配置目录,存放所有核心配置文件,修改此目录下的文件会直接影响 Tomcat 整体运行,操作需谨慎。
-
核心配置文件:
server.xml:Tomcat 最核心的配置文件,配置端口、主机、连接器、引擎等全局核心参数,如端口修改、虚拟主机配置均在此文件完成。web.xml:Web 应用的默认配置文件,定义 MIME 类型、默认 Servlet、会话超时时间等,所有部署在 Tomcat 上的 Web 应用都会继承此文件的配置。tomcat-users.xml:Tomcat 用户权限配置文件,用于配置管理端(应用管理、虚拟主机管理)的登录用户名、密码及对应角色(如 manager-gui、admin-gui)。context.xml:所有 Web 应用的公共上下文配置文件,可配置数据库连接池、全局资源等,所有应用共享此配置。
3. lib 文件夹
- 核心作用:Tomcat 的类库依赖目录,存放 Tomcat 运行所需的所有 Java 类库(jar 包),Tomcat 启动时会自动加载此目录下的所有 jar 包,无需额外配置。
- 包含内容:Servlet、JSP 核心规范 jar 包(如 javax.servlet-api.jar)、Tomcat 自身运行的依赖 jar 包。
- 核心优势:所有部署在 Tomcat 上的 Web 应用,均可共享此目录下的 jar 包,无需在每个 Web 应用中重复引入,减少项目体积。
4. logs 文件夹
-
核心作用:Tomcat 的日志存储目录,记录 Tomcat 启动、运行、错误及客户端访问的所有信息,是排查 Tomcat 运行问题、分析请求情况的核心依据。
-
核心日志文件:
catalina.out:Tomcat 主日志文件,记录启动过程、运行中的异常信息、控制台输出内容,是日常排查问题最常用的日志文件。localhost.log:本地主机访问日志,记录与localhost域名相关的请求和 Tomcat 运行信息。access_log.*.txt:客户端访问日志,按时间分割,记录所有客户端的 HTTP 请求详情,如请求地址、请求时间、客户端 IP、请求状态码等。
5. temp 文件夹
- 核心作用:Tomcat 的临时文件目录,由 Tomcat 自动创建和管理,用于存储运行过程中产生的临时数据,如文件上传的临时文件、运行时的临时缓存数据等。
- 关键特性:临时文件可随时手动删除,不会影响 Tomcat 的正常运行;重启 Tomcat 后,此目录会被自动重建,无需手动创建。
6. webapps 文件夹
-
核心作用:Tomcat默认的 Web 应用部署目录,是开发中最常用的应用部署路径,Tomcat 会自动检测此目录下的应用并完成部署。
-
支持的部署形式:
- 文件夹部署:将 Web 应用的工程文件夹直接复制到此目录,Tomcat 会自动识别并完成部署。
- WAR 包部署:将 Web 应用打包为 WAR 格式的压缩文件,复制到此目录后,Tomcat 会自动解压并完成部署。
-
默认自带应用:
- ROOT:根应用,访问
http://localhost:8080时直接进入此应用,是 Tomcat 的默认欢迎页。 - examples:Tomcat 官方提供的示例程序,包含 Servlet、JSP 的基础使用案例,可参考学习。
- manager:Tomcat 的应用管理端,可在线完成应用的部署、卸载、启动、停止等操作。
- ROOT:根应用,访问
7. work 文件夹
- 核心作用:Tomcat 的工作目录,专门用于存放 JSP 编译后生成的文件,是 JSP 能够运行的核心目录。
- JSP 编译流程:JSP 首次被客户端访问时,Tomcat 会先将其编译为 Servlet 源文件(.java),再将源文件编译为字节码文件(.class),并将这两类文件统一存储在此目录。
- 实用技巧:若修改 JSP 文件后,浏览器访问无效果,可删除此目录下对应的文件,Tomcat 会在下次访问时重新编译 JSP;重启 Tomcat 后,此目录下的文件会被重新生成,删除不影响 Web 应用的核心代码。
四、Tomcat 的启动与关闭
1. 启动操作
- 进入 Tomcat 解压目录下的
bin文件夹; - 执行对应系统的启动脚本(Windows 双击
startup.bat,Linux/Mac 执行./startup.sh); - 启动成功标识:控制台无报错信息,最后一行出现「Server startup in XXX ms」字样;
- 验证启动:打开浏览器,输入
http://localhost:8080,能看到 Tomcat 的默认欢迎页,即表示启动成功。
2. 关闭操作
正常关闭(推荐)
- 进入 Tomcat 的
bin文件夹; - 执行对应系统的关闭脚本(Windows 双击
shutdown.bat,Linux/Mac 执行./shutdown.sh); - 关闭成功标识:控制台出现「Server shutdown in XXX ms」字样。
强制关闭(不推荐)
直接关闭 Tomcat 的启动控制台窗口,此方式可能导致服务器资源未释放、文件损坏,仅适用于紧急情况。
3. 启动常见问题及解决方案
- 问题:双击
startup.bat后窗口一闪而过 解决方案:检查 JDK 的 JAVA_HOME 环境变量是否配置,确保配置路径正确且无中文、无空格。 - 问题:启动报错「Address already in use」 解决方案:8080 端口被其他程序占用,可修改
conf/server.xml中的端口号,或通过命令关闭占用端口的程序。 - 问题:浏览器输入
http://localhost:8080无法访问 Tomcat 首页 解决方案:检查 Tomcat 是否启动成功;检查电脑防火墙是否拦截了 Tomcat 端口;核对访问地址的端口号是否正确。
五、Tomcat 管理端使用
1. 管理端地址
- 应用管理端:
http://localhost:8080/manager/html,用于在线管理 Web 应用(部署、卸载、启动、停止)。 - 虚拟主机管理端:
http://localhost:8080/host-manager/html,用于配置和管理 Tomcat 的虚拟主机。
2. 登录授权配置
默认情况下,Tomcat 未配置管理端用户,需手动在conf/tomcat-users.xml中配置具有对应权限的用户,核心配置示例:
<user username="admin" password="123456" roles="manager-gui,admin-gui"/>
配置后需重启 Tomcat,才能使用配置的用户名和密码登录管理端。
3. 核心功能
- 在线部署 / 卸载 Web 应用,支持上传 WAR 包快速部署;
- 手动启动 / 停止已部署的 Web 应用,方便调试;
- 查看所有应用的运行状态、访问路径、占用资源等信息;
- 查看 Tomcat 的服务器版本、JDK 版本、内存使用情况等系统信息。
六、Tomcat 部署 Web 应用的三种方式
1. 直接部署到 webapps 目录(开发环境最常用)
- 将 Web 应用的文件夹或 WAR 包直接复制到 Tomcat 的
webapps目录; - Tomcat 会自动检测到新的应用,完成解压(WAR 包)和部署;
- 访问路径:
http://localhost:8080/应用名/资源名; - 根应用部署:将应用命名为
ROOT(大小写敏感),部署后访问路径为http://localhost:8080/资源名,无需输入应用名。
2. 配置 server.xml 文件部署
- 打开
conf/server.xml文件,在<Host>标签内添加<Context>标签; - 核心配置示例:
<Context path="/myapp" docBase="D:/myapp" debug="0" reloadable="true"/>
-
参数说明:
path:应用的访问路径,如配置为/myapp,则访问地址为http://localhost:8080/myapp;docBase:应用在本地磁盘的真实路径,可配置为绝对路径;reloadable:是否开启自动重载,开发环境设为true(修改代码后无需重启 Tomcat),生产环境设为false(提升服务器性能)。
-
配置后需重启 Tomcat,应用才能生效。
3. 创建独立 xml 配置文件部署(生产环境推荐)
- 进入 Tomcat 的
conf/Catalina/localhost目录; - 创建一个以应用名.xml命名的配置文件(文件名即为访问路径,大小写敏感);
- 在文件内编写
<Context>标签,配置应用的本地路径,核心示例:
<Context docBase="D:/myapp" debug="0" reloadable="false"/>
- 核心优势:无需修改
server.xml全局配置文件,避免全局配置出错;每个应用的配置文件独立,便于管理和维护;配置后无需重启 Tomcat,Tomcat 会自动检测并部署。
七、Tomcat 基础配置优化
针对开发环境和生产环境的不同需求,可对 Tomcat 进行基础配置优化,提升开发效率或服务器性能:
- 自动重载优化:开发环境将
<Context>标签的reloadable设为true,修改 Web 应用代码后无需重启 Tomcat,服务器会自动加载新代码;生产环境设为false,减少服务器资源消耗,提升运行性能。 - 端口优化:若需让浏览器直接访问(无需输入端口号),可将
conf/server.xml中<Connector>标签的port改为 80(浏览器默认的 HTTP 端口)。 - 字符编码优化:在
<Connector>标签中添加URIEncoding="UTF-8",解决 GET 请求的中文乱码问题,配置示例:
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/>
- 日志优化:修改
conf/logging.properties文件,可配置日志级别(如 INFO、ERROR)、日志输出格式、日志保存路径和保留时间,便于日志管理和问题排查。
八、Tomcat 核心运行原理
- Tomcat 本质是Servlet 容器,同时兼具 Web 服务器的功能,可直接处理静态资源(HTML/CSS/JS/ 图片)请求,对于动态的 Servlet/JSP 请求,会交给内部的 Servlet 容器处理。
- 整体请求处理流程: 客户端发送 HTTP 请求 → Tomcat 的 Connector 连接器接收请求 → 根据请求路径匹配对应的 Web 应用 → 静态资源请求由 Tomcat 直接处理并返回响应 → 动态 Servlet/JSP 请求交给 Servlet 容器处理 → Servlet/JSP 执行后生成 HTML 响应 → Connector 将响应返回给客户端。
- JSP 的特殊处理流程: 客户端请求 JSP 文件 → Tomcat 检测到 JSP 未编译 → 将 JSP 编译为 Servlet 源文件(.java)→ 编译为字节码文件(.class)并存储在 work 目录 → Servlet 容器实例化并执行该 Servlet → 生成 HTML 响应返回给客户端 → 后续请求直接调用已编译的 class 文件,无需重复编译。