【JavaWeb】之Tomcat介绍、安装与使用

news2024/12/19 20:28:00

【JavaWeb】Tomcat

  • 前言
  • 一、Tomcat简介
    • 1.什么是Tomcat
    • 2.其他常用Web服务器
  • 二、Tomcat安装
    • 1.下载Tomcat
    • 2.配置环境变量
  • 三、Tomcat使用
    • 1.启动与关闭Tomcat
    • 2.修改Tomcat的端口号和主机名称
    • 3.使用IDEA搭建Web开发环境
    • 4.在Tomcat中部署web项目
  • 四、Web项目目录结构
  • 五、网站访问流程
  • 后记


前言

本文为JavaWeb基础Tomcat相关介绍,安装与使用详解~, Java全栈学习路线可参考:【Java全栈学习路线】最全的Java学习路线及知识清单,Java自学方向指引,内含最全Java全栈学习技术清单~

一、Tomcat简介

1.什么是Tomcat

  • Tomcat 服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。
  • Tomcat是Apache 服务器的扩展,但运行时它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。另外,Tomcat和IIS等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器。

既然Tomcat 是一个Web应用服务器,那还有其他Web应用服务器吗?

2.其他常用Web服务器

  • Jboss: 是一个遵从 JavaEE 规范的、开放源代码的、纯 Java 的 EJB 服务器,它支持所有的 JavaEE 规范(免费)
  • GlassFish: 由 Oracle 公司开发的一款 JavaWeb 服务器,是一款强健的商业服务器,达到产品级质量(应用很少)
  • Resin: 是 CAUCHO 公司的产品,是一个非常流行的服务器,对 servlet 和 JSP 提供了良好的支持, 性能也比较优良,Resin自身采用 JAVA 语言开发(收费,应用比较多)
  • WebLogic: 是 Oracle 公司的产品,是目前应用最广泛的 Web 服务器,支持 JavaEE 规范,而且不断的完善以适应新的开发要求,适合大型项目(收费,用的不多,适合大公司)

二、Tomcat安装

1.下载Tomcat

