JavaWeb系列五: Tomcat

本章资料

  1. FastStone Capture截图录屏软件

Tomcat

1.1 官方文档

官方文档: https://tomcat.apache.org/tomcat-8.0-doc/

Tomcat 8, Tomcat 9, Tomcat 10 选哪个版本都无所谓. 到后面学习springboot的时候, 自己会带一个tomcat, 直接是9的版本, 所以现在使用哪个版本都无所谓, 只要能够达到熟悉JavaWeb的目的, 就OK了. 这里选择8这个版本.

1.2 WEB开发介绍

1.WEB, 在英语中web表示网/网络资源(页面, 图片, css, js)意思, 它用于表示WEB服务器(主机)供浏览器访问的资源.

2.WEB服务器(主机)上供外界访问的Web资源分为

  • 静态web资源(比如html页面): 指web页面中供人们浏览的数据始终是不变.
  • 动态web资源, 比如 Servlet(java), PHP等.

3.静态web资源开发技术

  • Html, Css, Js

4.常用动态web资源开发技术
Servlet, SpringMVC, SpringBoot, PHP, ASP.NET

1.3 JavaWeb开发技术栈图

在这里插入图片描述

1.4 BS和CS开发介绍

BS开发

1.B: browser(浏览器, 种类太多, ff, chrome, ie, edge)
2.S: Server(服务端, 考虑很多)

3.示意图
在这里插入图片描述
4.BS解读
(1) 兼容性: 因为浏览器的种类太多, 会发现你写的程序, 在某个浏览器会出现问题,其它浏览器上正常;
(2) 安全性, 通常情况下, BS安全性不如CS好控制;
(3) 易用性, BS好于CS, 浏览器电脑有
(4) 扩展性, BS相对统一, 只需要写Server

CS开发

1.C: Client(客户端)
2.S: Server(服务端)
3.客户端升级很麻烦,还得重新安装。但是浏览器就不同了,刷新一下即可

4.示意图
在这里插入图片描述
在这里插入图片描述

1.5 JavaWeb服务软件

JavaWeb服务器软件介绍

1.学习JavaWeb开发, 需要先安装JavaWeb服务软件(我们把安装了JavaWeb服务软件的主机成为web服务器/JavaWeb服务器), 然后在web服务器中开发相应的web资源.
[JavaWeb服务器, mysql服务器]

2.提问: 学习JavaWeb开发, 为什么必须要先安装WEB服务软件?
答: 需要安装, 理解 Tomcat 本质就是一个 Java 程序, 但是这个 Java 程序可以处理来自浏览器的 HTTP 请求, 和我们前面学习过的 java 网络有关.
服务(多人聊天, Server)

手写简单Web服务需求

1.需求: 手写MyWebServer.java, 体验一下 JavaWeb 服务本质.

这里会用到Java基础(IO/网络).

http://localhost.9999 表示浏览器向localhost(127.0.0.1 表示本机)9999端口发出请求
在这里插入图片描述

2.创建 Java 应用程序zzw_mytomcat
在这里插入图片描述

3.创建src/hello.html

hello, I am Web Server

4.创建src/MyTomcat.java

//这是我们自己写的一个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 = serverSocket.accept();
            //3.通过socket得到输出流
            OutputStream outputStream = socket.getOutputStream();
            //返回给浏览器/客户端
            //读取hello.html文件返回即可->如何读取文件内容
            //得到文件输入流(字符输入流)[从磁盘加载到内存]
            BufferedReader bufferedReader =
                    new BufferedReader(new FileReader("src/hello.html"));
            String line = "";
            //循环读取hello.html
            while ((line = bufferedReader.readLine()) != null) {
                outputStream.write(line.getBytes());
            }
            //4.关闭流
            outputStream.close();
            socket.close();
        }
        serverSocket.close();
    }
}

5.完成测试. 启动程序, 浏览器请求 http://locahost:9999/

常用JavaWeb服务软件

1.Tomcat: 由Apache组织提供的一种Web服务器, 提供对jspServlet 的支持. 它是一种轻量级的 javaweb 容器(服务器), 也是当前应用最广的 JavaWeb 服务器(免费).
在这里插入图片描述

2.Jboss: 是一个遵从JaveEE规范的, 它支持所有的 JavaEE 规范(免费).
在这里插入图片描述

3.GlassFish: 由 Oracle 公司开发的一款 JavaWeb 服务器, 是一款商业服务器, 达到产品及质量(引用很少).
在这里插入图片描述

4.Resin: 是 CAUCHO 公司的产品, 是一个非常流行的服务器, 对 servletJSP 提供了良好的支持, 性能也比较优良(收费).
在这里插入图片描述

5.WebLogic(很猛): 是 Oracle 公司的产品, 支持 JavaEE 规范, 而且不断地完善以适应新的开发要求, 适合大型项目(收费, 用的不多, 适合大公司).
在这里插入图片描述

1.6 Tomcat

Tomcat下载和安装

1.Tomcat 官方站点: https://tomcat.apache.org/

2.获取 Tomcat 安装程序包

  • tar.gz是Linux操作系统下的安装版本
  • zip文件是Windows系统下的压缩版本

3.使用 zip 包安装 Tomcat

  • 找到你需要用的 Tomcat 版本对应的 zip 压缩包, 解压到需要安装的目录即可
  • 这里解压在 D:\Program Files\apache-tomcat-8.5.82

4.https://tomcat.apache.org/whichversion.html, 可以看到 Tomcat 仍然是支持 jsp 和 el
在这里插入图片描述

5.补充一点: Tomcat 最好的小伙伴是 JSP+EL

Tomcat启动

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

2.浏览器地址栏输入http://localhost:8080, 默认8080端口, 显示如下界面代表安装成功

