【Java Web】Tomcat服务器

news2024/11/24 14:58:42

目录

一、Tomcat是什么

二、Tomcat安装

三、Tomcat相关目录

四、Web项目标准目录结构规范

五、Tomcat项目部署方式

六、IDEA关联本地Tomcat

七、HTTP协议

7.1 http的交互方式

7.1.1 http长连接和短连接

7.1.2 http1.1缓存机制

7.2 http数据报文格式

八、常见响应状态码


一、Tomcat是什么

Tomcat是由Apache基金会开发的Web服务器软件,专门用于为Java Web应用程序提供部署和运行的环境。同样由于Tomcat软件也是用java编写的所以Tomcat软件的运行也需要Jre。因此,如果我们想要在网上部署我们用java开发好的web应用程序,就需要首先在电脑上安装Jre、然后安装web服务器软件如:Tomcat、最后将我们开发好的Java web程序部署到web服务器软件Tomcat中。常见的JavaWeb服务器软件有很多,Tomcat只是其中之一。

二、Tomcat安装

  1. 从官网Apache Tomcat® - Welcome!下Tomcat服务软件。

  1. 将下载好的Tomcat压缩包解压到要安装的路径下。

  1. Tomcat软件的运行需要JDK环境,在Tomcat运行时会通过系统的JAVA_HOME环境变量来找到JRE,因此在运行Tomcat之前需要事先为Tomcat软件配置好系统的JAVA_HOME环境变量。

注意:Tomcat10.1.x以上需要JDK11以上版本。

4.找到Tomcat解压后的文件夹,进入bin目录下,运行和关闭Tomcat服务。

注意:在运行Tomcat时会控制台会出现乱码的日志输出,原因是控制台使用的GDK编码,而Tomcat默认设置控制台输出的日志是UTF-8编码。解决办法是进入conf目录,打开logging.properties日志配置文件进行相关修改。

三、Tomcat相关目录

说明:

1、浏览器访问webapps中内置的ROOT项目时,url无需指定项目访问路径而直接跟请求的文件。


2、webapps下的host-manager和manager为管理性项目,用户通过浏览器访问此两个项目需要输入Tomcat的用户名和密码。可以在conf\tomcat-users.xm配置文件中创建用户和密码,只需添加以下标签元素:

Tomcat相关目录:

四、Web项目标准目录结构规范

说明:

1、客户端浏览器在访问Tomcat中已部署的项目时其URL路径格式如下图所示,若不指定访问的具体网页文件则默认是index.html。

五、Tomcat项目部署方式

方式一:直接将编译好的Java web项目放在webapps目录下。

方式二:将编译好的java web项目打包压缩成war包,放在webapps目录下,Tomcat启动后会自动解压war包(本质和方式一相同)。

方式三:可以将项目放在非webapps目录下,在Tomcat中通过其配置文件来指定项目的实际物理路径;这样当Tomcat服务启动时会自动将其配置文件中指定的项目部署到web服务器上。

  1. 在*\apache-tomcat-10.1.19\conf\Catalina\localhost目录下创建和要部署的项目同名的.xml配置文件。在此文件中指定实际项目的所在的物理位置路径以及用户通过浏览器访问项目时需要写的虚拟路径。

六、IDEA关联本地Tomcat

1、建立IDEA和Tomcat的关联。使Java Web工程可以使用Tomcat提供的第三方类库依赖并将app部署到Tomcat上运行。

2、使用IDEA创建一个JavaWeb工程,在工程中编写代码。

①创建一个用于包含其它子模块项目的父工程项目

②在父项目下创建子项目模块moudle

③指定子项目使用的TomCat提供的类库

④为子模块项目添加web目录资源组件。使其成为一个JavaWeb工程。

⑤创建工程相关目录编写开发代码

⑥将resources标记为资源根目录,以便在项目构建时将其与src目录一起编译合并为一个classes目录放在WEB-INF目录中。

⑦将web目录WEB-INF子目录下的lib目录设置为类库,供整个子项目模块使用。

3、使用IDEA将工程构建成一个可发布的app。

4、使用IDEA将构建好的app部署到TomCat中运行。