(1)进入Tomcat官网(https://tomcat.apache.org/),选择Tomcat版本(我以常用的Tomcat 8.5为例进行安装配置),再选择32位或64位版本的压缩包进行下载
在这里插入图片描述
(2)下载完成后保存到电脑中的任意文件夹并进行解压,解压后的文件夹如下图所示
在这里插入图片描述
Tomcat目录介绍:

  • bin:专门用来存放 Tomcat 服务器的可执行程序
  • conf:专门用来存放 Tocmat 服务器的配置文件
  • lib:专门用来存放 Tomcat 服务器的 jar 包
  • logs:专门用来存放 Tomcat 服务器运行时输出的日记信息
  • temp:专门用来存放 Tomcdat 运行时产生的临时数据
  • webapps:专门用来存放部署的 Web 工程。
  • work;是 Tomcat工作时的目录,用来存放 Tomcat 运行时 jsp 翻译为 Servlet 的源码,和 Session 钝化的目录

2.配置环境变量

  • (1)在桌面选择电脑点击鼠标右键->点击属性

在这里插入图片描述

  • (2)点击高级系统设置->环境变量->新建系统变量
    在这里插入图片描述
  • (3)新建两个系统变量,变量名分别为CATALINA_BASE和CATALINA_HOME,变量值为Tomcat文件夹的路径
    在这里插入图片描述
    在这里插入图片描述
  • (4)找到系统变量Path,双击空白处或新建即可在末尾加上%CATALINA_HOME%\bin
    在这里插入图片描述
  • (5)验证环境变量是否配置成功:进入Windows命令行窗口(win+R,输入cmd,回车),输入startup.bat回车,可依次看到如下画面
    在这里插入图片描述
    在这里插入图片描述
    注意:出现以上的乱码问题对程序运行没有影响,要想修复需要修改logging.properties配置文件如下。
    在这里插入图片描述

用记事本打开logging.properties找到如下图所示的一行代码,将UTF-8修改为GBK。
在这里插入图片描述

  • (6)打开游览器输入网址http://localhost:8080/,进入网站首页

如果出现如下页面就说明Tomcat安装配置成功
在这里插入图片描述

三、Tomcat使用

1.启动与关闭Tomcat

Tomcat 目录下的 bin 目录下有两个文件: startup.bat 文件和shutdown.bat文件,双击startup.bat ,就可以启动 Tomcat 服务器,双击shutdown.bat ,就可以关闭 Tomcat 服务器。
在这里插入图片描述
如果双击 startup.bat 文件,就会出现一个小黑窗口一闪而来,这说明tomcat启动失败。 失败的原因基本上都是因为没有配置好 JAVA_HOME 环境变量。

常见的 JAVA_HOME 配置错误有以下几种情况:

  • (1)JAVA_HOME 必须全大写。
  • (2)JAVA_HOME 中间必须是下划线,不是减号“-”
  • (3)JAVA_HOME 配置的路径只需要配置到 jdk 的安装目录即可。不需要带上 bin 目录

2.修改Tomcat的端口号和主机名称

Tomcat 默认的端口号是:8080,要想修改Tomcat的端口号,找到 Tomcat 目录下的 conf 目录,再找到 server.xml 配置文件:
在这里插入图片描述
找到如下位置修改port值(端口号):
在这里插入图片描述
找到如下位置修改主机名称:
在这里插入图片描述

3.使用IDEA搭建Web开发环境

  • (1)打开IDEA,创建一个Web项目
    在这里插入图片描述
  • (2) 配置Tomcat服务器
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • (3) 点击启动按钮启动Tomcat服务器,在浏览器中输入网址http://localhost:8080/即可在开发阶段访问网站

在这里插入图片描述
在这里插入图片描述

4.在Tomcat中部署web项目

  • (1)将项目的war包拷贝到Tomcat文件夹下的webapps文件夹下
    在这里插入图片描述
  • (2)进入Tomcat文件夹下的bin目录中,先双击shutdown.bat,再双击startup.bat启动Tomcat
    在这里插入图片描述
  • (3)再进入webappps文件夹下,删除ROOT文件夹,将quella文件夹名改为ROOT
    在这里插入图片描述
  • (4)打开游览器输入网址http://localhost:8080/就可进入系统的登录首页
    在这里插入图片描述

四、Web项目目录结构

Tomcat下的webapps文件夹下的每一个文件夹都是一个完整的web应用。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
一个Web项目的目录结构如下:

--webapps :Tomcat服务器的webapps目录
    -wang:网站的目录名
    -demo1:网站的目录名
    -demo2:网站的目录名
    -ROOT:网站的目录名,ROOT为默认项目的目录
        -WEB-INF
            -classes : java程序
            -lib:web应用所依赖的jar包
            -web.xml :网站配置文件
        -index.html 默认的首页
        -css:css文件
            -style.css
        -js:js文件
        -images:图片资源
        -plugins:插件
        -.....

五、网站访问流程

我们在浏览器访问各种各样的网址,www.baidu.com之类,对于网站访问其实访问的实际ID是一个IP,域名只是一层外衣,访问流程如下图:
在这里插入图片描述
网站访问流程的完整步骤如下:

  • (1)浏览器根据主机名”www.mitaowulong.cn”去操作系统的Hosts(本地)文件中查找主机名对应的IP地址。
  • (2)浏览器如果在操作系统的Hosts文件中没有找到对应的IP地址,就去互联网上的DNS服务器上查找”www.mitaowulong.cn”这台主机对应的IP地址。
  • (3)浏览器查找到”www.mitaowulong.cn”这台主机对应的IP地址后,就使用IP地址连接到Web服务器。
  • (4)浏览器连接到web服务器后,就使用http协议向服务器发送请求,发送请求的过程中,浏览器会向Web服务器以Stream(流)的形式传输数据,告诉Web服务器要访问服务器里面的哪个Web应用下的Web资源。
  • (5)浏览器做完上面4步工作后,就开始等待,等待Web服务器把自己想要访问的1.jsp这个Web资源传输给它。
  • (6)服务器接收到浏览器传输的数据后,开始解析接收到的数据。
  • (7)浏览器拿到服务器传输给它的数据之后,就可以把数据展现给用户看了。

后记

Tomcat的下载安装,配置与使用以及其他相关内容就介绍到这里了~
Java全栈学习路线可参考:【Java全栈学习路线】最全的Java学习路线及知识清单,Java自学方向指引,内含最全Java全栈学习技术清单哦~

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Linux】yum vim 基础工具的使用

文章目录1. Linux环境下的软件包管理器---- yum1.2 什么是软件包1.3 yum源镜像配置1.4 yum查看软件包1.5 yum 如何安装软件1.6 yum 如何卸载软件2. Linux编辑器--vim2.1 vim 简介2.2 . vim的基本操作2.3 vim命令模式下的命令集2.3.1 光标移动2.3.2 编辑2.4 vim末行模式下的命令…

Python入门自学进阶-Web框架——24、DjangoAdmin项目应用-定制页面2

这里要实现点击对应的表名称&#xff0c;显示具体表的详细内容&#xff0c;大致的流程是&#xff1a; 前端显示各个表名&#xff0c;如下&#xff1a; <tbody>{% for table_name,admin in app_tables.items %}<tr class"border-bottom"><td style&…

彻底理解Java并发:volatile关键字

本篇内容包括&#xff1a;volatile 关键字简介、volatile 保证可见性&#xff08;包括&#xff1a;关乎不可见性问题描述、JMM内存模型和不可见性的解决方案&#xff09;以及 volatile 其他特性&#xff08;包括&#xff1a;volatile 不保证原子性、volatile 原子性的保证操作、…

mysql-高级命令(1)和一些函数(悟已往之不谏,知来者之可追)

一、高级命令 1.查询某个字段和多个字段 select 某个字段&#xff08;或者多个字段&#xff0c;中间以逗号间隔&#xff09;from 表名&#xff1b; 2. 去除字段的重复值 3.and 表示&#xff08;两个条件都需要满足&#xff09; 4.or &#xff08;两个条件满足一点&#xff09;…

【Linux】软件包管理器 yum 与编辑器 vim 的基本使用

文章目录一、yum 背景知识1、商业生态2、开源生态3、软件生态本土化二、yum 的基本使用1、查看软件包2、安装软件3、卸载软件三、vim 的基本使用1、vim 的基本概念2、vim 的基本操作2.1 模式间切换2.2 光标定位2.3 文本复制2.4 文本编辑2.5 底行模式的操作四、简单 vim 配置2、…

SpringBoot+SpringCloud+Nutty打造分布式在线消息推送服务(实例)

文章目录前言技术架构效果图后端项目消息数据定义存储结构消息状态Nutty消息服务项目结构改动消息bean消息处理器消息转换pojo工具审核消息处理controller实现类服务调用前端连接代码初始化接受消息消息的展示效果总结前言 其实关于这个的话&#xff0c;我先前的几篇博文&…

css选择器

碎碎念&#xff1a;都是一些自己在学习过程中的一点体会&#xff0c;如果有什么不对的感谢大家指正一起学习&#xff01; css选择器一、常用选择器二、属性选择器三、其他五、栗子1. * 通配符2. 空格 div p3. > 子选择器4. ~ 通用兄弟选择器5. 相邻兄弟选择器6. , 选择器分…

使用 Vercel 快速部署前端项目

Vercel&#xff1a;一键部署前端项目。 前端项目部署的问题 先来说下前端项目的部署&#xff0c;一般来说有以下几个步骤&#xff1a; 项目打包上传到服务器域名解析SSL 证书申请Nginx 配置CDN 加速 如果是公司的项目&#xff0c;打包之后的步骤一般有专门的运维人员负责&am…

C++:多态

文章目录一、多态的概念二、多态的定义及实现2.1 多态的构成条件2.2 虚函数2.3 虚函数的重写(覆盖)2.4 override 和 final2.5 重载、覆盖(重写)、隐藏(重定义)的对比三、抽象类四、继承和多态常见的面试问题1.2.总结一、多态的概念 多态按字面的意思就是多种形态。当类之间存在…

瞪羚优化算法(Gazelle Optimization Algorithm,GOA)

瞪羚优化算法&#xff08;Gazelle Optimization Algorithm&#xff0c;GOA&#xff09;由Agushaka等人于2022年提出&#xff0c;该算法模拟了瞪羚逃避捕食者的行为&#xff0c;思路新颖&#xff0c;性能高效。 瞪羚的身高60-110厘米&#xff0c;体重13-29千克。该属物种有像小鹿…

【Linux】基本指令(上)

​&#x1f320; 作者&#xff1a;阿亮joy. &#x1f386;专栏&#xff1a;《学会Linux》 &#x1f387; 座右铭&#xff1a;每个优秀的人都有一段沉默的时光&#xff0c;那段时光是付出了很多努力却得不到结果的日子&#xff0c;我们把它叫做扎根 目录&#x1f449;操作系统&…

Linux - 第2节 - Linux环境基础开发工具使用

1.Linux 软件包管理器 yum centos 7中安装软件的方式&#xff1a; &#xff08;1&#xff09;源码安装 &#xff08;2&#xff09;rpm包安装 &#xff08;3&#xff09;yum安装 yum安装的好处&#xff1a; &#xff08;1&#xff09;不用编译源码 &#xff08;2&#xff09;不用…

赶紧进来看看---C语言实现学生信息管理系统(2.0动态内存版)

本文介绍了将学生信息管理系统静态版本改造为动态内存版本,主要涉及改造思路,枚举类型的使用,动态内存函数和柔性数组的使用,动手写程序才能使基础知识更为牢固…(文章最后有源码展示) 学生信息管理系统1.0静态版->学生信息管理系统2.0动态内存版 c语言实现学生信息管理系统…

在python中使用ggplot2

python的ggplot2库:plotnine > 一.安装方法&#xff1a; pip install plotnine使用的编译器&#xff1a;pycharm 二.plotnine绘图 1.第一个图形 除了导包的操作不一致&#xff0c;其他类似 from plotnine import ggplot, geom_point, aes, stat_smooth, facet_wrap fr…

70.【JavaScript 6.0】

前端三要素1.前端三要素2.引入JavaScript3.JavaScript基本语法入门4.数据类型5.严格检查模式( use strict)6.Map和Set7.函数的定义和参数获取8.变量的作用域(局部 全局)-------> 和Java一样9.全局规范:10.方法的定义和调用11.内部对象1.Date--------->日期2.JSON--------…

自定义mybatis插件实现sql日志打印

自定义mybatis插件实现sql日志打印 mysql插件实现原理 官网的关键信息 参考文档 https://mybatis.org/mybatis-3/zh/configuration.html#plugins 官方文档 MyBatis 允许你在映射语句执行过程中的某一点进行拦截调用。默认情况下&#xff0c;MyBatis 允许使用插件来拦截的方…

【JavaSE】一篇文章领悟Java运算符

前言&#xff1a; 作者简介&#xff1a;爱吃大白菜1132 人生格言:纸上得来终觉浅&#xff0c;绝知此事要躬行 如果文章知识点有错误的地方不吝赐教&#xff0c;和大家一起学习&#xff0c;一起进步&#xff01; 如果觉得博主文章还不错的话&#xff0c;希望三连支持&#xff01…

Java项目:超市管理系统(java+SSM+JSP+LayUI+jQ+Mysql)

源码获取&#xff1a;俺的博客首页 "资源" 里下载&#xff01; 项目介绍 本项目分为超级管理员、总经理、店长、员工等角色&#xff0c;超级管理员可添加修改删除角色并进行角色菜单配置&#xff1b; 超级管理员角色包含以下功能&#xff1a; 商品管理&#xff1a;添…

C语言高级-4栈

14天阅读挑战赛 目录 一、栈的原理 1、栈的定义 2、栈的应用 &#xff08;1&#xff09;选课问题 &#xff08;2&#xff09;旅游&#xff1a;怎么样把每个城市去且仅去一遍&#xff1f; &#xff08;3&#xff09;栈的使用场景 &#xff08;4&#xff09;思考&#xf…

C++多态之虚函数表详解及代码示例

引言 C相对其他面向对象语言来说&#xff0c;之所以灵活、高效。很大程度的占比在于其多态技术和模板技术。C虚函数表是支撑C多态的重要技术&#xff0c;它是C动态绑定技术的核心。 如果对多态还不了解的小伙伴&#xff0c;可以点这里C多态详解基础篇。 在不考虑继承的情况下…