Web服务器之Tomcat

news2024/9/23 13:21:38

文章目录

    • Web 服务器软件
      • 简介
      • 资源分类
      • 访问流程
      • 常见的Web服务器软件
    • Tomcat
      • 简介
      • 使用步骤
      • 使用Tomcat注意事项
      • 部署项目的方式
        • 方式一
        • 方式二
        • 方式三
      • 问题
        • 中文乱码
        • 黑窗口一闪而过
        • 启动报错

Web 服务器软件

简介

  • 服务器:安装了服务器软件的计算机
  • 服务器软件:接收用户的请求,处理请求,做出响应
  • web服务器软件:接收用户的请求,处理请求,做出响应。
    • 在web 服务器软件中,可以部署web 项目,让用户通过浏览器来访问这些项目
    • web 容器(动态资源依赖与此容器才能运行)

资源分类

资源类型那些是怎么判断
静态资源html、CSS、javaScript所有用户访问后,得到的结果都是一样的,称为静态资源,静态资源可以直接被浏览器解析
动态资源servlet、jsp、php、asp每个用户访问相同资源后,得到的结果不一致,称为动态资源。动态资源访问后,需要转换为静态资源,在返回给浏览器

访问流程

常见的Web服务器软件

名称介绍
webLogicoracle公司,大型的JavaEE服务器,支持所有的JavaEE规范,收费的。
webSphereIBM公司,大型的JavaEE服务器,支持所有的JavaEE规范,收费的。
JBOSSJBOSS公司的,大型的JavaEE服务器,支持所有的JavaEE规范,收费的。
TomcatApache基金组织,中小型的JavaEE服 务器,仅仅支持少量的JavaEE规范servlet/jsp。 开源的,免费的。

Tomcat

简介

  • 概述:Tomcat是一个开源的Java Servlet容器,是Apache软件基金会的一个项目,用于实现Java Servlet和JavaServer Pages(JSP)技术。Tomcat是一个轻量级的应用服务器,适合用于开发和部署Java Web应用程序

使用步骤

  1. 下载Tomcat:从Tomcat官方网站上下载最新的Tomcat版本,解压缩文件到本地目录。注意:安装目录不要有中文和空格

    Tomcat下载

  2. 解压缩后,我们来看下tomcat 的目录结构

  3. 配置Tomcat:在Tomcat的conf目录下,可以对server.xml进行配置,设置端口号、连接器等参数(不用动)。

  4. 启动Tomcat:

    • 方式一:在命令行中进入Tomcat的bin目录,执行startup.bat(Windows)或startup.sh(Linux)来启动Tomcat。
    • 方式二:找到tomcat的 bin 目录下的 stratup.bat 文件,双击即可(可以看到下边出现了我们看不懂的字,即是中文乱码,文章下边有解决办法)

  5. 部署应用程序:将编写好的Java Web应用程序(WAR文件)放入Tomcat的webapps目录下,Tomcat会自动解压并部署应用程序。(注意:没有编写项目,可直接进行第六步)

  6. 访问应用程序:在浏览器中输入http://localhost:8080/应用程序名称。来访问部署的应用程序。(访问Tomcat页面,可看到显示我们下载的版本)

使用Tomcat注意事项

  1. 内存和性能:Tomcat的性能和内存占用与配置有关,需要根据实际需求进行调整。
  2. 安全性:Tomcat默认配置下可能存在安全漏洞,需要进行适当的安全配置。
  3. 日志管理:Tomcat会生成大量的日志文件,需要定期清理和管理日志文件。
  4. 版本更新:定期关注Tomcat的最新版本,及时更新以获取最新的功能和修复安全漏洞。

部署项目的方式

方式一
  • 直接将项目放到 webapps 目录下
    • 简化部署:将项目打成一个 war 包,再将 war 包放置在 webapps 目录下
    • 好处:war包会自动解压缩,删除的时候,也会自动删除
方式二
  • 配置conf/server.xml文件

    • 在标签体中配置
    <Context docBase="D:\hello" path="/hehe" />
    

    docBase:项目存放的路径

    path:虚拟目录

方式三
  • 在conf\Catalina\localhost创建任意名称的xml文件。在文件中编写
<Context docBase="D:\hello" />

注意:虚拟目录:xml文件的名称

问题

