一、介绍
1 官方文档
地址: https://tomcat.apache.org/tomcat-8.0-doc/
2 WEB 开发介绍
2.1 WEB
- 在英语中 web 表示网/网络资源(页面,图片,css,js)意思,它用于表示 WEB 服务器(主机)供浏览器访问的资源
2.2 Web 资源
WEB
服务器
(
主机
)
上供外界访问的
Web
资源分为:
- 静态 web 资源(如 html 页面):指 web 页面中供人们浏览的数据始终是不变。
- 动态 web 资源,比如 Servlet(java)、PHP 等。
2.3 静态 web 资源开发技术
- Html、CSS,js 等
2.4 常用动态 web 资源开发技术
Servlet
、
SpringBoot
、
SpringMVC
、
PHP
、
ASP.NET
等
3 JavaWeb 开发技术栈图
4 BS 与 CS 开发介绍
4.1 BS 开发
- B: browser(浏览器, 种类太多 ff, chrome, ie, edge,)
- S: Server(服务端, 考虑很多)
- 示意图
BS 的解读:
- (1) 兼容性 , 因为浏览器的种类很多,发现你写的程序,在某个浏览器会出现问题,其它浏览器正常
- (2) 安全性, 通常情况下,BS 安全性不如 CS 好控制
- (3) 易用性, BS 好于 CS, 浏览器电脑有
- (4) 扩展性, BS 相对统一,只需要写 Server
4.2 CS 开发
- C: Client(客户端)
- S: Server(服务端)
- 示意图
5 JavaWeb 服务软件
5.1 JavaWeb 服务器软件介绍
- 学习 JavaWeb 开发,需要先安装 JavaWeb 服务软件【我们把安装了 JavaWeb 服务软件 主机称为 Web 服务器/JavaWeb 服务器】,然后在 web 服务器中开发相应的 web 资源。 [Javaweb 服务器,Mysql 服务器]
- 学习 JavaWeb 开发,为什么必须要先装 WEB 服务软件?
- 需要安装, 理解 Tomcat 本质就是一个 Java 程序, 但是这个 Java 程序可以处理来自浏 览器的 HTTP 请求, 和我们前面讲的 java 网络
5.2 手写简单 Web 服务程序
5.2.1 需求
- 手写 MyWebServer.java , 体验一下 JavaWeb 服务本质【先初步体会,后面 还会深入 不急】,
- 这里,我们需要使用到 Java 基础(IO/网络)
- http://localhost:9999 表示 浏览器向 localhost(127.0.0.1)表示本机的 9999 端口发出请求
其实就是利用网络编程进行服务器与浏览器的通信
5.2.2 创建 hspedu_mytomcat 的 Java 应用程序
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
/**
* @author 林然
* @version 1.0
* 这是我们自己写的web服务,可以返回hello.html给浏览器
*/
public class MyTomcat {
public static void main(String[] args) throws IOException {
//1 在9999端口监听
ServerSocket serverSocket=new ServerSocket(9999);
//如果sewrverSocket没有关闭,就等待连接
while (!serverSocket.isClosed()){
System.out.println("在我的web服务正在监听9999端口");
//2 . 等待浏览器/客户端连接,得到socket
//在该socket用于通信
Socket socket=serverSocket.accept();
//3 通过socket得到输出流
OutputStream outputStream=socket.getOutputStream();
//4 读取hello.html文件返回即可
//得到了一个文件输入流【字符输入流】
BufferedReader bufferedReader = new BufferedReader(new FileReader("src/hello.html"));
String buf="";
while ((buf=bufferedReader.readLine())!=null){
//返回给浏览器/客户端
outputStream.write(buf.getBytes());
}
outputStream.close();
socket.close();
}
serverSocket.close();
}
}
5.3 常用 JavaWeb 服务软件
5.3.1 Tomcat
- 由 Apache 组织提供的一种 Web 服务器,提供对 jsp 和 Servlet 的支持。它 是一种轻量级的 javaWeb 容器(服务器),也是当前应用最广的 JavaWeb 服务器(免费)。
5.3.2 Jboss
- 是一个遵从 JavaEE 规范的、它支持所有的 JavaEE 规范(免费)
5.3.3 GlassFish
- 由 Oracle 公司开发的一款 JavaWeb 服务器,是一款商业服务器,达到产品级质量(应用很少)。
5.3.4 Resin
- 是 CAUCHO 公司的产品,是一个非常流行的服务器,对 servlet 和 JSP 提供了 良好的支持, 性能也比较优良(收费)。
5.3.5 WebLogic【很猛】
- 是 Oracle 公司的产品,支持 JavaEE 规范, 而且不断的完善以适应新的开发要求,适合大型项目(收费,用的不多,适合大公司)
6 Tomcat
6.1 Tomcat 下载和安装
- Tomcat 官方站点:http://tomcat.apache.org/
- 获取 Tomcat 安装程序包
- 使用 zip 包安装 Tomcat
可以看到
Tomcat
仍然是支持
jsp
和 el,Tomcat
最好的小伙伴是
JSP+EL
6.2 Tomcat 启动
6.3 Tomcat 启动故障排除
- 双击 startup.bat 文件,出现一个小黑窗口然后就没了,原因是因为没有配置好 JAVA_HOME 环境变量Tomcat 本质是一个 Java 程序,所以要 jdk, 会去根据 JAVA_HOME 使用指定 jdk
- JAVA_HOME 必须全大写
- JAVA_HOME 中间必须是下划线
- JAVA_HOME 配置的路径只需要配置到 jdk 的安装目录即可。不需要带上 bin 目录
- 端口 8080 被占用 [查看端口 netstat -anb, 使用的非常多]
- 如果其它服务程序占用了 8080 端口,可以关闭该服务,或者修改 Tomcat 服务的默认
- 端口 8080 [后面讲]
6.4 Tomcat 目录结构
- server.xml 用于配置 tomcat 的基本设置(启动端口,关闭端口, 主机名)
- wex.xml 用于指定 tomcat 运行时配置(比如 servlet 等..)
- webapps 目录是存放 web 应用,就是网站
6.5 catalina 启动 Tomcat
6.6 停止 Tomcat
- 点击 tomcat 服务器窗口,直接点击的关闭按钮
进入 Tomcat 的 bin 目录下的 shutdown.bat 双击,就可以停止 Tomcat 服务器(推荐)
6.7 修改 Tomcat 服务端口
- Tomcat 目录下的 conf 目录,修改 server.xml 配置文件
http://localhost ,
默 认 是 访 问
80
端 口
,
即
http://localhost 等 价 http://localhost:80
6.8 Tomcat 服务中部署 WEB 应用
6.8.1 基本概念
- 什么是Web应用
- WEb应用组成
一个 WEB
应用由多个
WEB
资源或其它文件组成,包括
html
文件、
css
文件、
js
文件、动
态
web
页面、
java
程序、支持
jar
包、配置文件等。开发人员在开发
web
应用时,按照
规
定目录结构
存放这些文件。否则,在把
web
应用交给
web
服务器管理时,不仅可能会使
web
应用无法访问,还会导致
web
服务器启动报错
- JavaWeb程序/应用/工程目录结构
6.8.2 部署方式
- 部署方式1:将 web 工程的目录拷贝到 Tomcat 的 webapps 目录下
- 部署方式2:通过配置文件来部署(只做介绍)
在
Tomcat
下的
conf
目录
\Catalina\localhost\
下
,
配置文件,比如
hsp.xml(
提醒:知道
Tomcat
通过配置,可以把一个
web
应用,映射到指定的目录,可以解决磁盘空间分配
- 访问web工程: http://ip[域名]:port/hsp/index.html 就表示访问 D:\album 目录下index.html
6.8.3 ROOT 的工程的访问
- 在浏览器地址栏中输入访问地址如下:http://ip[域名]:port,没有Web工程/应用名时,
- 默认访问的是 ROOT 工程
- 在浏览器地址栏中输入的访问地址如下: http://ip[域名]:port/工程名/ ,没有资源名,
- 默认访问 index.jsp 页面
6.9 浏览器访问 Web 服务过程详解
6.9.1 回顾前面的 JavaWeb 开发技术栈图
6.9.2 浏览器访问 web 服务器文件 UML 时序图
下面,我们对浏览器访问 web 服务器资源(html,css,图片,js)做详解,通过一个时序图加强 对这个重要过程的理解, 重要,核心.