Web服务器之Tomcat

文章目录

    • 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.rhkb.cn/news/251454.html

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

相关文章

hbuilderx uniapp运行到真机控制台显示手机端调试基座版本号1.0.0,调用uni.share提示打包时未添加share模块

记录一个困扰了几天的一个蠢问题&#xff0c;发现真相的我又气又笑。 由于刚开始接触uniapp 移动端开发&#xff0c;有个需求需要使用uni.share API&#xff0c;但是我运行项目老提示打包时没配置share模块 我确实没在manifest内配置。网上搜了一些资料&#xff0c;但是我看官…

Allegro中设置让Route Keepout(禁止布线区)允许布线或打过孔的方法

Allegro中设置让Route Keepout&#xff08;禁止布线区&#xff09;允许布线或打过孔的方法 Chapter1 Allegro中设置让Route Keepout&#xff08;禁止布线区&#xff09;允许布线或打过孔的方法一、前言二、设置方法 Chapter2 Cadence Allegro PCB设计88问解析(二十三) 之 Alleg…

Ai知识图谱

总结&#xff1a;从AI技术栈全貌来看&#xff0c;基础模型、基础算法&#xff0c;个人及小公司是玩不起的&#xff0c;大公司才有对应人力、财力、算力 去做&#xff0c;个人更多的是要在应用场景上创新&#xff0c;几个关键的技术必须会&#xff1a;编码语言&#xff08;Pytho…

聊聊ClickHouse MergeTree引擎的固定/自适应索引粒度

前言 我们在刚开始学习ClickHouse的MergeTree引擎时&#xff0c;就会发现建表语句的末尾总会有SETTINGS index_granularity 8192这句话&#xff08;其实不写也可以&#xff09;&#xff0c;表示索引粒度为8192。在每个data part中&#xff0c;索引粒度参数的含义有二&#xf…

Qt多语言翻译

Qt多语言翻译概述 Qt提供了非常简单易用的多语言翻译机制&#xff0c;其核心类为QTranslator.概括来说就是利用Qt的lupdate工具将项目中所有tr函数包裹的字符串提取到.ts文件中&#xff0c;然后使用Qt Linguist由专门的翻译人员对提取的.ts文件进行逐个单词短语的翻译工作. 翻译…

Node.js Express 框架 2024版 笔记

1.0 操作命令 Node.js express 框架 https://www.expressjs.com.cn/ npm install -g express-generator expressexpress --pug --git // --pug 添加对 pug 模板引擎的支持 // --git 添加 .gitignore 代码仓库排除 //无法直接安装新版pug模板 npm i npm …

CentOS7中安装ElasticSearch

文章目录 检测是否安装了Elasticsearch安装JDK下载java配置 下载Elasticsearch解压安装Elasticsearch修改配置文件启动Elasticsearch常见问题 ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎&#xff0c;基于RESTful web接口。Elasti…

C++ Qt开发:SqlTableModel映射组件应用

Qt 是一个跨平台C图形界面开发库&#xff0c;利用Qt可以快速开发跨平台窗体应用程序&#xff0c;在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置&#xff0c;实现图形化开发极大的方便了开发效率&#xff0c;本章将重点介绍SqlTableModule组件的常用方法及灵活运用。 …

Java 数据结构 二叉树(一)二叉查询树

目录 树的种类 二叉树 二叉查找树 满二叉树 ​编辑 完全二叉树 二叉树的数据存储 链式存储 数组存储 寻址方式&#xff1a; 二叉树的遍历&#xff08;了解即可&#xff09; ​编辑 二叉查询树缺点 前言-与正文无关 生活远不止眼前的苦劳与奔波&#xff0c;它还充满…

如何在Windows系统使用Plex部署影音服务与公网访问本地资源【内网穿透】