说明:Tomcat运行时会自动构建项目,然后在将其部署到Tomcat上,只不过在此过程中IDEA并不是直接就将构建好的项目放在Tomcat家目录webapps文件夹下,而是会自动在系统当前用户的家目录路径下生成一个简化的Tomcat目录结构副本,然后将部署的项目以虚拟目录设置浏览器访问路径上下文的方式配置在Tomcat副本配置目录中。然后Tomcat就会读取用户家目录下的副本作为其配置文件来部署构建好的项目。

注意:IDEA控制台使用的GBK字符编码,Tomcat配置文件中设置的日志输出字符编码为utf-8,因此在Tomcat启动时控制台输出的日志会出现乱码。需要在Tomcat其日志配置文件中进行设置为GBK编码。

七、HTTP协议

http协议即超文本传输协议,用于互联网上电脑主机的资源文件共享。

http协议有多个版本,HTTP的第一个标准化版本HTTP/1.1(RFC2068)于1997年初发布,是目前使用最普遍的版本。

支持七种请求方法:OPTIONS,GET,HEAD,POST,PUT,DELETE,和TRACE。

HTTP/1.1 是 HTTP 1.0 的增强:

  • 虚拟主机允许从单个IP地址提供多个域。
  • 持久连接和流水线连接允许Web浏览器通过单个持久连接发送多个请求。
  • 缓存支持节省了带宽并使响应速度更快。HTTP/1.1在接下来的15年左右将非常稳定。
  • 在此期间,出现了HTTPS(安全超文本传输协议)。它是使用SSL/TLS进行安全加密通信的HTTP的安全版本。

7.1 http的交互方式

http的交互方式分为请求和响应。其中请求是指客户端浏览器向服务端发送的数据,响应是服务端根据客户端的请求响应的数据。

7.1.1 http长连接和短连接

从上图可知在http1.0中,客户端向服务端请求获取login.html后,解析login.html文件发现其中还有其他资源文件,于是又需要重新与服务端经历:“三次握手、数据交互、四次挥手”机制来分别获取.css、.js、.png文件。其在解析login.html文件过程中,分别进行多次tcp三次握手、四次挥手机制来获取login.html中包含的求它资源文件,那么这种获取请求文件内的求它资源文件时都要重新与服务端建立tcp连接的机制就被称为短连接。而客户端在获取到向服务端请求的资源后并不会立刻使用四次挥手断开与服务端的连接,而是先解析获取到的文件,如果在解析文件中发现还包含其它的文件则就在向服务端请求获取子文件资源,等客户端解析完文件后,在最后才释放与服务器的连接的过程被称为长连接。显然http1.1长连接相比http1.0短连接, 客户端与服务端数据交互的过程中,tcp连接的交互次数减少了许多、之间传输的数据报文减少了,提高了访问效率。

7.1.2 http1.1缓存机制

客户端在获取到向服务端请求的资源后,会将请求的资源缓存到本地内存中,当客户端下次在向服务端访问同一个网页时,会先检查本地缓存中是否存在此资源,如果存在则就不会在向服务端发起请求获取,而是使用缓存中保存好的资源进行展示,从而减少与服务端资源的请求交互,提高网页的访问速度。

7.2 http数据报文格式

请求时发送的数据被称为请求报文,响应发送的数据被成为响应报文。

其http发送的数据报文格式由:行、头、体构成。

请求报文格式:

响应报文格式:

八、常见响应状态码

响应状态码对浏览器来说很重要,它会告诉浏览器请求获得的响应结果。

  • 200:请求成功。浏览器会把响应体中的内容显示在浏览器中。
  • 302:重定向。表示服务器要求浏览器重新发送一个请求到响应头Location指定的新URL地址来获取资源。
  • 304:表示浏览器请求的此文件使用了本地缓存,从系统本地内存获取得到的。
  • 404:浏览器请求的资源在服务端没有找到,说明客户端向服务端请求了不存在的资源。
  • 405:客户端请求的方式不允许。如:服务端规定某个资源只能使用get请求来获取。
  • 500:服务器找到了请求的资源,但服务器内部出现了问题。如:java代码执行出现异常。

