文章目录

  • 一、Tomcat是什么
  • 二、Tomcat下载安装
  • 三、Tomcat目录结构介绍
  • 四、启动Tomcat
    • 1.启动失败的原因
  • 五、部署静态页面
    • 1.静态页面是什么
    • 2. 部署单个 HTML
    • 3.部署带有 CSS / JavaScript / 图片 的 HTML
    • 4.部署 HTML 到单独的目录中
  • 六、感想

一、Tomcat是什么

百度百科是这样说的:

  Tomcat 服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。

  Tomcat是支持运行Servlet/JSP应用程序的容器,运行在jvm上,绑定IP地址并监听TCP端口。

  它是由Apache推出的一款免费开源的Servlet容器,可实现JavaWeb程序的装载,是配置JSP(Java Server Page)和JAVA系统必备的一款环境。它也具有传统的Web服务器的功能:处理Html页面。但是与Apache相比,在处理静态Html上的能力略逊一筹。

  Tomcat运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能,因而深受java爱好者的喜爱,并得到了部分软件开发商的认可,和Apache一样,早已成为主流Web服务器的一种。

  

  往细的方面说:Tomcat 是一个 HTTP 服务器。HTTP 协议就是 HTTP 客户端和 HTTP 服务器之间的交互数据的格式。我之前文章写过通过 ajax 和 Java Socket 分别构造了 HTTP 客户端。我们也同样可以通过 Java Socket 来实现HTTP 服务器,而 Tomcat 就是基于 Java 实现的一个开源免费,也是被广泛使用的 HTTP 服务器。


二、Tomcat下载安装

(1)打开这个网站:Apache Tomcat


在 Tomcat 官网下载,Tomcat 版本很多, 我们这里下载的使用 Tomcat 8。

我这里为什么选择Tomcat8呢?

  因为Tomcat的版本,和JDK以及Servlet的版本都是密切绑定在一起的,我电脑的JDK版本是8,因此我选择下载Tomcat8。有些同学的JDK可能用的是11甚至是17/18 ,这个时候下载的Tomcat版本最好统一。统一版本,统一环境,是个很重要的事情!尤其是以后咱们在工作中,公司用的是啥版本,咱们就用啥版本。


三、Tomcat目录结构介绍

对tomcat 目录解压缩之后, 可以看到如下结构:

  • 最上面显示的apache-tomcat-8.5.78这个,里面的8.几小版本无所谓,只要是8就行。

  • bin目录,存放各种启动、停止脚本的。里面的.bat后缀的文件是 windows的批处理文件。.sh 后缀的文件是linux的shell脚本的文件。其中startup.bat 启动服务,双击即可使用。

  • conf:Tomcat的配置文件,是通过xml的格式来组织的。如果想修改下tomcat的端口号,可以在这里的server.xml文件进行修改,tomcat默认绑定的是8080端口。

  • lib:运行 tomcat 需要的类库。

  • logs:记载运行时的日志文件,我们有时需要查看日志,来发现定位一些问题。日志其实就是表示了Tomcat运行中的一些具体过程细节,就是通过类似于printIn这样的代码打印出来的结果。

  • temp:临时文件夹。

  • webapps: 这个目录中放的是咱们部署的servlet程序,每个servlet程序,都是一个war后缀的文件(也是一种压缩包格式)tomcat 会自动把这个war解压缩,得到一个目录。每个war其实就对应了一个webapp(相当于是一个网站),在一个Tomcat上,允许你同时部署多个webapp(多个网站)。

我这里还没部署过,因此目录里面没有.war文件。

  • work:Tomcat 内部进行预编译的文件夹。

最后是一些文档,可自行阅读。

  在上面的这么多文件中,我们最关注的目录就是 webapps 目录。web applications 的简称,意思是用来存放 web 应用的文件夹。

一个具有独立完整功能的 “网站”,我们就可以称为一个 “web 应用”。例如 搜狗搜索 实现了独立完整的 “搜索引擎功能”,淘宝网 实现了独立完整的 “电商功能” 。一个 Tomcat 服务器上是可以同时部署多个这样的 web 应用的。这些 web 应用以目录的形式被放到 webapps 目录中。

  在webapps 目录里面,每个文件夹都对应着一个 web 应用, 可以在浏览器中分别访问每个 web 应用。


四、启动Tomcat

  在 bin 目录中,双击 startup.bat 即可启动 Tomcat 服务器看到形如以下内容的日志, 说明启动成功。

问:这里为什么会出现乱码的现象呢?

答:乱码的原因是 Tomcat 默认按照 UTF-8 的编码方式处理中文, 而 windows 的 cmd 默认是 GBK 编码。如果使用 Linux 或者 IDEA 中的终端来启动 Tomcat,则没有乱码问题。 但这里产生乱码不会影响我们对Tomcat的使用。

  在这里,我们要强行把cmd字符编码改成utf8也可以,但并不简单,因为cmd自身没有提供设置字符集的功能,这时我们需要修改电脑的注册表。


  这个注册表是Windows 系统的总的配置中心(总指挥部)。因此我们对于注册表一定要慎重修改,一旦这里改坏了,系统可能就挂了,我们就得重装系统了。


  

  当启动完成之后,在浏览器中输入 127.0.0.1:8080 即可看到 Tomcat 的默认欢迎页面。

