【JavaEE】Tomcat

news2025/7/18 21:28:45

努力经营当下,直至未来明朗!

文章目录

  • 【Tomcat】:http服务器
  • THINK


努力成为你想成为的人一定很酷!

【Tomcat】:http服务器

  1. http客户端就是我们平时使用的浏览器,但是我们还需要开发实现一个服务器来搭建网站的“后端部分”。

开发实现一个服务器,其实就是写个TCP socket服务器,但是比较麻烦,会有很多重复性的工作,所以业界一些大佬就实现了一些现成的HTTP服务器,我们在进行网站开发的时候就不必从头去写了,只需要基于这些HTTP服务器进行二次开发就行。

  1. 学习Tomcat其实就是为了熟练掌握Tomcat的api,能够基于Tomcat开发网站的后端程序。
  2. 下载Tomcat:官网下载->Download选择Tomcat8(大版本是8,小版本无所谓) -> zip
    下载地址:tomcat

Tomcat是绿色软件,解压缩后可以直接使用

1

  1. Tomcat文件夹介绍:
    2

① bin是Tomcat启动的脚本: .bat是给windows用的, .sh是给linux/mac使用的

3

(tomcat是运行在JVM上的,是跨平台的)

② conf:放的是Tomcat的配置文件。其中最关键的是server.xml,这里可以配置绑定哪个端口以及tomcat是否启用https啥的。
5

③ logs:Tomcat的日志,即sout打印的信息。
④ webapps:可以在Tomcat上同时部署多个网站(webapp)。

(以上四个目录在后期会经常涉及到)

5.启动tomcat:双击startup.bat(在bin目录下)
6
如果出现该信息就说明启动成功。

  • 如果没有出现,通用方法就是:将bat拖到cmd运行,看报错信息是啥
  • 如果报错信息出现:CATALINA_HOME,那就配置环境变量,系统or用户都行,变量名是CATALINA_HOME、变量值是Tomcat的安装路径。 ——正常情况下是可以直接成功的
  1. Tomcat跑起来之后就可以去浏览器访问一下Tomcat的欢迎页面了,在地址栏输入:127.0.0.1:8080 (Tomcat默认端口是8080)
    8

  2. webapps:可以将前端和后端的代码分别拷贝到该目录中,每个目录都可以视为是一个webapp(网站)。

ROOT目录中放的就是欢迎页面,具体来说就是index.jsp。咱们也可以自己写个页面html放到该目录ROOT下。
9

  1. 写的html可以直接双击打开,那么将其放到webapps中是否为多此一举?
    :绝对不是。双击打开的是本地路径,只能自己访问;而通过放到webapps中是通过tomcat中的http服务器,可以通过网络访问到别人电脑的网页。

  2. 那么能否访问别人电脑上的Tomcat?
    答:不能,因为不在同一个局域网中。需要外网IP才能够访问,此时就需要云服务器!

  3. 直接在Windows上通过startup.bat这种方式运行Tomcat是少数的。
    ① 开发阶段:是使用idea插件把Tomcat的内容输出到idea中的(utf-8编码方式)
    ② 部署阶段:是把Tomcat放到linux云服务器上(utf8编码)

  4. 访问在webapps/ROOT中的.html时,在地址栏输入的是:127.0.0.1:8080/xxx.html

  5. 但是将所有的html页面都放到webapps/ROOT中就会很乱,所以一般在webapps下单独创建一个目录来存放相关的页面,此时将该单独目录视为一个webapp。

  6. 所以访问路径:127.0.0.1:8080/xxx1/xxx2.html,其中/xxx1是在webapps中的第一级目录(也就是我们建起来的新目录),xxx2.html就是当前第一级目录下的文件。

此时,如果访问是404,就重启一下Tomcat

  1. 访问路径中默认是webapps/ROOT目录,可以自己指定webapps下的目录,也可以使用…/返回上一级,但是一定要注意:务必保证只能在webapps目录范围下访问!!
    (注:目录最好使用英文进行命名!)

  2. 示例:将博客系统前端页面文件夹拷贝到webapps目录下:
    11

然后尝试运行(保持Tomcat打开):
22


THINK

  1. Tomcat是http服务器,本质上是一个TCP服务器,只不过是在基础上加上了一些按照http协议格式进行解析/构造 这样子的代码。

  2. 我们所写的网站后端,要做的就是调用Tomcat提供的API进行二次开发。

  3. 只要需要使用Tomcat,就要保证其是一个挂着的状态。

    yyy

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

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

相关文章

[FireshellCTF2020]Caas

打开界面,是一个运行代码的*框,然后我们输入 本来以为会是一个ssti模板,{{8*8}}却仍然还是报错,print echo 等输出都不行 只能分析分析报错信息看看有没有什么有用的东西 /tmp目录下的,class_7eamm1tu3.c后缀名是c&…

【论文阅读】(2020)Knapsack polytopes: a survey(上)

文章目录一、Abstract 摘要二、Introduction 介绍三、General polyhedral structure 一般多面体结构3.1 Basic properties 基本性质3.2 Covers 覆盖不等式四、Binary formulations based on strong covers 基于强覆盖的二元公式五、Lifting 提升5.1 Sequential up-lifting5.2 S…

2. bean加载控制

1. Controller加载控制 因为功能不同,要避免Spring错误的加载到SpringMVC的bean 1.1 Controller加载控制与业务bean加载控制 SpringMVC相关bean(表现层bean) Spring控制的bean 业务bean(Service) 功能bean&#xf…

Java——图

