### Tomcat基础知识与JavaWeb开发要点
#### 一、JavaWeb概述
1. **定义**:
- JavaWeb指的是所有通过Java语言编写的、能够通过浏览器访问的应用程序。
- JavaWeb采用请求-响应模式进行开发,即客户端向服务器发送请求(Request),服务器处理后返回响应(Response)。
2. **请求**:
- 请求(Request)指的是客户端向服务器发送的数据。
- 请求数据通常包括HTTP头信息、URL参数等。
3. **响应**:
- 响应(Response)指的是服务器向客户端返回的数据。
- 响应数据也包括HTTP头信息、状态码、实体内容等。
4. **请求与响应的关系**:
- 请求与响应是成对出现的,即每一次客户端发起的请求都会得到服务器端的响应。
- 这种模式确保了客户端与服务器之间的交互是有序且完整的。
#### 二、Web资源分类
- **静态资源**:包括HTML、CSS、JavaScript、文本文件、视频、图片等。这些资源由服务器直接发送给客户端,无需服务器端处理。
- **动态资源**:包括JSP页面、Servlet程序等。这类资源需要服务器进行处理后才能返回给客户端。
#### 三、常用Web服务器
1. **Tomcat**:
- 提供对JSP和Servlet的支持。
- 是轻量级JavaWeb容器,应用广泛且免费。
- 特别适合初学者学习和小型项目部署。
2. **JBoss**:
- 遵循JavaEE规范的开源EJB服务器。
- 支持所有JavaEE规范。
- 适用于企业级应用。
3. **GlassFish**:
- 商业级别的服务器。
- 达到产品级质量,但应用较少。
4. **Resin**:
- 流行的服务器之一。
- 对Servlet和JSP支持良好,性能优秀。
5. **WebLogic**:
- 应用最广泛的Web服务器之一。
- 支持JavaEE规范。
#### 四、Servlet程序与Tomcat目录结构
1. **Servlet版本**:
- 2.5版本是目前市面上使用最广泛的版本。
- 3.0版本开始支持注解配置。
2. **Tomcat目录介绍**:
- **bin**:存放Tomcat可执行文件。
- **conf**:存放Tomcat配置文件。
- **lib**:存放Tomcat所需的JAR包。
- **logs**:存放运行日志。
- **temp**:存放运行时产生的临时数据。
- **webapps**:存放部署的Web工程。
- **work**:存放Tomcat运行时JSP转换为Servlet的源码及Session钝化目录。
3. **部署Web工程**:
- 方法一:直接将Web工程拷贝至`webapps`目录下。
- 方法二:在`conf\Catalina\localhost\`目录下创建XML配置文件。
4. **访问Web工程**:
- 访问格式:`http://ip:port/工程名/目录下/文件名`
5. **协议区别**:
- 文件拖拽至浏览器:使用`file:///`协议。
- 通过URL访问:使用`http://`协议。
6. **ROOT工程与默认index.html**:
- 访问`http://ip:port/`默认访问ROOT工程。
- 访问`http://ip:port/工程名/`默认访问index.html页面。
#### 五、Idea中的动态Web工程操作
1. **创建动态Web工程**:
- 步骤:新建模块 → 选择Web工程 → 输入模块名 → Finish。
2. **添加外部JAR包**:
- 打开项目结构菜单。
- 添加自定义类库。
- 浏览并选择所需JAR包。
- 设置类库使用范围。
- 在Artifacts选项中将类库添加至部署清单。
通过以上内容的学习,可以深入理解JavaWeb的基本概念、Tomcat服务器的工作原理以及如何在IDEA环境中进行Web工程的开发和部署。这对于JavaWeb开发者来说是非常重要的基础知识点。