3.注意, 不要关闭黑窗口, 关闭了, tomcat服务就停止了
在这里插入图片描述在这里插入图片描述

4.私房菜
1)在开发中, 我们可以看一下哪些端口在监听

2)netstat -anb(使用管理员权限)

3. 配置环境变量, 系统环境变量下新建CATALINA_HOME, 值为Tomcat目录,定位到bin的上级目录即可, 在Path下新增%CATALINA_HOME%\bin

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 环境变量
在这里插入图片描述

1.5 Tomcat目录说明

在这里插入图片描述

conf目录

  1. server.xml 用于配置tomcat的基本设置(启动端口, 关闭端口, 主机名)
    在这里插入图片描述
  2. web.xml 用于指定tomcat运行时配置(比如servlet等…)

logs目录

  1. tomcat启动一次会产生五个日志文件在这里插入图片描述

webapps目录

  1. 存放web应用, 也就是网站
    在webapps下新建test目录
    在test目录下新建html文件, 文件中用img标签引用backgroundImage.webp
    地址栏访问: http://localhost:8080/test/hello.html即可在这里插入图片描述
    在这里插入图片描述

1.6 catalina启动tomcat

  1. 在bin目录下打开cmd
    在这里插入图片描述
  2. 输入 catalina run
    在这里插入图片描述

1.7 停止tomcat

  1. 点击Tomcat服务器窗口右上角的×号关闭,相当于意外终止, 这个关闭指令不会产生日志
    在这里插入图片描述
  2. 运行Tomcat的bin目录下的shutdown.bat, 就可以停止Tomcat服务器(推荐)
    在这里插入图片描述

1.8 Tomcat部署Web应用

JavaWeb程序应用工程目录结构

在这里插入图片描述

部署方式一

  1. 将web工程的目录拷贝到Tomcat的webapps目录下
  2. 浏览器输入http://ip[域名]:port/子目录…/web资源

部署方式二: 通过配置文件来部署

  1. 在Tomcat的conf目录/Catalina/localhost/下配置文件
    在这里插入图片描述
    test.xml文件名最好和path="/test"保持一致
    在这里插入图片描述
    访问http://ip[域名]:port/test/hello.html就相当于
    访问D:\zzw目录下的hello.html
    作用: 可以把一个Web应用,映射到指定的目录,用来解决磁盘空间分配的问题

ROOT工程的访问

  1. 在浏览器地址栏输入 :http://ip[域名]:port, 不加Web工程名/应用名时,访问的是ROOT工程
  2. 在浏览器地址栏输入 :http://ip[域名]:port/工程名/, 不加资源名时, 默认访问index.jsp; 比如:http://localhost:8080/test

1.9 浏览器请求资源UML分析

在这里插入图片描述

修改hosts文件, 先复制一份到别处,修改之后再覆盖

2.0 修改Tomcat端口

Tomcat目录下的conf目录, 修改server.xml配置文件
在这里插入图片描述

  1. 默认端口8080, 端口号范围1~65535
  2. 修改端口号建议大于1024, 最好在10000以上
  3. 修改后,重启tomcat生效

http://localhost, 默认是访问80端口, 即http://localhost:80

2. IDEA开发JavaWeb工程

2.1 IDEA开发部署JavaWeb工程

需求/图解: 使用IDEA开发 JavaWeb 工程 fishWeb, 并将网页部署到fishWeb工程.

参考 IDEA 2022.3开发JavaWeb工程

在这里插入图片描述

2.2 热加载说明

在这里插入图片描述
解读
1.on 'Update' action: 表示当我们执行更新操作时, Tomcat会进行重新部署

2.on frame deactivation: 表示IDEA失去焦点时(比如最小化), 会更新类和资源, 导致 jsp / html 发生更新, 但是如果修改的是java文件, 需要redeploy重新部署才会生效

在这里插入图片描述

2.3 端口修改

在这里插入图片描述

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

2.4 out目录是什么

1.当Tomcat启动时, 会生成out目录, 该目录就是 原项目资源的映射, 我们浏览器访问的资源是out目录
在这里插入图片描述

2.当我们从外部拷贝资源到项目(图片, 文件, js, css等),如果出现404不能访问错误, 解决方式 rebuild project -> 重启Tomcat. (rebuild project 和 重启Tomcat, 其本质是把你写的原项目的资源同步到对应真正访问的那个目录下, 做的是一个同步的操作.)

2.5 JavaWeb工程目录结构

.idea:``IDEA使用到的文件
out:真正的访问的项目目录/工作目录
src:java程序, servlet, 过滤器, 监听器, controller, service, dao
web:直接目录, 放入 html, css, js, 图片, 文件, jsp
WEB-INF:
(1)不能直接访问, 只能请求转发.
(2)这里有web.xml, 给该web应用配置servlet, 以及监听器, 过滤器
(3)WEB-INF下还可以放我们的库文件, src下的java文件要用到的一些库文件就可以放到这里
在这里插入图片描述

2.6 课后练习

1.手动在Tomcatwebapps目录下创建一个可供外界访问的Web应用. person项目(如图, 图片换成自己的)
在这里插入图片描述

2.修改tomcat/conf/server.xml, 将Tomcat服务器端口更改为9998, 测试使用.

3.使用IDEA 完成如下功能.
在这里插入图片描述

1)创建JavaWeb工程[myWeb01]
2)配置好Tomcat [Tomcat配置名为myWeb01_Tomcat8, 端口8080]
3)将前面你创建好的web应用/文件夹person, 部署到Tomcat
4)从IDEA启动Tomcat, 能正常访问Web应用

4.画图说明浏览器是如何访问到Tomcat服务器下的某个JavaWeb应用下的资源的, 比如url: http://www.zzwnews.com/news/index.html

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

~ 小团子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值