@声明:“山月润无声”博主知识水平有限,以上文章如有不妥之处,欢迎广大IT爱好者指正,小弟定当虚心受教!

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

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

相关文章

大数据平台需要存算分离吗?某保险集团:以 ZBS 优化资源利用率,缩短业务用时超一半

金融机构普遍采用“存算一体”架构支撑基于 Hadoop 框架的大数据平台。而随着金融业务的多元化发展,不同业务对计算和存储的需求差异较大,由于“存算一体”架构共享存储与计算资源,经常会出现资源需求不均衡、资源利用率低下、难以灵活调度等…

贪吃蛇项目:GameRun与GameEnd部分:游戏的主体运行与善后部分

准备工作:打印得分信息 在进行GameStart之前,我们需要在地图的右侧打印帮助信息,以及目前玩家的得分情况和一个食物在当前速度下的得分情况(加速的状态下按比例增加食物的分数,减速的状态下则相反)&#xf…

历史与未来的交响曲:历史建筑保护与现代技术的完美融合

在时间的长河中,历史建筑如同凝固的诗篇,记录着过往的辉煌与沧桑。然而,岁月的侵蚀、自然灾害的威胁以及现代化进程的冲击,使这些宝贵的文化遗产面临前所未有的挑战。作为建筑设计领域的探索者,我们肩负着保护历史记忆…

多空分歧中,盘点全球“新股王”背后的这些在港概念股

冲榜成功。6月18日收盘,英伟达(NVDA.US)股价创新高,报135.58美元,总市值3.34万亿美元,一举超越微软、苹果公司,成为全球“新股王”。 不过,随着这一历史性时刻的出现,由于当前无法准确预估市场…

vue配置中的process.env

项目中的.env开头的文件是否知道是干什么的呢 主要是为了区分测试环境还是生产环境env.development为测试环境 # 测试环境 NODE_ENV development VUE_APP_BASE_API http://xxxxxxxxx // 命名一定要以 VUE_APP_ 开头,要不然根本取不到 .env.production为生产环境…

浏览器扩展V3开发系列之 chrome.runtime 的用法和案例

【作者主页】:小鱼神1024 【擅长领域】:JS逆向、小程序逆向、AST还原、验证码突防、Python开发、浏览器插件开发、React前端开发、NestJS后端开发等等 chrome.runtime API 提供了一系列的方法和事件,可以通过它来管理和维护 Chrome 扩展的生命…

用两个钟,我又在VMWARE上搞了一套内部网配置

最近要学es,所以打算自己用虚拟机搞个NAT,又搞了两个钟。为了不再费劲尝试,也为了造福大众,所以选择搞一份NAT笔记!!!! 1.初始化网关和DNS 我们给网关配置一个地址192.168.96.1&…

计算机图形学入门20:加速光线追踪

1.前言 前文说了Whitted-style光线追踪技术的原理以及光线与平面的交点计算方式,对于现在应用最广的Polygon Mesh显式曲面来说,一个复杂场景中的多边形面总数可能达到千万甚至亿万以上,如果每个像素发射光线都和场景中每个平面进行求交点计算…

植物大战僵尸杂交版v2.1最新直装版,苹果+安卓+PC+防闪退工具+修改工具+高清工具+通关存档整合包更新

今天我要和各位聊聊一款让全网疯狂的游戏——《植物大战僵尸杂交版》。这可不是简单的游戏,它可是让B站的UP主“潜艇伟伟迷”一夜成名的大作,让无数玩家为之疯狂的魔改神作! 记得2009年,《植物大战僵尸》横空出世,那时…

SpringBoot优点达项目实战:登录功能实现(四)

SpringBoot优点达项目实战:登录功能实现(四) 文章目录 SpringBoot优点达项目实战:登录功能实现(四)1、查看接口2、查看数据库3、代码实现1、创建实体类2、controller实现3、service层实现4、Mapper层 4、测…

IPFoxy Tips:匿名海外代理IP的使用方法及注意事项

