后端(一):Tomcat

news2024/12/23 15:09:46

我们之前的前端是被我们一笔带过的,那不是我们要讲的重点,而这里的后端则是重点。本章先来认识认识后端的基础。

Tomcat 是什么

我们先来聊聊什么叫做tomcat,我们熟悉的那个是汤姆猫:

 这和我们Java世界中的Tomcat 不是同一只猫,来看看Java中的汤姆:

 Tomcat 是一个 HTTP 服务器.
前面我们已经学习了 HTTP 协议, 知道了 HTTP 协议就是 HTTP 客户端和 HTTP 服务器之间的交互数据的格式.
同时也通过 ajax 和 Java Socket 分别构造了 HTTP 客户端.
HTTP 服务器我们也同样可以通过 Java Socket 来实现. 而 Tomcat 就是基于 Java 实现的一个开源免费,也是被广泛使用的 HTTP 服务。

Tomcat 的下载

在 Tomcat 官网下载即可,目前比较主流的是tomcat 8 ,所以这里讲的也是tomcat 8 。

我把官网链接放在下面:

Apache Tomcat® - Apache Tomcat 8 Software Downloads

可以搜索,也可以直接点击download 下的Tomcat8.

 选择其中的 zip 压缩包, 下载后解压缩即可。。

另外,解压缩的目录最好不要带 "中文" 或者 特殊符号

 下载完就完了,Tomcat 属于是那种绿色无污染的软件,下载的路径,最好下次能找到。

我上一次就是,出了个问题,然后没有找到Tomcat 的安装路径,搞得自己又去重新下载。

安装完之后的可以看到如下目录结构:

bin 目录,是binary,二进制目录, 里面存放的是可执行文件。

双击后出现如下信息就说明启动成功了:

 如果出现闪退或者其他启动不成功的情况,我们可以将这个文件托入cmd 窗口下看看除了什么问题,例如:

 那就配置一下 Catalina home 的环境变量即可。

我这里就借用别人的文章,链接如下:

(216条消息) Tomcat环境变量Catalina_Home配置_path只有%catalina_home%\bin_米刀文的博客-CSDN博客

 实在不行也可以去B站查一查Tomcat 的下载。

当我们配置完毕之后,再次将startup.bat 目录托近cmd 窗口出现:

那就说明,咱这个tomcat 的配置以及没问题了。

也可以:

 

既然tomcat 是个服务器,那么它一定是需要绑定端口号的。

我们来查看一下,tomcat 绑定的端口号:

如果说输入了指令,啥都没有 出现,那就说明你的服务器没有启动,所以8080 这个端口没有被占用。

后面的数字,代表着tomcat 的进程 id ,这个可能都不一样。

部署自己的网站

这里先提前感受一下部署网站,后面会细说的。

我们这里有个还在做的项目(未完成),我们就可以把它部署到网站上去。

这个webapps 就是用来存放我们将要部署的网站,后面还会再提到。

这是第一步,然后再去重新打开tomcat 。

打开之后,再再浏览器中输入:http://localhost:8080/blog_system/blog_list.html博客列表页icon-default.png?t=N4P3http://localhost:8080/blog_system/blog_list.html

 

当然了,我们html 网页,双击也可以打开,但是这二者是有区别的,我们双击打开只能是由我们自己主机访问,而用tomcat 部署,是给客户去访问的。

但是,现在不代表你能用你的电脑来访问我的这个网站。

这里就复习一下前面网络原理的知识:

原因在于,目前你没有拿到我的外网ip ,我们之前在网络原理中提到的 NAT 机制。现在有两个办法能给够访问到,要么获取到我的外网ip ,要么我们同处于一个局域网下。

并且,我们目前的网站是 http 协议的,并不是https 协议,所以会提示网站不安全啥的。原因在于我们没有引入第三方机构,这个得花钱,就不过多介绍了。

我们要学习的重点是基于 tomcat 的编程!

假设我们现在需要写一个网站后端(http服务器),我们可以从头开始写,但是比较麻烦,本章讲到的tomcat 以及帮我们完成了这部分的工作,并且提供了一系列的API ,可以让程序员在程序中直接调用。

此时就省去了一部分工作,更加注重业务逻辑。Java 的初衷就是为了让程序员更加注重业务逻辑。

ok,本章初始后端的tomcat 也就写到这里,我们后面会聊到后端的很多 API。

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

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

相关文章

包含合并单元格的表格快速排序

实例需求:现需要将原料配方成分表按照“原料含量”从高到低排序,如下图所示。由于表格中包含合并单元格,因此Excel的排序功能无法正常。 示例代码如下。 Sub demo()Dim data(), i, idx, k, slstRow Cells(Rows.Count, 2).End(xlUp).RowReDi…

02-项目系统架构

1、为何选择xxxxx 1.1、高并发场景有哪些? 商品秒杀,双11 微信支付宝平台 微博突发热点 用户操作日志 购票平台 1.2、为何选择xxxxx 业务复杂度高于淘宝双11,考验个人程序设计能力 动态库存 选座功能 线上线下 持续高并发业务&…

5G宏基站的形态5G基站长什么样?

据说,全国建了约273.3万个5G基站。 真是春城无处不飞花,5G遍布千万家。 今天我们换个轻松的话题,来看看春光下的5G宏基站。 胜日寻芳泗水滨,无边光景一时新。 等闲识得东风面,万紫千红总是春。 古人在春游时寻芳&am…

QGIS 对 GeoJson 文件数据进行压缩

