【JavaWeb06】Tomcat基础入门:架构理解与基本配置指南

在这里插入图片描述

文章目录

    • 🌍一. WEB 开发
      • ❄️1. 介绍
      • ❄️2. BS 与 CS 开发介绍
      • ❄️3. JavaWeb 服务软件
    • 🌍二. Tomcat
      • ❄️1. Tomcat 下载和安装
      • ❄️2. Tomcat 启动
      • ❄️3. Tomcat 启动故障排除
      • ❄️4. Tomcat 服务中部署 WEB 应用
      • ❄️5. 浏览器访问 Web 服务过程详解
    • 🌍 三. IDEA中创建JavaWeb工程
      • ❄️1. 流程
      • ❄️2. 注意事项和细节


🙋‍♂️ 作者:@whisperrr.🙋‍♂️

👀 专栏:JavaWeb👀

💥 标题:【JavaWeb06】Tomcat基础入门:架构理解与基本配置指南💥

❣️ 寄语:比较是偷走幸福的小偷❣️

🌍一. WEB 开发

❄️1. 介绍

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

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

3.静态 web 资源开发技术

  • Html、CSS,js 等

4.常用动态 web 资源开发技术:Servlet、SpringBoot、SpringMVC、PHP、ASP.NET
在这里插入图片描述

❄️2. BS 与 CS 开发介绍

1 BS 开发

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

笔者对 BS 的解读

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

❄️3. JavaWeb 服务软件

1 JavaWeb 服务器软件介绍

学习 JavaWeb 开发,需要先安装 JavaWeb 服务软件【我们把安装了 JavaWeb 服务软件主机称为 Web 服务器/JavaWeb 服务器】,然后在 web 服务器中开发相应的 web 资源。[Javaweb 服务器,Mysql 服务器]

2.学习 JavaWeb 开发,为什么必须要先装 WEB 服务软件?

答:需要安装, 理解 Tomcat 本质就是一个 Java 程序, 但是这个 Java 程序可以处理来自浏览器的 HTTP 请求, 和我们前面讲的 java 网络服务(多人聊天, Server)常用 JavaWeb 服务软件.

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

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

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

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

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

🌍二. Tomcat

❄️1. Tomcat 下载和安装

  • Tomcat 官方站点:http://tomcat.apache.org/
  • 获取 Tomcat 安装程序包
  • tar.gz文件是Linux操作系统下的安装版本
  • zip文件是Windows系统下的压缩版本
  • 使用 zip 包安装 Tomcat
  • 找到你需要用的 Tomcat 版本对应的 zip 压缩包,解压到需要安装的目录即可
  • 笔者解压在 D:\program\apache-tomcat-8.0.50
  • which version https://tomcat.apache.org/whichversion.html ,可以看到Tomcat仍然是支持jsp 和 el
    在这里插入图片描述
    Tomcat 最好的小伙伴是 JSP+EL

❄️2. Tomcat 启动

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

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

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

  4. 小技巧:
    (1) 在开发中,我们可以看一下哪些端口在监听
    (2) netstat -anb (使用管理员权限)

❄️3. 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. 配置 JAV A_HOME 环境变量

一图知Tomcat目录结构

在这里插入图片描述

  1. server.xml 用于配置 tomcat 的基本设置(启动端口,关闭端口, 主机名, 修改 Tomcat 服务端口)=
  2. web.xml 用于指定 tomcat 运行时配置(比如 servlet 等…)
  3. webapps 目录是存放 web 应用,就是网站

❄️4. Tomcat 服务中部署 WEB 应用

1.什么是Web应用

WEB应用是多个web资源的集合。简单的说,可以把web应用理解为硬盘上的一个目录,
这个目录用于管理多个web资源。

2.Web应用通常也称之为web应用程序,或web工程,通俗的说 就是网站。
3.WEb应用组成

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

4.JavaWeb程序/应用/工程目录结构
在这里插入图片描述

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

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

部署方式2:通过配置文件来部署(只做介绍)
1.在Tomcat 下的 conf 目录\Catalina\localhost\ 下,配置文件,比如hsp.xml(提醒:知道Tomcat通过配置,可以把一个web应用,映射到指定的目录,可以解决磁盘空间分配的问题.)
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 页面

❄️5. 浏览器访问 Web 服务过程详解

下面,我们对浏览器访问 web 服务器资源(html,css,图片,js)做详解,通过一个时序图加强对这个重要过程的理解, 重要,核心
在这里插入图片描述

🌍 三. IDEA中创建JavaWeb工程

说明:IDEA2020.2.2 版本创建JavaWeb工程 和以前的版本变化较大.~

❄️1. 流程

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