有的同学在启动过程中,可能并不是很顺利,可能会出现一些问题。

1.启动失败的原因

(1)环境变量的问题。

  Tomcat要想能运行,得能够找到JDK 。如何才能找到JDK?取决于你的JDK到底安装在系统的哪个位置上了。

  我们可以打开环境变量查看,就可以看到最开始配置的环境变量位置了。


  因此,我们得先让Tomcaat找到这个jdk的位置,才能去调用。我们把运行的脚本直接拖到cmd中运行,就能看到运行失败的原因了。比如说下面,就显示了JAVA_HOME的环境变量配置出错。

  实际上类似于上述环境变量,tomcat本身会尝试配置。一般来说, tomcat都可以自动配好了,但是不排除有些情况下tomcat自动配置不生效。这个时候就可以手动配置了。

  

我们如何手动配置?也很简单:

(1)搜索环境变量

(2)打开,新建一个环境变量


  变量值输入文件存放的路径就可:


(2)端口号被占用了

  Tomcat 启动的时候默认会绑定 8080 和 8005 端口。如果有其他进程已经绑定了这两个端口中的任意一个,都会导致 Tomcat 不能启动。

  在命令行中使用 netstat -ano | findstr 8080 确定看 8080 是否被其他进程绑定,把对方进程干掉,再重新启动 Tomcat 一般就可以解决问题。(如下图),形如这样的结果说明 8080 端口已经被占用. 占用的进程是 13348 这个进程。然后就可以在任务管理器中找到这个进程, 并干掉这个进程。


五、部署静态页面

1.静态页面是什么

静态页面也就是内容始终固定的页面. 即使 用户不同/时间不同/输入的参数不同 , 页面内容也不会发生变化。(除非网站的开发人员修改源代码, 否则页面内容始终不变)。

Tomcat 的主页 https://tomcat.apache.org/ 就是一个静态页面。

对应的, 动态页面指的就是用户不同/时间不同/输入的参数不同, 页面内容会发生变化.

而 B 站的主页 https://www.bilibili.com/ 就是一个典型的动态页面。


2. 部署单个 HTML

我们可以把自己写好的 HTML 部署到 Tomcat 中。

(1)在Tomcat 的 webapps/ROOT 目录中创建一个文件——test.html。

(2)写入内容:

(3) 在浏览器中通过 URL http://127.0.0.1:8080/test.html来访问。

【注意】 127.0.0.1 为环回 IP, 表示当前主机。只能在局域网内部访问,不能被其他的局域网直接访问。

那么,如何让tomcat真正做到让页面被外面的人访问,这就需要能够搞一个外网IP,去买一个云服务器,就有了一个外网IP。这里以后再写篇文章就讲。


3.部署带有 CSS / JavaScript / 图片 的 HTML

  

  实际开发时我们的 HTML 不仅仅是单一文件, 还需要依赖一些其他的资源: CSS, JavaScript, 图片等。这些资源也要一起部署过去。

我们把写好的html复制到Tomcat 的 webapps/ROOT 中。

然后在浏览器中通过 http://127.0.0.1:8080/blog_list.html 来访问页面。


4.部署 HTML 到单独的目录中

  实际开发中我们的 HTML 可能不止一个, 依赖的 CSS / JavaScript 文件也可能比较多. 这个时候就不适合全都拷贝到webapps/ROOT 目录中了(这就会显的比较乱)。我们可以创建一个单独的目录, 和 ROOT 并列, 来存放我们要部署的内容。

(1)在 webapps 中创建目录 blog, 和 ROOT 目录并列。

(2)在blog中创建文件。

(3)在浏览器中通过 http://127.0.0.1:8080/blog/blog_list.html 。


可以看到,同样可以访问到。

实际上,我们还可以把静态页面部署到远端的云服务器上,这样其他人也能访问我们的页面了。

部署在本机 Tomcat 上的页面只能在局域网内部访问, 而云服务器上的 Tomcat 可以被整个 互联网访问。
云服务器往往使用Linux 作为操作系统,这里博主暂时还在学习之中,以后再总结。


六、感想

  原来实际上搞一个网站也并非很难,一点点的接近,有点小开心。等我全部学会了之后,给对象也搞个专属网站。

