当前位置: 首页 > news >正文

【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的封装)

相关文章:

  • Android Gradle 开发与应用 (一) : Gradle基础
  • spring Boot快速入门
  • Java MP3转PCM
  • 一文读懂什么是HTTPS检查
  • linux centos7.9改dns和ip
  • 【rust】vscode下rust-analyzer和Rust Test Lens的Lens
  • windows11本地深度学习环境搭建Anacond,keras,tensorflow,pytorch, jupyter notebook
  • apachectl: line 79: 20233 Segmentation fault (core dumped) $HTTPD “$@“
  • 【卡码网】完全背包问题 52. 携带研究材料——代码随想录算法训练营Day44
  • 10 Redis之SB整合Redis+ 高并发问题 + 分布式锁
  • 探索无限:Sora与AI视频模型的技术革命 - 开创未来视觉艺术的新篇章
  • PHP中的飞碟运算符、取反运算符、对比非ASCII字符串、对比浮点数操作
  • Linux之安装jdk,tomcat,mysql,部署项目
  • yolov5-tracking-xxxsort yolov5融合六种跟踪算法(三)--目标跟踪
  • 现代化数据架构升级:毫末智行自动驾驶如何应对年增20PB的数据规模挑战?
  • $translatePartialLoader加载失败及解决方式
  • 【许晓笛】 EOS 智能合约案例解析(3)
  • ES10 特性的完整指南
  • js递归,无限分级树形折叠菜单
  • Laravel 菜鸟晋级之路
  • leetcode386. Lexicographical Numbers
  • PHP的类修饰符与访问修饰符
  • php面试题 汇集2
  • PHP那些事儿
  • vagrant 添加本地 box 安装 laravel homestead
  • ViewService——一种保证客户端与服务端同步的方法
  • 动态规划入门(以爬楼梯为例)
  • 官方解决所有 npm 全局安装权限问题
  • 基于Android乐音识别(2)
  • 码农张的Bug人生 - 见面之礼
  • 深度学习入门:10门免费线上课程推荐
  • 微信小程序:实现悬浮返回和分享按钮
  • #QT(串口助手-界面)
  • $.ajax()
  • $HTTP_POST_VARS['']和$_POST['']的区别
  • (4)STL算法之比较
  • (C语言)球球大作战
  • (JS基础)String 类型
  • (八)c52学习之旅-中断实验
  • (超简单)使用vuepress搭建自己的博客并部署到github pages上
  • (二)Eureka服务搭建,服务注册,服务发现
  • (附源码)springboot炼糖厂地磅全自动控制系统 毕业设计 341357
  • (亲测)设​置​m​y​e​c​l​i​p​s​e​打​开​默​认​工​作​空​间...
  • (转)我也是一只IT小小鸟
  • ./configure,make,make install的作用
  • .Mobi域名介绍
  • .NET CF命令行调试器MDbg入门(四) Attaching to Processes
  • .NET DataGridView数据绑定说明
  • .Net6支持的操作系统版本(.net8已来,你还在用.netframework4.5吗)
  • .Net程序猿乐Android发展---(10)框架布局FrameLayout
  • .secret勒索病毒数据恢复|金蝶、用友、管家婆、OA、速达、ERP等软件数据库恢复
  • 。Net下Windows服务程序开发疑惑
  • /etc/fstab 只读无法修改的解决办法
  • ?php echo $logosrc[0];?,如何在一行中显示logo和标题?
  • @DataRedisTest测试redis从未如此丝滑