中文乱码
  1. 第一步,修改 tomcat 文件夹里的 【conf\server.xml】

    URIEncoding="UTF-8"
    

  2. 第二步,修改 【conf\loggin.properties】

    java.util.logging.ConsoleHandler.encoding = UTF-8 修改成 GBK
    

  3. 第三步,修改 【bin\catalina.bat】

    set JAVA_OPTS=-Xms512m -Xmx1024m -XX:MaxPermSize=1024m -Dfile.encoding=UTF-8
    

  4. 再次运行 【startup.bat】

黑窗口一闪而过
  • 原因:没有正确配置JAVA_HOME环境变量
  • 解决方案:正确配置JAVA_HOME环境变量,可参考这篇文章
启动报错
  • 方式一:暴力解决,找到占用的端口号,并且找到对应的进程,杀死该进程

    1. 使用命令netstat -tlnp可以查看当前系统上所有的监听端口以及对应的进程号。
    2. 找到Tomcat对应的端口号,比如8080,然后找到对应的进程号。
    3. 使用命令kill -9 <进程号>来杀死该进程,其中<进程号>是上一步查到的Tomcat进程号。
  • 方式二:温柔解决,修改自身的端口号,找到端口号位置,修改 8080 为其他的,可以默认修改成 80,这样输入网址时,就不需要再输入端口号。

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

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

相关文章

ssm跨域方案?

1、过滤器 2、xml配置 <mvc:cors><mvc:mapping path"/**" /> </mvc:cors>3、注解 CrossOrigin(origins “*”) 说明&#xff1a;三种方案&#xff0c;本质都是一样的、只是方式不一样罢了。

实现SERVLET生命周期事件

实现SERVLET生命周期事件 问题陈述 David Wong是Smart Software Developers的管理员,他希望创建一个应用程序在日志中记录请求和上下文对象初始化及向上下文对象添加属性的时间。同时,该应用程序应该还能在日志中记录删除上下文对象的属性及销毁请求和上下文时的时间。 解决方…

二进制部署promethues

1、定义&#xff1a;promethues是一个开源的系统监控以及报警系统&#xff0c;整合zabbix的功能&#xff08;监控系统、网络、设备&#xff09;&#xff0c;promethues可以兼容网络、设备、容器监控、告警系统。因为其与k8s是一个项目基金开发出来的产品&#xff0c;天生匹配k8…

设计模式第2篇|策略模式

&#x1f680; 作者简介&#xff1a;程序员小豪&#xff0c;全栈工程师&#xff0c;热爱编程&#xff0c;曾就职于蔚来、腾讯&#xff0c;现就职于某互联网大厂&#xff0c;技术栈&#xff1a;Vue、React、Python、Java &#x1f388; 本文收录于小豪的前端系列专栏&#xff0c…

Web3技术革新:重新定义在线体验

互联网的不断演进塑造了我们的数字生活&#xff0c;而Web3技术的涌现正带来一场前所未有的变革。本文将深入探讨Web3技术的创新&#xff0c;以及它如何重新定义和提升我们的在线体验。 Web3技术的基本概念 Web3是互联网的第三个时代&#xff0c;它将去中心化、区块链、智能合约…

Mac苹果电脑玩幻兽帕鲁 Crossover玩Windows游戏

​​ 《幻兽帕鲁》&#xff08;英文&#xff1a;Palworld&#xff09;是一款近期在 Steam 爆红的动作冒险生存游戏&#xff0c;游戏设置在一个居住着「帕鲁」的开放世界中&#xff0c;玩家可以战斗并捕捉帕鲁&#xff0c;也能用它们来建造基地、骑乘和战斗。 不过目前《幻兽帕…

MATLAB绘制电磁场

MATLAB绘制电磁场举例: clc;close all;clear all;warning off;%清除变量 rand(seed, 100); randn(seed, 100); format long g; m12 for k1:m for j1:m if k1 V(j,k)1; elseif((j1)|(jm)|(km)) V(j,k)0; else …

强敌环伺:金融业信息安全威胁分析——整体态势

从早期的Zeus和其他以银行为目标的特洛伊木马程序&#xff0c;到现在的大规模分布式拒绝服务&#xff08;DDoS&#xff09;攻击&#xff0c;再到新颖的钓鱼攻击和勒索软件&#xff0c;金融服务业已成为遭遇网络犯罪威胁最严重的行业之一。金融服务业的重要性不言而喻&#xff0…

暴雨受邀出席太原市人工智能行业协会年度大会

2024年1月26日&#xff0c;太原市人工智能行业协会第二届二次会员大会暨2024年年会成功召开。太原市委、市工商联、市大数据应用中心、市政协经济委员会以及太原市科技局的专家领导&#xff0c;与三百多名来自各行业的人工智能企业家和协会会员一同参加了本次盛会&#xff0c;共…