文章目录 1.前言2. Plex网站搭建2.1 Plex下载和安装2.2 Plex网页测试2.3 cpolar的安装和注册 3. 本地网页发布3.1 Cpolar云端设置3.2 Cpolar本地设置 4. 公网访问测试5. 结语 正文开始前给大家推荐个网站&#xff0c;前些天发现了一个巨牛的 人工智能学习网站&#xff0c; 通…

java设计模式:观察者模式

在平常的开发工作中&#xff0c;经常会使用到设计模式。合理的使用设计模式&#xff0c;可以提高开发效率、提高代码质量、提高代码的可拓展性和维护性。今天来聊聊观察者模式。 观察者模式是一种行为型设计模式&#xff0c;用于对象之间一对多的依赖关系&#xff0c;当被观察对…

【SAR成像】基于RD、CS和ωk算法的合成孔径雷达成像算法原理与实现

基于RD、CS和ωk算法的合成孔径雷达成像算法实现 前言SAR基本概念雷达获取数据的几何关系低斜视角下的回波信号模型 RADARSAT-1主要参数数据预处理数据读取与再封装数据补零 成像算法坐标轴的产生RD算法距离压缩距离徙动矫正方位压缩 CS算法第一次相位相乘 变标后的信号第二次相…

命令注入漏洞原理以及修复方法

漏洞名称 &#xff1a;命令注入 漏洞描述&#xff1a;Command Injection&#xff0c;即命令注入攻击&#xff0c;是指由于Web应用程序对用户提交的数据过滤 不严格&#xff0c;导致黑客可以通过构造特殊命令字符串的方式&#xff0c;将数据提交至Web应用程序中&#xff0c;并利…

Windows错误“ 0xc0000005”解决与分析全流程

Windows错误“ 0xc0000005”解决与分析全流程 问题的描述 Windows错误“ 0xc0000005”原因分析内存条的选择实操流程展示 问题的描述 Windows错误“ 0xc0000005” 问题发生的最开始是&#xff0c;电脑的系统一直运行的时候一直蓝屏报错&#xff0c;越来越频繁&#xff08;在电…

【C/Python】Gtk部件ListStore的使用

一、C语言 在GTK中&#xff0c;Gtk.ListStore是一个实现了Gtk.TreeModel接口的存储模型&#xff0c;用于在如Gtk.TreeView这样的控件中存储数据。以下是一个简单的使用Gtk.ListStore的C语言示例&#xff0c;该示例创建了一个列表&#xff0c;并在图形界面中显示&#xff1a; …

基于Springboot的校园失物招领网站(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的校园失物招领网站&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构…

优秀学习网站推荐-第一辑

原文地址&#xff1a;https://jaune162.blog/2024/02/15/study-website-recommend Developer Roadmaps&#xff08;开发者路线图&#xff09; 官网地址&#xff1a;https://roadmap.sh/ 该网站包含了各个方向、各个语言的开发人员从零开始学习的路线图。 下图为Java方向的学…

elk之基本crud

写在前面 本文看下工作中用的最多的CRUD。让我们一起来做一个帅帅的CRUD BOY吧&#xff01;&#xff01;&#xff01; 1&#xff1a;基本操作 Create 格式1(指定ID)&#xff1a;PUT 索引名称/_create/文档ID {文档json} 格式2&#xff08;不指定ID&#xff09;:POST 索引名称…

18.通过telepresence调试部署在Kubernetes上的微服务

Telepresence简介 在微服务架构中,本地开发和调试往往是一项具有挑战性的任务。Telepresence 是一种强大的工具,使得开发者本地机器上开发微服务时能够与运行在 Kubernetes 集群中的其他服务无缝交互。本文将深入探讨 Telepresence 的架构、运行原理,并通过实际的案例演示其…

导出pdf 加密、加水印、加页脚

1.依赖 <dependency> <groupId>com.itextpdf</groupId> <artifactId>itextpdf</artifactId> <version>5.5.10</version> </dependency> <dependency> …