【JavaEE】_tomcat的安装与使用

目录

1. Tomcat简介

2. Tomcat安装

2.1 下载Tomcat并解压缩

 2.2 启动Tomcat

2.2.1 Tomcat乱码问题

2.2.2 Tomcat闪退问题

2.3 访问Tomcat欢迎页面

3. 使用Tomcat部署前端代码

3.1 路径匹配

3.2 文件路径访问与网络访问

4. 静态页面与动态页面

5. 基于tomcat的网站后端开发


1. Tomcat简介

1. 使用HTTP进行通信,就涉及到HTTP客户端与HTTP服务器,

常见的HTTP客户端有:浏览器、Postman、爬虫程序等等

对于HTTP服务器,程序员就可以基于TCP socket手动实现,实际开发中我们并不需要从头开始写一个HTTP服务器,而是基于已开发的现成HTTP服务器进行二次开发即可;

这些已开发的现成HTTP服务器已经把如何处理HTTP请求,如何构造HTTP响应封装好了,我们只需要调用这些API来构造业务逻辑即可;

2. Tomcat就是Java中最知名、最流行的HTTP服务器

2. Tomcat安装

2.1 下载Tomcat并解压缩

1. 搜索tomcat找到官网:

Apache早期就是一个开源的C语言版HTTP服务器,后来发展为一个开源社区,再后来开发了很多开源产品;

此处以选择tomcat8为例;

注意:

(1)tomcat是与Java8配合使用的,对应 jdk 8

(2)tomcat版本与servlet版本是强相关的,此处使用tomcat8,对应的servlet版本就是3.1,二者需要对应使用

(3)一个计算机上可以同时安装多个版本的tomcat

点击下载安装包即可;

2. 下载该zip压缩包后,解压即可,此处不再赘述;

注意:tomcat是基于java实现的,故而tomcat要运行,电脑必须安装有jdk(至少得有jre)

3. 解压缩后根据路径打开目录:

注:1. 服务器程序是不适合使用调试器进行调试的,调试器运行到断点停下来就会导致无法响其他客户端的请求。日志是通过System.out.println等方式打印的一些字符串,使用日志就可以更好地理解程序的实际执行过程与查看某些临时结果;

但使用日志调试也会有一些麻烦之处,每次添加或改动日志,都需要重新编译运行;

2. webapps目录下还能见到.war压缩包文件,写好一个网站就可以打包为war包,拷贝到tomcat的webapp中。

 2.2 启动Tomcat

(1)打开bin目录查找startup

注意:startup.bat供windows使用,startup.sh供linux和mac使用

(2)双击打开即可:

2.2.1 Tomcat乱码问题

 服务器基本上都是控制台程序,是不带界面的,tomcat亦如是。

此处乱码是由于windows自带的cmd默认字符集为gbk,而Tomcat默认字符集为utf8(主流),

把cmd改为utf8修改非常麻烦,此处可以不作处理,后续会介绍Tomcat的其他使用方法,如将tomcat集成到idea中,或在linux中使用,这两种方式都不会导致乱码。

故而此处可以不作处理;

2.2.2 Tomcat闪退问题

如果出现闪退,可以使用cmd打开控制台后,将startup.bat拖到其中运行,大概率可以显示出错信息。常见的闪退原因有:

(1)端口占用:重复打开tomcat或正在运行其他的HTTP服务器如IIS;

(2)环境变量问题:tomcat找不到jdk,或tomcat找不到自己所在的目录,此时根据提示缺少的环境变量进行配置即可(设置-搜索环境变量-编辑系统环境变量或用户变量均可-环境变量);

如CATALINNA_HOME问题,配置到tomcat的目录即可;

如JAVA_HOME问题,配置到jdk的目录即可;

2.3 访问Tomcat欢迎页面

(该页面为tomcat自带的webapp)

在tomcat运行状态下,在浏览器访问http://127.0.0.1:8080/(环回IP),即可访问到tomcat的欢迎页面:

3. 使用Tomcat部署前端代码

使用tomcat最大的用途就是部署网站,网站=前端+后端,当前部署前端代码作为示例;

部署,即将代码拷贝到webapps目录中,再重新启动tomcat后,就可以通过浏览器访问博客系统页面

如,基于BLOG目录下的以下文件:

将BLOG目录复制到tomcat的webapps目录下:

重启tomcat后,在浏览器中输入地址:

即可打开之前编写的前端页面:

部署成功。

3.1 context path和servlet path

部署成功的tomcat下的webapps目录文件与浏览器地址是对应匹配的:

如果在浏览器中输入地址时出现对应错误,就会返回404 Not Found:

如输入以下地址:

3.2 文件路径访问和网络访问

1. 通过文件路径访问:

2. 通过网络方式访问(ip: port):

但当前的服务器所在主机IP为内网IP,在其上实现的webapp无法跨局域网访问,需要部署到云服务器上后就可以通过外网访问了;

4. 静态页面与动态页面

1. 静态页面:页面内容固定,如搜狗的搜索主页:

