【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.mzph.cn/news/705807.shtml

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

相关文章

更换个人开发环境后,pycharm连接服务器报错Authentication failed

原因:服务器中更换个人开发环境后,密码变了。 解决:在pycharm中修改服务器开发环境密码即可。 1 找到Tools-Depolyment-Configuration 2 点击SSH Configuration后的省略号 3 修改这里面的Password即可

婚恋交友系统源码-交友APP小程序H5开发-源码交付,支持二开-实名制交友更放心!

一、交友小程序开发的重要性 1. 满足人们的社交需求:交友小程序为人们提供了一个便捷的社交平台,使得人们可以随时随地地结识新朋友,拓展自己的社交圈子。 2. 丰富人们的业余生活:通过交友小程序,人们可以参加各种线…

lv21 QT 常用控件 2

1 QT GUI 类继承简介 布局管理器 输出控件 输入控件 按钮 容器 2 按钮示例 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QCheckBox> #include <QLineEdit> #include <QPushButton>class Widget : public QWidget {Q_OBJECTpublic…

探究前端路由hash和history的实现原理(包教包会)

今天我们来讲一讲前端中很重要的一个部分路由&#xff08;router&#xff09;&#xff0c;想必前端小伙伴对‘路由’一词都不会感到陌生。但是如果哪天面试官问你&#xff0c;能大概说一说前端路由的实现原理吗&#xff1f; 你又会如何应对呢&#xff1f; 今天勇宝就带着大家一…

LeetCode 0938.二叉搜索树的范围和:深度优先搜索(可中序遍历)

【LetMeFly】938.二叉搜索树的范围和&#xff1a;深度优先搜索&#xff08;可中序遍历&#xff09; 力扣题目链接&#xff1a;https://leetcode.cn/problems/range-sum-of-bst/ 给定二叉搜索树的根结点 root&#xff0c;返回值位于范围 [low, high] 之间的所有结点的值的和。…

动态规划课堂2-----路径问题

目录 引言&#xff1a; 例题1&#xff1a;不同路径 例题2&#xff1a;不同路径II 例题3&#xff1a;礼物的最⼤价值 例题4&#xff1a;下降路径最⼩和 例题5&#xff1a;最小路径和 结语&#xff1a; 引言&#xff1a; 在学习完动态规划斐波那契数列模型后&#xff0c;…

信息安全计划

任何管理人员或人力资源专业人士都知道&#xff0c;除非彻底记录标准和实践&#xff0c;否则永远无法真正实施和执行标准和实践。正如您可能想象的那样&#xff0c;在保护您的网络、技术和数据系统免受网络威胁以及在发生这些事件时规划最及时、高效和有效的响应时&#xff0c;…

Linux环境搭建Jenkins(详细图文)

目录 简介Jenkins 特点 一、环境准备 1.jdk环境准备 2.maven环境准备 3.git环境准备 二、安装部署Jenkins&#xff08;采用war包方式&#xff09; 1.下载Jenkins ​2.启动war包 1&#xff09;将下载好的Jenkins的war包上传到服务器上 2&#xff09;编辑启动脚本,方便…

nginx反向代理和负载均衡配置

配置文件 位置 : /usr/local/software/nginx/conf vim nginx.conf 在http大括号下配置: upstream wnBalance{ server ip:端口 weight比重 :1或者2; 1为配重高 server ip:端口 weight1; } wnBalance : 代表括号中两个ip的变量名 位置 : /usr/local/so…

图像的压缩感知的MATLAB实现(第3种方案)

前面介绍了两种不同的压缩感知实现&#xff1a; 图像压缩感知的MATLAB实现&#xff08;OMP&#xff09; 压缩感知的图像仿真&#xff08;MATLAB源代码&#xff09; 上述两种方法还存在着“速度慢、精度低”等不足。 本篇介绍一种新的方法。 压缩感知&#xff08;Compressed S…

Vue-Cropper头像裁剪插件使用