在互联网上,隐私和安全问题一直备受关注。为了保护个人隐私和数据安全,使用匿名代理IP是一种常用的方法。匿名代理IP可以隐藏用户的真实IP地址,使用户在访问网站时更加隐秘和安全。 本文将介绍匿名代理IP的基本原理和核心功能。 基本原则 匿…

Power BI 占比函数

1,普通层级结构占比 占比1 DIVIDE([sum_qty], CALCULATE([sum_qty],ALLSELECTED(Item[ITEM_CODE]))) //按照line为一个整理展示数据占比2 SWITCH( true(),ISINSCOPE(Item[ITEM_CODE]),DIVIDE([sum_qty], CALCULATE([sum_qty],ALLSELECTED(Item[ITEM_CODE]))), IS…

前端 CSS 经典:mix-blend-mode 属性

前言&#xff1a;这是一个混合属性&#xff0c;作用是将两个颜色混合生成一个新颜色。可以将视频和文字相融合&#xff0c;产生动态文字效果。 效果 实现代码 <!DOCTYPE html> <html lang"en"><head><meta charset"utf-8" />&l…

数据资产风险管理与合规性:全面识别、科学评估并有效应对数据风险,确保企业数据资产的安全性与合规性,为企业稳健发展提供坚实保障

一、引言 在数字化时代&#xff0c;数据资产已成为企业运营和决策的核心要素。然而&#xff0c;随着数据量的快速增长和技术的不断演进&#xff0c;数据资产面临的风险也日益增多&#xff0c;如数据泄露、数据篡改、数据滥用等。同时&#xff0c;数据保护法律法规的不断完善&a…

文华财经盘立方均线-支撑压力自动画线多空声音预警指标公式源码

文华财经盘立方多空均线-支撑压力自动画线指标公式源码&#xff1a; //MA5:MA(C,5); //MA10:MA(C,10); MA20:MA(C,20),COLORRED; MA60:MA(C,60),COLORGREEN; TY:CLOSE; HD:FILTER(BACKSET(FILTER(REF(TY,10)HHV(TY,2*101),10),101),10); LD:FILTER(BACKSET(FILTER(REF(T…

PatchMixer:一种用于长时间序列预测的Patch混合架构

前言 《PatchMixer: A Patch-Mixing Architecture for Long-Term Time Series Forecasting》原文地址&#xff0c;Github开源代码地址GitHub项目地址Some-Paper-CN。本项目是译者在学习长时间序列预测、CV、NLP和机器学习过程中精读的一些论文&#xff0c;并对其进行了中文翻译…

jdk1.8升级到jdk11遇到的各种问题

一、第三方依赖使用了BASE64Decoder 如果项目中使用了这个类 sun.misc.BASE64Decoder&#xff0c;就会导致错误&#xff0c;因为再jdk11中&#xff0c;该类已经被删除。 Caused by: java.lang.NoClassDefFoundError: sun/misc/BASE64Encoder 当然这个类也有替换方式&#xf…

一本好的电子画册应这样做,你做对了吗?

​一本好的电子画册&#xff0c;不仅要有吸引人的图文&#xff0c;还可能包括视频、音频等多媒体元素&#xff0c;为读者提供全方位的阅读体验。连贯性是指画册的整体设计风格、内容布局要协调一致&#xff0c;让读者在阅读过程中感受到流畅和自然。创新性则要求创作者在内容呈…

【别再用Excel了!】这款免费可视化工具能帮你轻松提升效率

现代数据分析和展示的需求已经远远超出了传统工具的能力&#xff0c;尤其是在需要快速、直观和高效地处理复杂数据的情况下。山海鲸可视化通过其强大的功能和易用性&#xff0c;成为了设计师以及各类新手用户的理想选择。下面我就以一个可视化设计师的角度&#xff0c;和大家简…

月入稳定还是创业冒险:你的选择决定未来

大家好&#xff0c;我是汇舟问卷。在现在这个环境下&#xff0c;无论是就业还是创业都不好做。在传统就业与创业之间的选择时&#xff0c;我们应避免一概而论或过度推崇某一方向。 事实上&#xff0c;并非所有人都适合创业&#xff0c;对于那些满足于稳定工作&#xff0c;每月…