2.在新建好的项目上点击右键,点Add Framework Support
在这里插入图片描述

3.点击导入Web Application,点击ok即可
在这里插入图片描述

二、配置TomCat&启动项目
1.点击右上角的编辑配置
在这里插入图片描述

2.点击+号,找到Tomcat Server
在这里插入图片描述

3.选择一个本地下载好的Tomcat
在这里插入图片描述

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

4.在右边的部署栏Deployment中点击+号,添加构建
在这里插入图片描述

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

5.这里可以选择只保留“/”
在这里插入图片描述

Application Context 是工程路径
建议改成当前Web工程名(项目名),比如 /news , /crm 等, 更好区分.

6.选择热加载,点击ok完成运行环境部署
在这里插入图片描述

HTTP port 可以指定运行Tomcat端口, 不会修改server.xml, 只是针对当前配置在 Open browser After launch 可以下拉,选择默认运行的浏览器

7.运行Tomcat,访问项目:这里注意要直接选择Tomcat,点击运行按钮,而不是在jsp页面上右键点击运行,这样会访问不到页面
在这里插入图片描述

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

在这里插入图片描述

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

❄️2. 注意事项和细节

1.热加载选项说明

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

2.端口修改

在这里插入图片描述

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

3.out 目录是什么

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

4.当我们从外部拷贝资源到项目(图片, 文件, js , css 等), 如果出现 404 不能访问错误, 解决方式 rebulid project -> 重启 Tomcat
5.一图了解web项目结构
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/9546.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C语言练习(29)

13个人围成一圈&#xff0c;从第1个人开始顺序报号1、2、3。凡报到“3”者退出圈子&#xff0c;找出最后留在圈子中的人原来的序号。本题要求用链表实现。 #include <stdio.h> #include <stdlib.h>// 定义链表节点结构体 typedef struct Node {int num;struct Nod…

简要介绍C语言和c++的共有变量,以及c++特有的变量

在C语言和C中&#xff0c;变量是用来存储数据的内存位置&#xff0c;它们的使用方式和特性在两种语言中既有相似之处&#xff0c;也有不同之处。以下分别介绍C语言和C的共有变量以及C特有的变量。 C语言和C的共有变量 C语言和C都支持以下类型的变量&#xff0c;它们在语法和基…

【UE插件】Sphinx关键词语音识别

视频教程&#xff1a; Unreal Engine - Speech Recognition - Free Pluginhttps://www.youtube.com/watch?vKBcXNnSdWog&t622s 官方教程&#xff1a; Sphinx: Speech Recognition Plugin | Unreal Engine Community Wikihttps://unrealcommunity.wiki/speech-recognition…

图漾相机——C++语言属性设置

文章目录 前言1.SDK API功能介绍1.1 Device组件下的API测试1.1.1 相机工作模式设置&#xff08;TY_TRIGGER_PARAM_EX&#xff09;1.1.2 TY_INT_FRAME_PER_TRIGGER1.1.3 TY_INT_PACKET_DELAY1.1.4 TY_INT_PACKET_SIZE1.1.5 TY_BOOL_GVSP_RESEND1.1.6 TY_BOOL_TRIGGER_OUT_IO1.1.…

Spring AI 在微服务中的应用:支持分布式 AI 推理

1. 引言 在现代企业中&#xff0c;微服务架构 已成为开发复杂系统的主流方式&#xff0c;而 AI 模型推理 也越来越多地被集成到业务流程中。如何在分布式微服务架构下高效地集成 Spring AI&#xff0c;使多个服务可以协同完成 AI 任务&#xff0c;并支持分布式 AI 推理&#x…

研发的立足之本到底是啥?

0 你的问题&#xff0c;我知道&#xff01; 本文深入T型图“竖线”的立足之本&#xff1a;专业技术 技术赋能业务能力。研发在学习投入精力最多&#xff0c;也误区最多。 某粉丝感发展遇到瓶颈&#xff0c;项目都会做&#xff0c;但觉无提升&#xff0c;想跳槽。于是&#x…

HarmonyOS DevEco Studio模拟器点击运行没有反应的解决方法

HarmonyOS DevEco Studio模拟器点击运行没有反应的解决方法 翻遍了CSDN&#xff0c;试了所有办法都没办法&#xff0c;最后偶然间竟然解决了 解决方法其实很简单&#xff1a;本地模拟器下载路径下面不能有中文。。。。。 切换正确路径以后&#xff0c;成功运行&#xff0c;哦…

升级到Mac15.1后pod install报错