2. 动态页面:根据用户输入的内容不同或没有明显的不同,产生不同的结果;

如浏览器的搜索功能,输入不同的数据就要检索出不同的内容,

或bilibili主页(根据用户搜索、浏览历史进行推送):

5. 基于tomcat的网站后端开发

对于网站后端开发,HTTP服务器必然要针对HTTP协议进行一系列操作。

tomcat提供了一组API,封装了与HTTP相关的底层操作,我们只需调用tomcat提供的api即可;

tomcat给java提供的原生的进行web开发的api就是servlet;

(后续接触到的Spring MVC也是进行web开发的api,这些api也是基于servlet的,相当于是对servlet的封装)

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

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

相关文章

单片机04__基本定时器__毫秒微秒延时

基本定时器__毫秒微秒延时 基本定时器介绍(STM32F40x) STM32F40X芯片一共包含14个定时器,这14个定时器分为3大类: 通用定时器 10个 TIM9-TIM1和TIM2-TIM5 具有基本定时器功能, 还具有输入捕获,输出比较功…

Linux---权限管理(ACL权限、特殊位和隐藏属性)

目录 1.ACT权限 1.1什么是ACT权限 1.2ACT图解 2.操作步骤 2.1添加测试目录、用户、组,并将用户添加到组 2.2修改目录的所有者和所属组 2.3设定权限 2.4为临时用户分配权限 2.4.1添加临时用户 2.4.2为临时用户分配特定权限 2.4.3查看目录权限,注…

【LeetCode-337】打家劫舍III(动态规划)

目录 题目描述 解法1:动态规划 代码实现 题目链接 题目描述 在上次打劫完一条街道之后和一圈房屋后,小偷又发现了一个新的可行窃的地区。这个地区只有一个入口,我们称之为“根”。 除了“根”之外,每栋房子有且只有一个“父“…

解决IDEA中Maven下载依赖包过慢或报错的问题

由于公司项目迭代,越来越多的项目开始转型新版本,由于我对Java一直不感冒,但要顺应公司项目要求,遂自己要逐步开始完善Java相关的知识层面,此篇是我在学习SpringBoot时对一些不懂地方及遇到问题时的记录。 学习视频链…

SpringMVC 学习(一)之 SpringMVC 介绍

目录 1 MVC 介绍 2 SpringMVC 介绍 2.1 SpringMVC 特点 2.2 SpringMVC 的核心组件 2.3 SpringMVC 执行流程 3 参考文档 1 MVC 介绍 MVC (Model View Controller) 是一种设计思想,它将应用程序分为三大组件:模型 (Model)、视图 (View)、控制器 (Con…

Docker Container(容器)

"在哪里走散,你都会找到我~" Docker 容器 什么是容器? 通俗来讲,容器是镜像运行的实体。我们对于镜像的认知是,“存储在磁盘上的只读文件”。当我们启动一个容器的本质,就是启动一个进程,即容器…

开源软件:塑造软件行业未来的协作与创新之力

随着信息技术的迅猛发展,开源软件已经逐渐成为软件开发的潮流,以其独特的低成本、可协作性和透明度等特性,在全球范围内引起了广泛的关注和应用。越来越多的企业和个人选择使用开源软件,这不仅推动了软件行业的繁荣,还…

iOS调用系统已安装地图及内置地图实现

info.plist要添加scheme: 1.地图列表: NSArray *mapKeys=[[NSArray alloc] initWithObjects:@"com.autonavi.minimap",@"com.baidu.BaiduMap",@"com.google.android.apps.maps",@"com.tencent.map", nil]; NSArray *mapSchemes=[[NS…

每日五道java面试题之spring篇(四)

目录: 第一题 Spring框架的设计目标,设计理念,和核心是什么?第二题. Spring由哪些模块组成?第三题. 详细讲解一下核心容器(spring context应用上下文) 模块第四题.Spring框架中有哪些不同类型的事件第五题.…

Mamba详细介绍和RNN、Transformer的架构可视化对比

Transformer体系结构已经成为大型语言模型(llm)成功的主要组成部分。为了进一步改进llm,人们正在研发可能优于Transformer体系结构的新体系结构。其中一种方法是Mamba(一种状态空间模型)。 Mamba: Linear-Time Sequence Modeling with Select…

华为HCIP Datacom H12-831 卷23

单选题 1、某园区部署IS-IS实现网络互通,在所有IS-IS路由器的进程中配置命令flash-flood 6 max-timer-interval 100 Leve1-2,则以下关于该场景的描述,正确的是哪—项? A、若某IS-IS路由器LSDB内更新的LSP数量为5,则在100毫秒内且路由计算完成前&#…

nginx-------- 高性能的 Web服务端 (三) 验证模块 页面配置

一、http设置 1.1 验证模块 需要输入用户名和密码 htpasswd 此命令来自于 httpd-tools 包,如果没有安装 安装一下即可 也可以安装httpd 直接yum install httpd -y 也一样 第一次生成文件htpasswd -c 文件路径 姓名 交互式生成密码 htpasswd -bc 文…