一、介绍
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应用程序
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)做详解,通过一个时序图加强 对这个重要过程的理解,****重要,**核心.