1. JavaWeb 的概念
1.1 什么是 JavaWeb
JavaWeb 是指,所有通过 Java 语言编写可以通过浏览器访问的程序的总称,叫 JavaWeb。 JavaWeb 是基于请求和响应来开发的。
1.2 什么是请求
请求是指客户端给服务器发送数据,叫请求 Request。
1.3 什么是响应
响应是指服务器给客户端回传数据,叫响应 Response。
1.4 请求和响应的关系
请求和响应是成对出现的,有请求就有响应。

2. Web 资源的分类
注意:这里的web资源指的是不仅仅是java写的,其它语言写的也可以写.
web 资源按实现的技术和呈现的效果的不同,又分为静态资源和动态资源两种。
- 静态资源: html、css、js、txt、mp4 视频 , jpg 图片
- 动态资源: jsp 页面、Servlet 程序,这是java语言写的。还有其它语言写的如:.NET、PHP等
3.常用的 Web 服务器
- Tomcat:由 Apache 组织提供的一种 Web 服务器,提供对 jsp 和 Servlet 的支持。它是一种轻量级的 javaWeb 容器(服务器),也是当前应用最广的 JavaWeb 服务器(免费)。
- Jboss:是一个遵从 JavaEE 规范的、开放源代码的、纯 Java 的 EJB 服务器,它支持所有的 JavaEE 规范(免费)。
- GlassFish: 由 Oracle 公司开发的一款 JavaWeb 服务器,是一款强健的商业服务器,达到产品级质量(应用很少 收费)。
- Resin:是 CAUCHO 公司的产品,是一个非常流行的服务器,对 servlet 和 JSP 提供了良好的支持,性能也比较优良,resin 自身采用 JAVA 语言开发(收费,应用比较多)。
- WebLogic:是 Oracle 公司的产品,是目前应用最广泛的 Web 服务器,支持 JavaEE 规范,
而且不断的完善以适应新的开发要求,适合大型项目(收费,用的不多,适合大公司)。
4. Tomcat 服务器和 Servlet 版本的对应关系
当前企业常用的版本 7.、8.

Servlet 程序从 2.5 版本是现在市面使用最多的版本(xml 配置) 到了 Servlet3.0 之后。就是注解版本的 Servlet 使用。
以 2.5 版本为主线讲解 Servlet 程序。
5. Tomcat 的使用
5.1 安装
找到你需要用的 Tomcat 版本对应的 zip 压缩包,解压到需要安装的目录即可。 
5.2 目录介绍

- bin 专门用来存放 Tomcat 服务器的可执行程序
- conf 专门用来存放 Tocmat 服务器的配置文件
- lib 专门用来存放 Tomcat 服务器的 jar 包
- logs 专门用来存放 Tomcat 服务器运行时输出的日记信息
- temp 专门用来存放 Tomcdat 运行时产生的临时数据
- webapps 专门用来存放部署的 Web 工程。
- work 是 Tomcat 工作时的目录,用来存放 Tomcat 运行时 jsp 翻译为 Servlet 的源码,和 Session 钝化的目录。
5.3 如何启动 Tomcat 服务器
找到 Tomcat 目录下的 bin 目录下的 startup.bat 文件,双击,就可以启动 Tomcat 服务器。
如何测试 Tomcat 服务器启动成功??? 打开浏览器,在浏览器地址栏中输入以下地址测试:
- http://localhost:8080
- http://127.0.0.1:8080
- http://真实 ip:8080
当出现如下界面,说明 Tomcat 服务器启动成功!!! 
常见的启动失败的情况有,双击 startup.bat 文件,就会出现一个小黑窗口一闪而来。这个时候,失败的原因基本上都是因为没有配置好 JAVA_HOME 环境变量。
配置 JAVA_HOME 环境变量: 
常见的 JAVA_HOME 配置错误有以下几种情况: 一:JAVA_HOME 必须全大写。 二:JAVA_HOME 中间必须是下划线,不是减号- 三:JAVA_HOME 配置的路径只需要配置到 jdk 的安装目录即可。不需要带上 bin 目录。
如果配置完JAVA_HOME环境变量启动仍然是闪退,并且通过cmd窗口启动时报如下错误,则还需要配置JRE_HOME的环境变量为jdk的安装路径。 在命令行窗口下键入startup.bat时提示如下图:  提示JRE_HOME环境变量没有正确配置。 解决办法在系统环境变量中加入JRE_HOME环境变量,如下图: 首先新建环境变量。变量名:JRE_HOME,变量值:“JDK所在路径”  再次启动tomcat启动成功 
5.4 另一种启动 tomcat 服务器的方式
1、打开命令行 2、cd 到 你的 Tomcat 的 bin 目录下  3、敲入启动命令: catalina run
这种启动的方式的好处:如果环境变量配置错误,会在此窗口提示报错信息。
5.5 Tomcat 的停止
1、点击 tomcat 服务器窗口的 x 关闭按钮 2、把 Tomcat 服务器窗口置为当前窗口,然后按快捷键 Ctrl+C 3、找到 Tomcat 的 bin 目录下的 shutdown.bat 双击,就可以停止 Tomcat 服务器
5.6 如何修改 Tomcat 的端口号
Mysql 默认的端口号是:3306 Tomcat 默认的端口号是:8080
找到 Tomcat 目录下的 conf 目录,找到 server.xml 配置文件。 
平时上百度:http://www.baidu.com:80,80省略了。 域名代替的是ip地址。 HTTP 协议默认的端口号是:80,80可以省略。
5.7 如何部暑 web 工程到 Tomcat 中
5.7.1 第一种部署方法
只需要把 web 工程的目录拷贝到 Tomcat 的 webapps 目录下即可。
1、在 webapps 目录下创建一个 book 工程(目录): 
2、把上午做的书城第一阶段的内容拷贝到里面:

3、如何访问 Tomcat 下的 web 工程。
只需要在浏览器中输入访问地址格式如下: http://ip:port/工程名/目录下/文件名
分析:localhost:8080相当于访问到Tomact服务器的webapps目录,然后再进入到工程名(web应用),在填写想要访问的那个文件的目录名 文件名。 
5.7.2 第二种部署方法:
找到 Tomcat 下的 conf 目录\Catalina\localhost\ 下,创建如下的配置文件: 一个xml文件就代表一个工程。 
abc.xml 配置文件内容如下:
<!-- Context 表示一个工程上下文
path 表示工程的访问路径:/abc
docBase 表示你的工程目录在哪里 -->
<Context path="/abc" docBase="E:\book" />
访问这个工程的路径如下:http://ip:port/abc/ 就表示访问 E:\book 目录
这种方式的好处是:不用在把web应用存放到webapps目录下了,可以存放磁盘任何位置。 
5.8 手托html页面到浏览器和在浏览器中输入http://ip:端口号/工程名/访问的区别
手托 html 页面的原理: 手托:指的是找到webapps的目录下的web应用中想要访问的文件,然后选中直接拖到浏览器中也可以进行访问。 
输入访问地址访问的原因:

5.9 ROOT 的工程的访问,以及 默认 index.html 页面的访问
当我们在浏览器地址栏中输入访问地址如下: http://ip:port/ ====>>>> 没有工程名的时候,默认访问的是 ROOT 工程。
当我们在浏览器地址栏中输入的访问地址如下: http://ip:port/工程名/ ====>>>> 没有资源名,默认访问 index.html 页面,也就是说如果每个工程都写了一个index.html页面,那么此时访问没有指定具体的资源名,默认访问的是当前工程名下的index.html页面。
注意:
- 这个index.html页面,指的是前缀index,不论你的后缀是什么,如: index.jsp这样的仍然可以访问。
- 前提是此页面没有放在WEB-INFO目录下。
6. IDEA 整合 Tomcat 服务器
整合的目的:将Tomcat服务器整合到Eclipse/idea工具中,可以通过Eclipse/idea启动、关闭tomcat服务器,更重要的是,可以非常方便的将在Eclipse/idea中创建的Web项目发布到Tomcat服务器中运行。
操作的菜单如下:File | Settings | Build, Execution, Deployment | Application Servers 
配置你的 Tomcat 安装目录: 
就可以通过创建一个 Model 查看是不是配置成功!!! 
7.IDEA 中动态 web 工程的操作
7.1 IDEA 中如何创建动态 web 工程
1、创建一个新模块: 
2、选择你要创建什么类型的模块:

3、输入你的模块名,点击【Finish】完成创建。

4、创建成功如下图: 
5.习惯上在WEB-INF目录下创建一个目录lib,用来保存jar包。 
7.2 Web 工程的目录介绍

7.3 何给动态 web 工程添加额外 jar 包
7.3.1 方式一
1.首先拷贝jar包到lib目录。 
2.添加到类库  
7.3.1 方式二
1、可以打开项目结构菜单操作界面,添加一个自己的类库:  2、添加你你类库需要的 jar 包文件。 
3、选择你添加的类库,给哪个模块使用: 
4、选择 Artifacts 选项,将类库,添加到打包部署中: 
7.4 如何在 IDEA 中部署工程到 Tomcat 上运行
1、建议修改 web 工程对应的 Tomcat 运行实例名称: 说明:每创建一个动态web工程,同时会实例化一个tomact,建议修改名字和模块名一致。 
2、确认你的 Tomcat 实例中有你要部署运行的 web 工程模块:

3、你还可以修改你的 Tomcat 实例启动后默认的访问地址: 
4、在 IDEA 中如何运行,和停止 Tomcat 实例。 4.1、正常启动 Tomcat 实例: 
4.2、Debug 方式启动 Tomcat 运行实例: 
4.3、停止 Tomcat 运行实例:

4.4、重启 Tomcat 运行实例:  各个选项说明: 
7.5 修改工程访问路径
建议:一般和创建的模块名保持一致。 
7.6 修改运行的端口号

7.7 修改运行使用的浏览器

7.8 配置资源热部署

|