Tomcat-- 掌握汤姆猫,看这一篇文章就够了相关推荐

  1. js层级选择框样式_IOS和JS的交互,看这一篇文章就够了

    IOS和JS的交互,看这一篇文章就够了 创作不易,请珍惜,之后会持续更新,不断完善 Demo地址 目录 WKWebView使用.JS的交互 WKWebView使用.JS的交互 演示(本来想贴张GIF作 ...

  2. 关于VR产品的前世今生,看这一篇文章就够了

    关于VR产品的前世今生,看这一篇文章就够了(转) 文/胡勇 即使最富质疑精神最冷静的人也无法漠视现在的 VR/AR 掀起的狂潮,这个从科技圈蔓延到实业界最后席卷大众的想象力的狂欢正以前所未有的态势改变 ...

  3. 五年程序员是如何玩转闲鱼无货源的,只看这一篇文章就够了

    今天的内容方向主要是基础篇-进阶篇 ,优化了一下操作方法,尽量细化,让你看完这篇内容之后从入门到大神. 基础篇: 注册这些基础的之前说过,这次就不说了,这次说下如何养号. 完善个人资料(头像.昵称.简 ...

  4. java程序填空题输出汤姆猫_Java学习之手写Tomcat“迷你汤姆猫”

    之前学习Java EE的时候,做的项目都是部署在Tomcat上面,配置web.xml(小毛驴),然后启动Tomcat,通过浏览器输入URL去访问,当时其实真的不懂好多东西,尤其是不懂request.和 ...

  5. 动态规划——01背包问题 看此一篇文章就够了

    本文讲述经典算法--动态规划的 常见问题 01背包  一篇文章带你学会01背包问题,妈妈再也不担心我遇到01背包了!!! 问题描述 有n个物品,它们有各自的体积和价值,现有给定容量m的背包,如何让背包 ...

  6. 产品经理如何进行数据分析?看这一篇文章就够了

    一.数据分析的层级 产品的数据分析经常会遇到这样的问题:只有数据,没有分析.仅仅是描述数据,告诉你产品发生了什么. 比如次日留存率只有5%,这个数据偏低,可以看出该功能的用户粘性不好. 然后呢?往往就 ...

  7. 关于5G,看这一篇文章就够了

    对于大多数人来说,5G 这个名词即使不了解也一定听说过.不过,4G 时代不是才开始没几年吗?现在就说下一代无线通讯技术是不是有点早?确实是,不过时光飞逝岁月如梭,技术发展可不等人,5G移动通信可能很快 ...

  8. 如何进行云主机迁移?看这一篇文章就够了!

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由腾讯云计算产品团队发表于云+社区专栏 主机迁移概述 在云计算时代,不管是从IDC上云还是多云直接的迁移,都已经是常见的事宜.而在上云/ ...

  9. scrapy框架_入门Scrapy框架看这一篇文章就够了

    前言 Scrapy是一个非常优秀的框架,操作简单,拓展方便,是比较流行的爬虫解决方案. Scrapy是一个用Python写的Crawer Framework,简单轻巧而且非常方便.Scrapy使用Tw ...

最新文章

  1. 4.Java面向对象相关知识总结
  2. unity3D 5中如何修改及显示Text的值
  3. UCloud发布新一代归档存储产品,存储成本直降80%
  4. 键盘代替鼠标工具 Vimac for Mac
  5. html 抓取 post 请求,自动向网页Post信息并提取返回的信息(一)
  6. 计算机相关审稿周期短的ei,计算机比较好发的sci期刊_比较水的计算机ei期刊_ei期刊计算机...
  7. java解压zip压缩包
  8. 机器学习系列4 使用Python创建Scikit-Learn回归模型
  9. 利用requests库模拟访问博客来提升文章阅读量
  10. 空间大战java_回忆S60(塞班)年代的JAVA游戏:有没有哪一款是你在课堂偷偷玩的?...
  11. JAVA(阶段小结篇)
  12. HTML5.0实例练习(三) --制作一个简单登陆界面
  13. php oracle 傻瓜安装,PHP安装Oracle扩展[重新整理]
  14. html css制作404页面,一款纯css3实现的漂亮的404页面
  15. 基坑计算理论m法弹性支点法_微型防腐螺旋管支挡结构的内力与变形规律
  16. oracle闪回15分钟前,Oracle闪回技术(Flashback)
  17. 什么是敏捷项目管理,为什么要使用敏捷管理?
  18. AI+医疗:图表示学习在新药发现中的妙用
  19. UCF Local Programming Contest Round 1A记录
  20. Vert.x 简单介绍

热门文章

  1. linux socket结构,Linux C socket编程中几个常见的结构体定义
  2. 根据百度地图进行IP定位获取地址
  3. 深度解析dubbo网络传输层Transporter
  4. JVM知识整理----基础和垃圾处理
  5. 数据库设计--实体关系图(ERD)
  6. 屏蔽百度广告,百度新闻
  7. HGOI 20190711 题解
  8. java怎么强制回收某个对象_4、如何强制垃圾回收一个对象?(java)
  9. 阿斯利康新冠疫苗一种给药方案有效性达90%;中国香水消费客单价远超美欧市场 | 美通企业日报...
  10. wps合并所有sheet页_WPS怎么把几个工作表合并到一个工作表 - 卡饭网