升级Mac后&#xff0c;Flutter项目里的ios项目运行 pod install报错&#xff0c; 遇到这种问题&#xff0c;不要着急去百度&#xff0c;大概看一下报错信息&#xff0c;每个人遇到的问题都不一样。 别人的解决方法并不一定适合你&#xff1b; 下面是报错信息&#xff1a; #…

C++入门(1)

1.第一个C程序 1.1基础程序 #include"iostream" //头文件 using namespace std; //使用std的名字空间int main() //main函数 {cout<<"Hello world"<<endl; //输出return 0; } 1.2main函数 main函数是程序的入口&#xff0c;C的程…

c++:vector

1.使用 1.1构造函数 常见的三种构造方式&#xff1a;空构造&#xff0c;拷贝构造&#xff0c;指定元素构造 1.2iterator begin和end也分为正向和反向。 注意&#xff1a;反向迭代器可以反向遍历是因为在定义rbegin和rend函数的时候把尾地址给到了rbegin&#xff0c;而不是说改…

1.27补题 回训练营

E 智乃的小球 题目描述 在一条无限长的水平直线上&#xff0c;有 n 个小球&#xff0c;每个小球的质量相同&#xff0c;体积可以忽略不计。这些小球初始时位于直线上的不同位置&#xff0c;并且每个小球有一个初始速度&#xff0c;速度为 -1 m/s 或 1 m/s。速度为 -1 m/s 表示…

Hive安装教程

Hive安装教程 文章目录 Hive安装教程写在前面安装下载安装部署安装Hive启动并使用Hive MySQL安装检查当前系统是否安装过MySQL安装初始化数据库 Hive元数据配置到MySQL拷贝驱动配置Metastore到MySQL再次启动Hive 写在前面 Linux版本&#xff1a;CentOS7.5Hive版本&#xff1a;…

大屏 UI 设计风格的未来趋势

在科技飞速革新的时代&#xff0c;大屏设备的应用领域不断拓展&#xff0c;从城市的智能交通指挥中心&#xff0c;到商场的互动广告大屏&#xff0c;再到家庭的超大尺寸智能电视&#xff0c;大屏已然成为信息展示与交互的关键载体。大屏 UI 设计风格也随之不断演变&#xff0c;…

元素的显示与隐藏

display显示隐藏visibility显示隐藏overflow溢出显示隐藏 display属性 visibility属性 overflow溢出

Unity游戏(Assault空对地打击)开发(1) 创建项目和选择插件

目录 前言 创建项目 插件导入 地形插件 前言 这是游戏开发第一篇&#xff0c;进行开发准备。 创作不易&#xff0c;欢迎支持。 我的编辑器布局是【Tall】&#xff0c;建议调整为该布局&#xff0c;如下。 创建项目 首先创建一个项目&#xff0c;过程略&#xff0c;名字请勿…

网络工程师 (7)进程管理

一、进程相关的概念 &#xff08;一&#xff09;定义 进程&#xff08;Process&#xff09;是计算机中的程序关于某数据集合上的一次运行活动&#xff0c;是系统进行资源分配和调度的基本单位&#xff0c;也是操作系统结构的基础。进程是程序的一次执行实例&#xff0c;具有动…

使用CSS实现一个加载的进度条

文章目录 使用CSS实现一个加载的进度条一、引言二、步骤一&#xff1a;HTML结构与CSS基础样式1、HTML结构2、CSS基础样式 三、步骤二&#xff1a;添加动画效果1、使用CSS动画2、结合JavaScript控制动画 四、使用示例五、总结 使用CSS实现一个加载的进度条 一、引言 在现代网页…

ios swift画中画技术尝试

继上篇&#xff1a;iOS swift 后台运行应用尝试失败-CSDN博客 为什么想到画中画&#xff0c;起初是看到后台模式里有一个picture in picture&#xff0c;去了解了后发现这个就是小窗口视频播放&#xff0c;方便用户执行多任务。看小窗口视频的同时&#xff0c;可以作其他的事情…

论文阅读(二):理解概率图模型的两个要点:关于推理和学习的知识

1.论文链接&#xff1a;Essentials to Understand Probabilistic Graphical Models: A Tutorial about Inference and Learning 摘要&#xff1a; 本章的目的是为没有概率图形模型背景或没有深入背景的科学家提供一个高级教程。对于更熟悉这些模型的读者&#xff0c;本章将作为…

【C++】特殊类设计

目录 一、请设计一个类&#xff0c;不能被拷贝二、请设计一个类&#xff0c;只能在堆上创建对象三、请设计一个类&#xff0c;只能在栈上创建对象四、请设计一个类&#xff0c;不能被继承五、请设计一个类&#xff0c;只能创建一个对象(单例模式)5.1 饿汉模式5.2 懒汉模式 结尾…