1. 效果预览 2. 插件介绍 官网地址&#xff1a;[GitHub - xyxiao001/vue-cropper: A simple picture clipping plugin for vue](https://github.com/xyxiao001/vue-cropper?fromthosefree.com) 3 . 插件使用 下载插件 npm install vue-croppernext3 . 封装好的代码&#x…

Rider 2023:打造高效.NET项目的智能IDE,让开发更简单mac/win版

JetBrains Rider 2023激活版下载是一款专为.NET开发者打造的强大集成开发环境&#xff08;IDE&#xff09;。这款IDE提供了丰富的功能&#xff0c;旨在帮助开发者更快速、更高效地编写、调试和测试.NET应用程序。 Rider 2023 软件获取 Rider 2023在保持了其一贯的智能代码补全…

RK3568驱动指南|驱动基础进阶篇-进阶4 内核是如何运行ko文件的_insmod

瑞芯微RK3568芯片是一款定位中高端的通用型SOC&#xff0c;采用22nm制程工艺&#xff0c;搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码&#xff0c;支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU&#xff0c;可用于轻量级人工…

Kotlin:组合挂起函数

点击查看&#xff1a;组合挂起函数 中文官网 点击查看&#xff1a;组合挂起函数 英文文档 默认顺序调用 假设我们在不同的地方定义了两个进行某种调用远程服务或者进行计算的挂起函数。我们只假设它们都是有用的&#xff0c;但是实际上它们在这个示例中只是为了该目的而延迟了…

PDF文件转换为图片

现在确实有很多线上的工具可以把pdf文件转为图片&#xff0c;比如smallpdf等等&#xff0c;都很好用。但我们有时会碰到一些敏感数据&#xff0c;或者要批量去转&#xff0c;那么需要自己写脚本来实现&#xff0c;以下脚本可以提供这个功能~ def pdf2img(pdf_dir, result_path…

IDEA环境下项目的模块右下角蓝色小方块缺失的解决方法

一、问题描述 该问题的具体表现就如上图一样&#xff0c;模块——”spring-ioc-xml-01“的应该有一个蓝色的方块。现在蓝色方块缺失了之后&#xff0c;我们需要让maven工程重新识别出这个模块。 二、问题分析 出现这种问题的原因&#xff1a;是当前的maven工程没有能够成功的识…

phtread_cancel函数用于取消线程,但不是实时的

如上图所示&#xff0c;线程函数中没有取消点&#xff08;一般是一些系统调用----man 7 pthreads查看&#xff0c;自定义函数是无效的&#xff09;&#xff0c;则使用pthread_cancle函数不生效。 解决方法&#xff1a;可以添加pthread_testcancle(); 通过pthread_join回收的…

为什么要学习PMP知识,PMP培训哪家好?

IT行业项目管理一枚&#xff0c;曾在做技术的时候对自己的职业发展越来越迷茫&#xff0c;不想干到35岁就参与到失业潮中&#xff0c;一直在想着办法提升自己的能力和竞争力&#xff0c;直到在领导嘴里了解到了PMP认证。也就是它对我的职业发展带来了不少的影响&#xff0c;这其…

Python采集二手车数据信息实现数据可视化展示

嗨喽~大家好呀&#xff0c;这里是魔王呐 ❤ ~! python更多源码/资料/解答/教程等 点击此处跳转文末名片免费获取 环境使用: Python 3.10 Pycharm 模块使用: requests >>> pip install requests csv 数据可视化: pandas >>> pip install pandas pyech…

自学Python第十五天-常用的HTML解析工具:bs4、xpath、re

自学Python第十五天-常用的HTML解析工具&#xff1a;bs4、xpath、re BS4安装和引入开始使用find_all() 方法获取标签find() 方法获取标签select() 方法获取标签&#xff0c;css 选择器从标签中获取数据 XPathxpath 基础xpath 语法规则lxml 模块xpath() 方法 REmatch() 方法sear…