项目场景 地图开发,友商提供的是边界Shapefile文件,文件比较大,例如某个文件就 29.2 M ,这么大的数据,在echarts 上显示地图,前端会很卡,特别是有地图下钻的时候,体验很不好&#x…

【终极计算平台】上海道宁为您提供​Wolfram技术,支持跨桌面、云、服务器和移动设备的强大工作流程

Wolfram帮助世界 加快研究、教育、技术发展和 革新的步伐 无论您所在任何领域 无论您需要任何应用 Wolfram技术都是您的终极计算平台 Mathematica 具有 涵盖所有技术计算领域的 将近 6,000 个内置函数—— 所有这些都经过精心制作 使其完美地 整合在Mathematica系统中…

黑马优购学习笔记

1. uni-app 简介 uni-app 是一个使用 Vue.js 开发所有前端应用的框架。开发者编写一套代码,可发布到 iOS、Android、 H5、以及各种小程序(微信/支付宝/百度/头条/QQ/钉钉/淘宝)、快应用等多个平台。 详细的 uni-app 官方文档,请翻…

PX4之commander详解

如前所述commander的作用主要处理各种事件,调度控制系统的运行,事件包括遥控输入、用户指令、状态变更等。调度的作用主要设置控制系统运行的变量和模式,以使控制系统按照用户期望的模式运行,实现不同的控制功能。控制系统主要由n…

PIC 使能485/422_Part2.1使能485_Tx_Only

1.需求 工作中需要把目前设备的单向232转为485/422模式,实现双向通讯,目前查找相关资料。突然想到一件事,我是否能让232现有的单向上发线同时连工控机的tx,rx,然后靠协议,来定时切换PIC一侧的tx rx?PIC可能不支持这个…

零基础学会用Airtest-Selenium对Firefox进行自动化测试

1. 前言 本文将详细介绍如何使用AirtestIDE驱动Firefox测试,以及脱离AirtestIDE怎么驱动Firefox(VScode为例)。 看完本文零基础小白也能学会Firefox浏览器自动化测试!!! 2. 如何使用AirtestIDE驱动Firef…

MyBatis 所有的 jdbcType类型

MyBatis处理MySQL字段类型date与datetime 1) DATETIME 显示格式:yyyy-MM-dd HH:mm:ss 时间范围:[ 1000-01-01 00:00:00到9999-12-31 23:59:59]2) DATE 显示格式:yyyy-MM-dd 时间范围:[1000-01-01到9999-12-31]3&#…

【SpringCloud】1.一文带你入门SpringCloud微服务

文章目录 1. 搭建父工程2. 搭建注册中心3. 搭建一个服务提供者4. 搭建一个服务消费者5. 整合OpenFeign实现服务之间的调用 1. 搭建父工程 最近打算使用 springcloud 搭建微服务玩一下,用到的东西大致有以下这些: jdk 1.8idea 2019maven 3.6.3springclo…

CS5466应用电路图|CS5466设计方案原理图|TypeC转HDMI8K30HZ(4K144HZ)芯片方案原理图

CS5466支持dsc1.1/12a压缩视频传输,是一款Type-C转HDMI8K30HZ或者4K144HZ方案芯片,其设计原理图如下: CS5466 Type-C/DP1.4转HDMI2.1的显示协议转换芯片, 内部集成了PD3.0及DSC decoder,可支持DP 2Lane最高8K30或4K144, 并能按客户…

拉取maven项目 pom出现 The <project> element is the root of the descriptor.

引入将各个module 修改JDK版本为1.8,然后再修改 Perferences -> Build -》Compiler -> Java Compiler各个版本,对各个项目改为1.8

Docker容器学习笔记

一、初始Docker 实质上:是将开发的代码和运行环境打包成一个容器。解决开发(开发环境)、测试(测试环境)、运维(生产环境)之间的沟通交流。 1.1Docker的概念 docker:解决跨环境迁移…

B. 广告投放

B. 广告投放 Problem - B - Codeforces 思路:对于这个题来说,我们很容易可以想到是一个dp问题,我们可以使用f[i][j]表示我们已经处理了前i-1个问题,并且当前剩余的人数是j的情况下,能够得到的最大的收益,那…

共享内存(内存映射的使用、注意事项、进程间通信、systemV共享内存)

一、内存映射 概念:使一个磁盘文件与内存中的一个缓冲区相映射,进程可以像访问普通内存一样对文件进行访问,不必再调用read,write。 mmap()的优点: 实现了用户空间和内核空间的高效交互方式 二、函数定义 void *mmap(void *ad…

PMP课堂模拟题目及解析(第17期)

161. 项目发起人任命一位高级工程师到指导委员会,来帮助监督项目管理计划。该工程师经常不同意由项目团队制定的计划,并在提交批准之前对项目管理计划表达严重关切。项目经理应该怎么做? A. 通知项目发起人,该工程师延迟了规划过程…

2、Kingbase - 修改密码报错

情况 Kingbase数据库修改密码后,重新连接失败 提示信息 致命错误: 用户 "system" Password 认证失败 (kbjdbc: autodetected server-encoding to be GB2312, if the message is not readable, please check database logs and/or host, port, dbname, u…

软件外包开发项目管理工具

随着软件项目的规模越做越大,项目管理人员需要使用工具管理项目进度,从而更有成效的管理好软件开发进度。软件开发的进度管理工具有很多,今天和大家分享一些常用的系统工具,希望对大家有所帮助。北京木奇移动技术有限公司&#xf…