概念 图是由顶点和边组成的一种数据结构,我们之前介绍的树形结构中,树的每一个节点就是顶点,顶点与顶点中的连线就是边,也就是说,树是一种特殊的图 图中的边如果有方向,那么这个图就称为有向图&#xff0…

个人总结详细版的C++调用Opencv和Halcon封装dll

一、前言: 在C调用opencv和Halcon封装的过程中踩过很多坑,然而网上却查不到清晰地教程。在此个人总结详细教程,以免后人踩坑。记录下,以后自己忘了也可以来看看。 二、教程细节 2.1 我使用的IDE是vs2017,下面所有的介绍也都是以此…

理解操作系统(Linux)

操作系统是一款对软硬件资源进行管理的软件! 操作系统为什么要对软硬件资源进行管理呢? 操作系统通过合理的管理软硬件资源的手段,为用户提供良好的(稳定的、高效的、安全的)执行环境。 操作系统是如何进行管理的呢…

机器学习100天(十七):017 逻辑回归梯度下降

机器学习 100 天,今天讲的是:逻辑回归-梯度下降! 在讲解了逻辑回归的基本原理和损失函数之后,我们来推导逻辑回归模型中参数 w 和 b 的梯度表达式。 我们之前介绍过,计算逻辑回归的代价函数实际上包含了下面三个过程: Z = W T X + b Z=W^TX+b Z=

ASOC系统简析

一 嵌入式音频系统介绍 上图是音频系统的硬件模拟图,声卡通过I2S接口与cpu进行音频数据传输,通过I2C接口与cpu进行控制通讯。 录音数据通路:麦克风---->声卡------I2S------>DMA---->内存; 播放数据通路:内存…

HaaS EDU物联网项目实战:野外救援项目

HaaS EDU K1是一款高颜值、高性能、高集成度的物联网开发板,板载功能强大的4核(双核300Mhz M33双核1GHz A7)主芯片,2.4G/5G双频Wi-Fi,双模蓝牙(经典蓝牙/BLE),并自带丰富的传感器与小…

Exception in thread “main“ java.lang.NoClassDefFoundError

项目场景: 验证继承情况下子类创建对象时,先调用父类的构造方法,再调用子类的构造方法 问题描述 随机(不同次数的测试下)会产生Exception in thread "main" java.lang.NoClassDefFoundError错误 package e…

Pandas 详解

本文主要介绍python 数据分析模块 Pandas,并试图对其进行一个详尽的介绍。 通过阅读本文,你可以: 掌握 Anaconda 环境的安装及使用了解什么是 Pandas掌握 Series 对象基本操作掌握 DataFrame 对象的基本操作掌握缺值处理掌握 Series 对象和 D…

计算机今年炸了?现在还适合入行吗?

恍惚之间,一年已来到了尾声,对于应届生来说,这是不堪回首的一年,一个字,难。 不但冷门专业就业困难,就连过去的宇宙机专业,也不复盛况,相较于往年的火热,今年的计算机行…

ES6的相关知识点

一:var let const let var区别: 1.let没有变量提升(预解析)我们先定义再使用,Var可以先使用再定义因为他有预解析,var有声明提升>先上车后买票, 2.let不能在同一个作用域中重复定义变量,如…

使用docker容器部署httpd(绝对可用)

众所周知,httpd是一个服务,里面有很多配置要改,通过dockerfile编写很复杂,所以这里,我们【采用进入容器内修改的方式,去生成一个新的httpd容器】 httpd我们平常用yum安装,所以一定要最好是自带…

【小程序】全局配置window和tabBar

目录 全局配置 1. 全局配置文件及常用的配置项 全局配置 - window 1. 小程序窗口的组成部分 2. 了解 window 节点常用的配置项 ​编辑 3. 设置导航栏的标题 4. 设置导航栏的背景色 5. 设置导航栏的标题颜色 6. 全局开启下拉刷新功能 7. 设置下拉刷新时窗口的背景色 …

Hibernate-Validator(数据校验框架)

目录一、Hibernate-Validator 简介二、项目中为什么要用校验框架三、添加依赖四、看一个入门级案例五、常用注解六、使用groups的校验一、Hibernate-Validator 简介 hibernate-validator是Hibernate项目中的一个数据校验框架,它能够将数据校验从业务代码中脱离出来…

-防火墙-

数据来源 一、防火墙的基本概念 防火墙的定义:是一款具备安全防护功能网络设备 ◆ 隔离网络 将需要保护的网络与不可信任网络进行隔离,隐藏信息并进行安全防护 防火墙基本功能: ◆ 访问控制 - ACL ◆ 攻击防护 ◆ 冗余设计 ◆ 路由、交…

基于XMC4800 Ethercat从站的工厂自动化解决方案

背景 随着“工业4.0”与“工业互联网”概念的提出,“互联网制造”的概念被大众所熟知,人们称之为第四次工业革命。在这样的背景下,新的工业自动化孕育而生。智能工厂、提供智能工厂设计与实施的工业4.0解决方案商、技术供应商相继出现。ARRO…

Android---Banner轮播图

轮播图是一种很常见的UI。Banner框架能够帮助我们快速开发,完成首页轮播图效果的需求。 1、导入Banner依赖 implementation io.github.youth5201314:banner:2.2.2 2、activity_main.xml布局。 banner_loop_time: 设置轮播间隔时间,默认3000&#xff…

逆天了!用Numpy开发深度学习框架,透视神经网络训练过程

哈喽,大家好。 今天给大家分享一个非常牛逼的开源项目,用Numpy开发了一个深度学习框架,语法与 Pytorch 基本一致。 今天以一个简单的卷积神经网络为例,分析神经网络训练过程中,涉及的前向传播、反向传播、参数优化等核…