> 文章列表 > JAVAWeb05-Tomcat

JAVAWeb05-Tomcat

JAVAWeb05-Tomcat

1. Tomcat

1.1 概述

1.1.1 官方文档

地址: https://tomcat.apache.org/tomcat-8.0-doc/

1.1.2 WEB 开发介绍

  1. WEB,在英语中 web 表示网/网络资源(页面,图片,css,js)意思,它用于表示 WEB 服务器(主机)供浏览器访问的资源
  2. WEB 服务器(主机)上供外界访问的 Web 资源分为:
  • 静态 web 资源(如 html 页面):指 web 页面中供人们浏览的数据始终是不变。
  • 动态 web 资源,比如 Servlet(java)、PHP 等。
  1. 静态 web 资源开发技术
  • Html、CSS,js 等
  1. 常用动态 web 资源开发技术:
    Servlet、SpringBoot、SpringMVC、PHP、ASP.NET 等

1.1.3 JavaWeb 开发技术栈图-一图胜千言

JAVAWeb05-Tomcat

1.1.4 BS 与 CS 开发介绍

1.1.4.1 BS 开发

  1. B: browser(浏览器, 种类太多 FireFox, chrome, ie, edge,)
  2. S: Server(服务端, 考虑很多)
  3. 示意图
    JAVAWeb05-Tomcat
  4. 对 BS 的解读
    (1) 兼容性 , 因为浏览器的种类很多,发现你写的程序,在某个浏览器会出现问题,其它浏览器正常
    (2) 安全性, 通常情况下,BS 安全性不如 CS 好控制
    (3) 易用性, BS 好于 CS, 浏览器电脑有
    (4) 扩展性, BS 相对统一,只需要写 Server
    JAVAWeb05-Tomcat

1.1.4.2 CS 开发

  1. C: Client(客户端)
  2. S: Server(服务端)
  3. 示意图
    JAVAWeb05-Tomcat
    JAVAWeb05-Tomcat

1.1.5 JavaWeb 服务软件

1.1.5.1 JavaWeb 服务器软件介绍

  1. 学习 JavaWeb 开发,需要先安装 JavaWeb 服务软件【我们把安装了 JavaWeb 服务软件主机称为 Web 服务器/JavaWeb 服务器】,然后在 web 服务器中开发相应的 web 资源。[Javaweb 服务器,Mysql 服务器]
  2. 提问:学习 JavaWeb 开发,为什么必须要先装 WEB 服务软件?
    答:需要安装, 理解 Tomcat 本质就是一个 Java 程序, 但是这个 Java 程序可以处理来自浏览器的 HTTP 请求, 和我们前面讲的 java 网络服务(多人聊天, Server)

1.1.5.2 手写简单 Web 服务程序

  1. 需求: 手写 MyWebServer.java , 让大家体验一下 JavaWeb 服务本质【先初步体会,后面还会深入 不急】,
    提醒: 这里,我们需要使用到 Java 基础(IO/网络), 看的Java 基础,
    http://localhost:9999 表示 浏览器向 localhost(127.0.0.1)表示本机的 9999 端口发出请求

JAVAWeb05-Tomcat

  1. 创建 mytomcat 的 Java 应用程序.(如图)
    JAVAWeb05-Tomcat

  2. 创建 E:\\tedu_code\\mytomcat\\src\\hello.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>hello</title>
</head>
<body><h1>Hello, I AM WEB Server!</h1>
</body>
</html>
  1. 创建 E:\\tedu_code\\mytomcat\\src\\MyWebServer.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;/*** 这是我们自己写的一个web服务, 可以返回hello.html给浏览器*/