ARCGIS PRO SDK 数据库属性域设置与获取

一、数据库创建属性域。 sdk3.1 以下的开发版本不支持&#xff0c;不能使用 Pro SDK 向域添加新的编码值&#xff0c;可以使用地理处理工具&#xff1a; 创建属性域 Dim va As IReadOnlyList(Of String) Dim gpResult As ArcGIS.Desktop.Core.Geoprocessing.IGPResult Dim env…

gitee建库并git

箴言&#xff1a;书山有路勤为径 文章目录 前言一、gitee导入ssh二、gitee建库三、克隆到本地四、关联本地工程到远程仓库五、push流程总结 前言 nodejs每天的学习都有代码产出&#xff0c;转念一想不如在码云上面搞个仓库&#xff0c;也经历了些许波折&#xff0c;往常也建了…

论文阅读-MapReduce

论文名称&#xff1a;MapReduce: Simplified Data Processing on Large Clusters 翻译的效果不是很好&#xff0c;有空再看一遍&#xff0c;参照一下别人翻译的。 MapReduce:Simplified Data Processing on Large Clusters 中文翻译版(转) - 阿洒 - 博客园 (cnblogs.com) 概…

Powershell Install telegraf 实现Grafana Windows 图形展示

influxd2前言 influxd2 是 InfluxDB 2.x 版本的后台进程,是一个开源的时序数据库平台,用于存储、查询和可视化时间序列数据。它提供了一个强大的查询语言和 API,可以快速而轻松地处理大量的高性能时序数据。 telegraf 是一个开源的代理程序,它可以收集、处理和传输各种不…

Dragons

题目链接&#xff1a; Problem - 230A - Codeforces 解题思路&#xff1a; 用结构体排序就好&#xff0c;从最小的开始比较&#xff0c;大于就加上奖励&#xff0c;小于输出NO 下面是c代码&#xff1a; #include<iostream> #include<algorithm> using namespac…

React16源码: React中LegacyContext的源码实现

LegacyContext 老的 contextAPI 也就是我们使用 childContextTypes 这种声明方式来从父节点为它的子树提供 context 内容的这么一种方式遗留的contextAPI 在 react 17 被彻底移除了&#xff0c;就无法使用了那么为什么要彻底移除这个contextAPI的使用方式呢&#xff1f;因为它…

什么是Vue Vue入门案例

一、什么是Vue 概念&#xff1a;Vue (读音 /vjuː/&#xff0c;类似于 view) 是一套 构建用户界面 的 渐进式 框架 Vue2官网&#xff1a;Vue.js 1.什么是构建用户界面 基于数据渲染出用户可以看到的界面 2.什么是渐进式 所谓渐进式就是循序渐进&#xff0c;不一定非得把V…

leetcode hot100分发饼干

在本题中&#xff0c;我们需要采用贪心算法。考虑局部最优解&#xff0c;然后再考虑全局最优解。 比如&#xff0c;在本题中&#xff0c;我们先把胃口和饼干排序&#xff0c;排序之后我们可以采用用大饼干来喂大胃口的孩子&#xff0c;如果此时能满足&#xff0c;那么计数加一…

Linux实验记录:使用LVM(逻辑卷管理器)

前言&#xff1a; 本文是一篇关于Linux系统初学者的实验记录。 参考书籍&#xff1a;《Linux就该这么学》 实验环境&#xff1a; VmwareWorkStation 17——虚拟机软件 RedHatEnterpriseLinux[RHEL]8——红帽操作系统 备注&#xff1a; 硬盘分好区或者部署为RAID磁盘阵列…

[嵌入式软件][入门篇][仿真平台] STM32CubeMX的搭建

文章目录 一、简介二、STM32CubeMX的使用(1) 新建文件&#xff0c;芯片选型(2) sys设置和RCC设置(3) 配置时钟(4) 生成代码 三、仿真平台的使用 一、简介 STM32CubeMX是一种图形工具&#xff0c;通过分步过程可以非常轻松地配置STM32微控制器和微处理器&#xff0c;生成相应的初…

13.前端--CSS-盒子模型

1.盒子模型的组成 CSS 盒子模型本质上是一个盒子&#xff0c;封装周围的 HTML 元素&#xff0c;它包括&#xff1a;边框、外边距、内边距、和 实际内容 2.边框&#xff08;border&#xff09; 2.1 边框的使用 1、border设置元素的边框。边框有三部分组成:边框宽度(粗细) 边框…