public class MyTomcat {public static void main(String[] args) throws IOException {//1.在9999端口监听ServerSocket serverSocket = new ServerSocket(9999);//如果serverSocket 没有关闭,就等待连接, 不停的等待while (!serverSocket.isClosed()) {System.out.println("=====我的web服务在 9999端口监听=====");//2. 等待浏览器/客户端连接, 得到socket//   该socket用于通信Socket socket = serverSocket.accept();//3. 通过socket 得到 输出流,[]OutputStream outputStream = socket.getOutputStream();//   返回给浏览器/客户端//4. 读取 hello.html 文件返回即可=> 如何读取文件内容//   得到文件输入流(字符输入流), 和 src/hello.htmlBufferedReader bufferedReader =new BufferedReader(new FileReader("src/hello.html"));String buf = "";//   循环读取hello.htmlwhile ((buf = bufferedReader.readLine()) != null) {outputStream.write(buf.getBytes());}outputStream.close();socket.close();}serverSocket.close();}
}

请使用火狐浏览器进行测试,谷歌等浏览器会出现异常

  1. 完成测试: 浏览器 http://localhost:9999/
    JAVAWeb05-Tomcat

1.1.5.3 常用 JavaWeb 服务软件

  1. Tomcat:由 Apache 组织提供的一种 Web 服务器,提供对 jsp 和 Servlet 的支持。它是一种轻量级的 javaWeb 容器(服务器),也是当前应用最广的 JavaWeb 服务器(免费)
    JAVAWeb05-Tomcat

  2. Jboss:是一个遵从 JavaEE 规范的、它支持所有的 JavaEE 规范(免费)。
    JAVAWeb05-Tomcat

  3. GlassFish: 由 Oracle 公司开发的一款 JavaWeb 服务器,是一款商业服务器,达到产品级质量(应用很少)。
    JAVAWeb05-Tomcat

  4. Resin:是 CAUCHO 公司的产品,是一个非常流行的服务器,对 servlet 和 JSP 提供了良好的支持, 性能也比较优良(收费)。
    JAVAWeb05-Tomcat

  5. WebLogic【很猛】:是 Oracle 公司的产品,支持 JavaEE 规范, 而且不断的完善以适应新的开发要求,适合大型项目(收费,用的不多,适合大公司)。
    JAVAWeb05-Tomcat

1.2 Tomcat 下载和安装

  1. Tomcat 官方站点:http://tomcat.apache.org/
  2. 获取 Tomcat 安装程序包
  • tar.gz文件是Linux操作系统下的安装版本
  • zip文件是Windows系统下的压缩版本
    JAVAWeb05-Tomcat
  1. 使用 zip 包安装 Tomcat(Windows)
  • 找到你需要用的 Tomcat 版本对应的 zip 压缩包,解压到需要安装的目录即可
  • 老师解压在 D:\\program\\apache-tomcat-8.0.50

JAVAWeb05-Tomcat

  1. which version:https://tomcat.apache.org/whichversion.html ,可以看到Tomcat仍然是支持jsp 和 el
    JAVAWeb05-Tomcat
    Tomcat 最好的小伙伴是 JSP+EL

1.3 Tomcat 启动

  1. 双击 bin 目录下的 startup.bat 文件
    JAVAWeb05-Tomcat

  2. 输入 http://localhost:8080/,显示如下界面代表安装成功, 默认在 8080 端口
    JAVAWeb05-Tomcat

  3. 注意,不要关闭黑窗口,关闭了,tomcat 服务就停止了.
    JAVAWeb05-Tomcat

  4. 干货:

  • 在开发中,我们可以看一下哪些端口在监听:netstat -anb (使用管理员权限)

1.4 Tomcat 启动故障排除

  1. 双击 startup.bat 文件,出现一个小黑窗口然后就没了,原因是因为没有配置好JAVA_HOME 环境变量,Tomcat 本质是一个 Java 程序,所以要 jdk, 会去根据 JAVA_HOME 使用指定 jdk
  2. JAVA_HOME 必须全大写
  3. JAVA_HOME 中间必须是下划线
  4. JAVA_HOME 配置的路径只需要配置到 jdk 的安装目录即可。不需要带上 bin 目录
  5. 端口 8080 被占用 [查看端口 netstat -anb, 使用的非常多]
  6. 如果其它服务程序占用了 8080 端口,可以关闭该服务,或者修改 Tomcat 服务的默认
    端口 8080 [后面讲]
  7. 配置 JAVA_HOME 环境变量

JAVAWeb05-Tomcat
JAVAWeb05-Tomcat

1.5 Tomcat 目录结构

JAVAWeb05-Tomcat
说明:

  1. server.xml 用于配置 tomcat 的基本设置(启动端口,关闭端口, 主机名)
    JAVAWeb05-Tomcat
    JAVAWeb05-Tomcat

  2. web.xml 用于指定 tomcat 运行时配置(比如 servlet 等…)
    JAVAWeb05-Tomcat

JAVAWeb05-Tomcat

  1. webapps 目录是存放 web 应用,就是网站
    JAVAWeb05-Tomcat
    默认访问
    JAVAWeb05-Tomcat

1.6 catalina 启动 Tomcat

  1. 进入到 Tomcat 的 bin 目录下
    JAVAWeb05-Tomcat
  2. 执行命令: catalina run
    JAVAWeb05-Tomcat

1.7 停止 Tomcat

  1. 点击 tomcat 服务器窗口,直接点击的关闭按钮
    JAVAWeb05-Tomcat
  2. 进入 Tomcat 的 bin 目录下的 shutdown.bat 双击,就可以停止 Tomcat 服务器(推荐)
    JAVAWeb05-Tomcat

1.8 修改 Tomcat 服务端口

  1. Tomcat 目录下的 conf 目录,修改 server.xml 配置文件
    JAVAWeb05-Tomcat
  2. 说 明:http://localhost , 默 认 是 访 问 80 端 口 , 即 http://localhost 等 价http://localhost:80

1.9 Tomcat 服务中部署 WEB 应用

  • 什么是Web应用
  1. WEB应用是多个web资源的集合。简单的说,可以把web应用理解为硬盘上的一个目录,这个目录用于管理多个web资源。
  2. Web应用通常也称之为web应用程序,或web工程,通俗的说 就是网站。
  • WEB应用组成

一个 WEB 应用由多个 WEB 资源或其它文件组成,包括 html 文件、css 文件、js 文件、动态 web 页面、java 程序、支持 jar 包、配置文件等。开发人员在开发 web 应用时,按照规定目录结构存放这些文件。否则,在把 web 应用交给 web 服务器管理时,不仅可能会使web 应用无法访问,还会导致 web 服务器启动报错。

  • JavaWeb程序/应用/工程目录结构

JAVAWeb05-Tomcat

部署方式1:将 web 工程的目录拷贝到 Tomcat 的 webapps 目录下

  1. news Web工程(目前都是静态资源 html, 图片)
  2. 将该news目录/文件夹 拷贝到 Tomcat 的webapps目录下
  3. 浏览器输入: http://ip[域名]:port/news/子目录…/文件名
    JAVAWeb05-Tomcat

部署方式2:通过配置文件来部署(只做介绍)

  1. 在Tomcat 下的 conf 目录\\Catalina\\localhost\\ 下,配置文件,比如hsp.xml(提醒:知道Tomcat通过配置,可以把一个web应用,映射到指定的目录,可以解决磁盘空间分配的问题.)
    JAVAWeb05-Tomcat
    JAVAWeb05-Tomcat
  2. 访问web工程: http://ip[域名]:port/hsp/index.html 就表示访问 D:\\album 目录下的index.html
  • ROOT 的工程的访问
  1. 在浏览器地址栏中输入访问地址如下:http://ip[域名]:port,没有Web工程/应用名时,默认访问的是 ROOT 工程
  2. 在浏览器地址栏中输入的访问地址如下: http://ip[域名]:port/工程名/ ,没有资源名,默认访问 index.jsp 页面

1.10 浏览器访问 Web 服务过程详解

1.10.1 回顾前面的 JavaWeb 开发技术栈图

JAVAWeb05-Tomcat

1.10.2 浏览器访问 web 服务器文件 UML 时序图!!!

UML:Unified Modeling Language 统一建模语言

  1. 说明
    下面,我们对浏览器访问 web 服务器资源(html,css,图片,js)做详解,通过一个时序图加强对这个重要过程的理解, 重要,核心!
    JAVAWeb05-Tomcat

host文件所在位置:C:\\Windows\\System32\\drivers\\etc

1.11 IDEA 开发 JavaWeb 工程

1.11.1 开发 javaweb 工程 & 配置 TomCat &启动项目

  1. 需求/图解:使用 IDEA 开发 JavaWeb 工程 fishWeb , 并将网页部署到 fishWeb 工程
    JAVAWeb05-Tomcat
  2. 参考开发文档

一、新建javaweb工程
1.先创建一个java项目
JAVAWeb05-Tomcat

2.在新建好的项目上点击右键,点Add Framework Support
JAVAWeb05-Tomcat

3.点击导入Web Application,点击ok即可
JAVAWeb05-Tomcat

二、配置TomCat&启动项目
1.点击右上角的编辑配置
JAVAWeb05-Tomcat

2.点击+号,找到Tomcat Server
JAVAWeb05-Tomcat

3.选择一个本地下载好的Tomcat
JAVAWeb05-Tomcat
说明:

  • Name : 在命名时,建议写成JavaWeb 名,比如 news_tomcat8 或者 crm_tomcat8
  • 这样,当有多个web项目时,就可以明确应当启动哪个web项目,不乱

4.在右边的部署栏Deployment中点击+号,添加构建
JAVAWeb05-Tomcat
说明:

  • +: 将要部署的web工程,加入到Tomcat运行实例中.
  • -: 从Tomcat实例中,删除不需要的web 模块

 
5.这里可以选择只保留“/”
JAVAWeb05-Tomcat

说明: Application Context 是工程路径
建议改成当前Web工程名(项目名),比如 /news , /crm 等,更好区分.
 
6.选择热加载,点击ok完成运行环境部署
JAVAWeb05-Tomcat

说明:
HTTP port 可以指定运行Tomcat端口, 不会修改server.xml, 只是针对当前配置
在 Open browser After launch 可以下拉,选择默认运行的浏览器
 
7.运行Tomcat,访问项目:这里注意要直接选择Tomcat,点击运行按钮,而不是在jsp页面上右键点击运行,这样会访问不到页面
JAVAWeb05-Tomcat

8.可以看到tomcat启动成功后,会自动跳转到浏览器打开页面
JAVAWeb05-Tomcat

到这里,jsp页面的访问已经没问题了

1.11.2 注意事项和细节

  1. 热加载选项说明
    JAVAWeb05-Tomcat

解读
(1) on update action : 表示当我们更新操作是, Tomcat 会自动更新类和资源 (当jsp/html文件修改时,可以生效, 但是如果你修改的 java 文件, 需要 Redepoly 才会生效)
(2) on frame deactivation : 表示 IDEA 失去焦点(比如最小化), 也会导致 jsp/html 发生更新 , 但是 java 修改了,还是需要 redeploy

  1. 端口修改
    JAVAWeb05-Tomcat

这里修改的端口, 只会影响到当前的项目,而不是去修改 server.xml

  1. out 目录是什么
    JAVAWeb05-Tomcat

当 tomcat 启动时,会生成 out 目录,该目录就是 原项目资源的映射,我们浏览器访问的资源是 out 目录

  1. 当我们从外部拷贝资源到项目(图片, 文件, js , css 等), 如果出现 404 不能访问错误, 解决方式 rebulid project -> 重启 Tomcat, 强调!!!!!
    JAVAWeb05-Tomcat

1.11.3 JavaWeb 工程的目录介绍

JAVAWeb05-Tomcat
JAVAWeb05-Tomcat