当前位置: 首页 > news >正文

大数据------JavaWeb------Tomcat(完整知识点汇总)

Web服务器——Tomcat

  • Web服务器定义
    • 它是一个应用程序(软件),对HTTP协议的操作进行封装,使得程序员不必直接对协议进行操作,让Web开发更便捷
  • Web服务器主要功能
    • 封装HTTP协议操作,简化开发
    • 将Web项目部署到服务器中,提供网上信息浏览服务
  • Tomcat
    • 是一个开源免费的轻量级Web服务器,支持Servlet/JSP少量JavaEE规范
    • 它也被称为Web容器、Servlet容器(Servlet需要依赖于Tomcat才可运行)
  • JavaEE(Java Enterprise Edition)
    • 为java企业版。指的是Java企业级开发的技术规范总和。包含13项技术规范:JDBC、JNDI、EJB、RMI、JSP、Servlet、XML、JMS、Java IDL、JTS、JTA、JavaMail、JAF

Tomcat基本使用

Tomcat安装

  • Tomcat下载(以Tomcat9.x版本为例)

    • 进入官网,查看目前Tomcat官方支持的Tomcat版本及其对应的jdk版本

      在这里插入图片描述

    • 下载Tomcat9

      在这里插入图片描述

    • 将下载后的压缩包解压到本地即可安装完成

  • Tomcat目录中各子目录的作用

    在这里插入图片描述

    在这里插入图片描述

  • Tomcat环境配置

    • 高级系统设置→环境变量→单击系统变量中的新建→变量名设置为CATALINA_HOME,变量值设置为自己的Tomcat安装目录

      在这里插入图片描述

      在这里插入图片描述

    • 找到系统变量中的Path,双击打开→单击新建→输入%CATALINA_HOME%\bin,然后一路单击确定即可

      在这里插入图片描述

      在这里插入图片描述

  • Tmcat卸载

    • 直接删除Tomcat安装的目录即可卸载

Tomcat启动及关闭

  • Tomcat启动

    • 双击bin目录下的startup.bat后会出现Tomcat控制台运行窗口

      在这里插入图片描述

    • 启动成功判断:在浏览器输入:localhost:8080,若出现Tomcat窗口则说明启动成功,如图所示

      在这里插入图片描述

  • Tomcat关闭

    • 强制关闭:直接x掉控制台运行窗口
    • 正常关闭一:单击bin目录下的shutdown.bat进行关闭
    • 正常关闭二:Ctrl+C
  • Tomcat启动时可能出现的问题

    • Tomcat控制台中文乱码 :修改conf/logging.properties中的如下代码(若UTF-8乱码则改为GBK)

      java.util.logging.ConsoleHandler.encoding = UTF-8
      

      控制台乱码如图所示

      在这里插入图片描述

      更改编码格式后,乱码问题即可解决

    • 端口号冲突(其他程序将Tomcat的端口号占用) :找到对应程序将其关掉即可

      在这里插入图片描述

    • 启动窗口一闪而过 :检查JAVA_HOME环境变量是否正确配置

Tomcat文件配置

  • Tomcat配置

    • 修改Tomcat默认启动端口号(端口号的取值范围是:0~65535 :打开conf/server.xml

      • server.xml中默认启动端口号为8080,如下所示
          <Connector port="8080" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443"maxParameterCount="1000"/>
      
      • 若将Tomcat端口号改为80,则将来访问Tomcat时就不用再输入端口号(原因:HTTP协议默认端口号为80),如下所示
          <Connector port="80" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443"maxParameterCount="1000"/>
      

      此时启动成功判断:直接在浏览器输入localhost然后回车即可,不需要再输入端口号若出现Tomcat窗口则说明启动成功,如图所示

      在这里插入图片描述

Tomcat部署项目

  • 将项目放到webapps目录下即可部署完成

    • 示例:将hello项目放到webapps下,此时部署完成。在该hello目录下有个a.html页面,此时即可打开浏览器输入:localhost:8080/hello/a.html访问该页面,若在浏览器中成功访问该页面则说明部署成功

      在这里插入图片描述

      在这里插入图片描述

      在这里插入图片描述

  • 一般JavaWeb项目会被打包成war包 (idea可以生成war包),然后将war包放到webapps目录下,Tomcat会自动将war文件解压缩到webapps目录下

    • 将压缩后的JavaWeb项目haha.war复制到webapps目录下,此时会自动将该war包解压缩

      在这里插入图片描述

    • 此时即可打开浏览器输入:localhost:8080/haha/a.html访问该页面,若在浏览器中成功访问该页面则说明部署成功

      在这里插入图片描述

IDEA创建Maven Web项目

Web项目结构

  • Web项目结构分类

    • 开发中的项目

      在这里插入图片描述

      在这里插入图片描述

    • 开发完成部署的Web项目

      在这里插入图片描述

      • 开发中的项目完成后通过执行Maven打包命令 package,可以获取到开发完成部署的Web项目的war包(注意该war包不会自动到webapps目录下,需要自己手动转移)
      • 编译后的Java字节码文件和resources的资源文件,会被放到WEB-INF下的classes目录下
      • pom.xml中依赖坐标对应的jar包,会被放入WEB-INF下的lib目录下

    在这里插入图片描述

创建Maven Web项目

使用骨架方式创建
  • 步骤

    • 选择Web项目骨架创建项目
    • 删除pom.xml多余的坐标
    • 补齐缺失的目录结构
  • 使用骨架方式创建—方式一

    • 选择Web项目骨架创建项目 :File→New→Project→Mavne Archetype,然后按图示写入信息,最后单击Create

      在这里插入图片描述

      在这里插入图片描述

    • 删除pom.xml多余的坐标 :删减为如下代码

      <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.example</groupId><artifactId>MavenWebDemo</artifactId><packaging>war</packaging><version>1.0-SNAPSHOT</version>
      </project>
      

      在这里插入图片描述

      注意:<packaging>war</packaging>代表打包方式,标签体为war时打包为Web项目;标签体为jar时打包为jar包方式

    • 补齐缺失的目录结构

      • 右键src→New→Directory→双击自己需要的目录

        在这里插入图片描述

        在这里插入图片描述

      • 右键test→New→Directory→双击自己需要的目录

        在这里插入图片描述

        在这里插入图片描述

      • 右键webapp→New→Directory→输入html回车

        在这里插入图片描述

        在这里插入图片描述

      • 同理即可将Web项目结构补充完成,最终形式如图所示

        在这里插入图片描述

  • 使用骨架方式创建—方式二

    • 选择Web项目骨架创建项目 :File(或右上角设置按钮)→Project Structure→Modules,然后按图示操作

    在这里插入图片描述

    在这里插入图片描述

    • 删除pom.xml多余的坐标 :删减为如下代码

      <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.example</groupId><artifactId>MavenWebDemo</artifactId><packaging>war</packaging><version>1.0-SNAPSHOT</version>
      </project>
      

      在这里插入图片描述

      注意:<packaging>war</packaging>代表打包方式,标签体为war时打包为Web项目;标签体为jar时打包为jar包方式

    • 补齐缺失的目录结构

      • 按照使用骨架方式创建的方式一进行目录及文件的补充,将其补充为标准的Web项目结构即可,如图所示

      在这里插入图片描述

不使用骨架方式创建
  • 步骤

    • 选择Web项目骨架创建项目
    • pom.xml中添加打包方式为war
    • 补齐缺失的目录结构
  • 具体步骤如下

    • 创建一个标准的Maven项目(创建方式详见Maven部分),然后在pom.xml文件中添加Web项目的打包方式,添加完打包方式后单击刷新, 如图所示

      在这里插入图片描述

    • 补齐缺失的目录结构

      • File(或右上角设置按钮)→Project Structure→Facets,然后按图示操作

        在这里插入图片描述

      • 创建webapp目录

        在这里插入图片描述

        在这里插入图片描述

      • 创建webapp目录下的子目录及文件

        在这里插入图片描述

        在这里插入图片描述

      • 手动右键→New→Directory补齐其他缺失文件即可

        在这里插入图片描述

IDEA中使用Tomcat

  • IDEA若不配置Tomcat的麻烦之处

    IDEA若不配置Tomcat则需要在使用Maven中的package命令手动将Web项目打包成war包,并找到该Web包的位置将其转移到Tomcat目录下的webapps目录下完成项目部署

  • IDEA配置Tomcat方式一:将本地的Tomcat集成到IDEA中,然后进行项目部署

    • 配置本地Tomcat

      在这里插入图片描述

      在这里插入图片描述

    • 部署项目

      在这里插入图片描述

      在这里插入图片描述

    • Tomcat集成到IDEA中的成功性测试

      • 创建一个a.html文件并写入简单页面代码,然后单击启动按钮

        <!DOCTYPE html>
        <html lang="en">
        <head><meta charset="UTF-8"><title>Title</title>
        </head>
        <body>
        aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
        </body>
        </html>
        

        在这里插入图片描述

      • 浏览器页面为空或者HTTP状态404(如图一、图二所示),原因是页面打开的是该项目的根目录,我们需要手动将url补充为http://localhost:8080/MavenWebDemoThree_war/html/a.html,如图三所示。

        在这里插入图片描述

        在这里插入图片描述

        在这里插入图片描述

      • 若不想手动添加url,则需要修改Tomcat的启动路径,如图所示

        在这里插入图片描述

  • IDEA配置Tomcat方式二:使用Tomcat Maven插件

    • pom.xml中添加Tomcat插件:Alt+InsertPlugin Template,然后单击刷新按钮即可添加成功

      <?xml version="1.0" encoding="UTF-8"?>
      <project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.example</groupId><artifactId>MavenWebDemoThree</artifactId><version>1.0-SNAPSHOT</version><packaging>war</packaging><properties><maven.compiler.source>21</maven.compiler.source><maven.compiler.target>21</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><build><plugins><!-- Tomcat插件 --><plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><version>2.2</version></plugin></plugins></build>
      </project>
      

      在这里插入图片描述

      在这里插入图片描述

    • 若浏览器页面为空或者HTTP状态404,则处理方式有两种

      • 手动将url补充为http://localhost:8080/MavenWebDemoThree_war/html/a.html,

      • 配置tomcat插件代码参数,如下:

        <build><plugins><!-- Tomcat插件 --><plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><version>2.2</version><configuration><port><!--设置访问端口号--></port><path><!--设置访问路径--></path></configuration></plugin></plugins></build>
        
  • IDEA中使用Tomcat的两种方式注意点

    • 设置访问路径只能设置到项目访问路径(即虚拟目录),不能设置到项目访问路径下的子目录,因为虚拟目录下的子目录属于核心目录,若没有这些目录则Web项目无法运行成功

      在这里插入图片描述

相关文章:

大数据------JavaWeb------Tomcat(完整知识点汇总)

Web服务器——Tomcat Web服务器定义 它是一个应用程序&#xff08;软件&#xff09;&#xff0c;对HTTP协议的操作进行封装&#xff0c;使得程序员不必直接对协议进行操作&#xff0c;让Web开发更便捷 Web服务器主要功能 封装HTTP协议操作&#xff0c;简化开发将Web项目部署到…...

LMDeploy笔记

随谈模型部署 模型部署包含的内容很多&#xff0c;来聊聊。 访存bottleneck 首先&#xff0c;基于transformer的计算是访存密集型任务。 so? 过去&#xff0c;我们表达模型的性能&#xff0c;通常会用ops&#xff0c;macs这些指标,也计算量来衡量模型的推理时间&#xff…...

Unity 状态机

文章目录 前言一、状态机二、应用1、场景切换2、人物行为切换3、宝箱、机关切换4、AI 三、人物行为总结 前言 提到Unity状态机&#xff0c;接触不久的开发者会想到Unity的动画状态机&#xff0c;而对于老油条来说&#xff0c;可能会回忆起自己实现的动画状态机。当然&#xff…...

一毛钱不到的FH8208C单节锂离子和锂聚合物电池一体保护芯片

前言 目前市场上电池保护板&#xff0c;多为分体方案&#xff0c;多数场合使用没有问题&#xff0c;部分场合对空间有进一步要求&#xff0c;或者你不想用那么多器件&#xff0c;想精简一些&#xff0c;那么这个芯片就很合适&#xff0c;对于充电电池来说&#xff0c;应在使用…...

python数据可视化:显示两个变量间的关系散点图scatterplot()

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 python数据可视化&#xff1a; 显示两个变量间的关系 散点图 scatterplot() [太阳]选择题 请问关于以下代码表述错误的选项是&#xff1f; import seaborn as sns import matplotlib.pyplot …...

【QT教程】QT6硬件高级编程入门 QT硬件高级编程

QT6硬件高级编程入门 使用AI技术辅助生成 QT界面美化视频课程 QT性能优化视频课程 QT原理与源码分析视频课程 QT QML C扩展开发视频课程 免费QT视频课程 您可以看免费1000个QT技术视频 免费QT视频课程 QT统计图和QT数据可视化视频免费看 免费QT视频课程 QT性能优化视频免费看…...

Android 蓝牙实战——蓝牙电话通话状态同步(二十四)

前面分析了蓝牙电话通话状态的广播,我们可以在蓝牙电话中实时监听蓝牙电话的状态,但如果是其他音乐类 APP 呢,在播放的时候也需要知道当前是否有通话正在进行,但是有完全没必要实时监听电话的状态,这就需要一个获取通话状态的方法。 一、通话状态处理 1、CallsManager …...

docker 指定根目录 迁移根目录

docker 指定根目录 迁移根目录 1、问题描述2、问题分析3、解决方法3.1、启动docker程序前就手动指定docker根目录为一个大的分区(支持动态扩容)&#xff0c;事前就根本上解决根目录空间不够问题3.1.0、方法思路3.1.1、docker官网安装文档3.1.2、下载docker安装包3.1.3、安装doc…...

React 项目报错解决办法收录

React 使用 引入文件报错 (react 别名配置craco) react &#xff0c;vue 初始项目都是不支持 别名引入文件的。 vue 一般项目初始化的时候会 在 vue.config.js 文件中配置好&#xff0c;所以不需要我们自己配置react 初始化的时候是没有配置的&#xff0c; 需要我们自己配置 …...

Linux专题-Makefile(1)

1.Makefile中的注释使用 # 2. Makefile中的静默执行。 makefile中&#xff0c;默认情况下执行一行命令前会先把这一行命令打印出来&#xff0c;然后再执行这条命令。如果不想看到打印的命令&#xff0c;则可以使用静默执 行的功能&#xff0c;即仅打印出命令执行的结果。使用方…...

机器学习算法应用——CART决策树

CART决策树&#xff08;4-2&#xff09; CART&#xff08;Classification and Regression Trees&#xff09;决策树是一种常用的机器学习算法&#xff0c;它既可以用于分类问题&#xff0c;也可以用于回归问题。CART决策树的主要原理是通过递归地将数据集划分为两个子集来构建决…...

Sqli-labs第五,六关

目录 首先找到他们的闭合方式 操作 总结&#xff1a; 第五关根据页面结果得知是字符型但是和前面四关还是不一样是因为页面虽然有东西。但是只有对于请求对错出现不一样页面其余的就没有了。这个时候我们用联合注入就没有用&#xff0c;因为联合注入是需要页面有回显位。如果…...

上海AI Lab开源首个可替代GPT-4V的多模态大模型

与开源和闭源模型相比&#xff0c;InternVL 1.5 在 OCR、多模态、数学和多轮对话等 18 个基准测试中的 8 个中取得了最先进的结果。 上海AI Lab 推出的 InternVL 1.5 是一款开源的多模态大语言模型 (MLLM)&#xff0c;旨在弥合开源模型和专有商业模型在多模态理解方面的能力差距…...

Python教程:一文了解PageObject模式

PageObject 模式是一种用于测试自动化的设计模式&#xff0c;它将页面的功能和页面的实现分开&#xff0c;提高了代码的可维护性和可重用性。本文将从基础概念开始&#xff0c;逐步介绍 Python 中的 PageObject 模式&#xff0c;并提供详细的代码示例。 1. 什么是 PageObject 模…...

SpringBoot 启动时查询数据库数据,并赋值给全局变量

创建一个组件 AreaData import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.CommandLineRunner; import org.springframework.stereotype.Component;import java.u…...

【Python】selenium爬虫常见用法和配置,以及常见错误和解决方法

欢迎来到《小5讲堂》 这是《Python》系列文章&#xff0c;每篇文章将以博主理解的角度展开讲解。 温馨提示&#xff1a;博主能力有限&#xff0c;理解水平有限&#xff0c;若有不对之处望指正&#xff01; 目录 前言无执行文件代码报错信息错误路径手动下载自动下载 选项配置Ch…...

minio上传文件失败如何解决

1. 做了什么操作 通过接口上传excel文件&#xff0c;返回响应值 2. 错误如图 2. 如何解决 根据错误描述定位到了部署minio的地方minio通过docker部署&#xff0c;找到docker - compose发现配置文件中minio有两个端口&#xff0c;一个是用于api的&#xff0c;一个是用于管理界面…...

Java自动化测试框架--TestNG详解

一. 什么是TestNG TestNG是一个开源的自动化测试框架&#xff0c;它受JUnit和NUnit启发&#xff0c;其中“NG”即表示Next Generation&#xff0c;其功能更强大使用更方便。 二. TestNG配置 2.1 POM文件配置 在maven工程的pom.xml文件中加入以下依赖&#xff1a; <depe…...

【分布式 | 第五篇】何为分布式?分布式锁?和微服务关系?

文章目录 5.何为分布式&#xff1f;分布式锁&#xff1f;和微服务关系&#xff1f;5.1何为分布式&#xff1f;5.1.1定义5.1.2例子5.1.3优缺点&#xff08;1&#xff09;优点&#xff08;2&#xff09;缺点 5.2何为分布式锁&#xff1f;5.2.1定义5.2.2必要性 5.3区分分布式和微服…...

JavaScript百炼成仙自学笔记——13

函数七重关之六&#xff08;“new”一个函数&#xff09; 看个代码&#xff1a; function hello(){console.log(this); } 1、this&#xff1a;也是JavaScript中的一个关键字&#xff0c;永远指向当前函数的调用者 解释一下,有两层意思&#xff1a; ①this要嘛不出现&#…...

从GC停顿2.3s到零暂停:Java函数GraalVM Native Image迁移全周期复盘(含12个兼容性雷区)

第一章&#xff1a;从GC停顿2.3s到零暂停&#xff1a;Java函数GraalVM Native Image迁移全周期复盘&#xff08;含12个兼容性雷区&#xff09;在高吞吐、低延迟的Serverless函数场景中&#xff0c;一个Spring Boot微服务因频繁Full GC导致单次停顿高达2.3秒&#xff0c;严重违反…...

牙齿龋齿检测数据集 YOLO模型如何训练牙齿病害数据集 权重识别龋齿

牙齿龋齿检测数据集&#xff0c;2554张&#xff0c;提供yolo和voc两种标注方式 1类&#xff0c;标注数量&#xff1a; caries: 6946 image num: 2554 &#x1f9b7; 龋齿检测数据集 (Dental Caries Detection Dataset) 属性详细描述数据集名称齿科龋齿目标检测数据集图像总数2…...

Java协议解析性能瓶颈诊断清单(附JFR火焰图+ByteBuf内存泄漏定位实录)

第一章&#xff1a;Java协议解析性能瓶颈诊断清单&#xff08;附JFR火焰图ByteBuf内存泄漏定位实录&#xff09;协议解析层是Netty等高性能网络框架的核心路径&#xff0c;其性能劣化往往表现为CPU尖刺、GC频发或连接延迟陡增。以下为一线实战验证的诊断清单&#xff0c;覆盖JF…...

深入浅出:从原理到实践,手把手教你理解并校准RV1126 ISP的黑电平(BLC)

深入浅出&#xff1a;从原理到实践&#xff0c;手把手教你理解并校准RV1126 ISP的黑电平(BLC) 在数字图像处理领域&#xff0c;黑电平校准&#xff08;Black Level Calibration, BLC&#xff09;是一个看似简单却至关重要的环节。想象一下&#xff0c;当你用专业相机拍摄星空时…...

Gemma-3 Pixel Studio参数详解:max_new_tokens与图像理解深度关系实测

Gemma-3 Pixel Studio参数详解&#xff1a;max_new_tokens与图像理解深度关系实测 1. 引言 在当今多模态AI应用领域&#xff0c;Gemma-3 Pixel Studio以其独特的视觉理解能力和流畅的对话体验脱颖而出。作为基于Google Gemma-3-12b-it模型构建的专业工具&#xff0c;它不仅继…...

从一篇TIE论文的稳定性分析入手,手把手复现Bode图判据的MATLAB实现

从TIE论文案例到MATLAB实践&#xff1a;Bode图判据的稳定性分析全解析 在电力电子系统设计中&#xff0c;LCL型并网逆变器的稳定性分析一直是工程师面临的挑战。2015年发表在IEEE Transactions on Industrial Electronics上的那篇经典论文&#xff0c;为我们提供了一个绝佳的研…...

ERNIE-4.5-0.3B-PT智能合约分析:区块链安全检测系统

ERNIE-4.5-0.3B-PT智能合约分析&#xff1a;区块链安全检测系统 1. 引言 区块链开发者们经常面临一个头疼的问题&#xff1a;智能合约部署后才发现存在安全漏洞&#xff0c;导致资产损失。传统的安全审计需要专业团队花费数天甚至数周时间&#xff0c;成本高昂且效率低下。现…...

DriverStore Explorer:突破Windows驱动管理瓶颈,释放系统空间提升80%存储效率

DriverStore Explorer&#xff1a;突破Windows驱动管理瓶颈&#xff0c;释放系统空间提升80%存储效率 【免费下载链接】DriverStoreExplorer Driver Store Explorer [RAPR] 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer 诊断存储异常&#xff1a;设…...

Java全栈工程师面试实录:从基础到实战的深度技术探讨

Java全栈工程师面试实录&#xff1a;从基础到实战的深度技术探讨 一、面试开场 面试官&#xff08;李工&#xff09;&#xff1a;你好&#xff0c;欢迎来到我们公司。我是李工&#xff0c;负责技术面试。今天我们会围绕你的技术栈进行一些深入交流。 应聘者&#xff08;张明&am…...

保姆级教程:NotaGen一键部署,小白也能生成贝多芬风格交响乐

保姆级教程&#xff1a;NotaGen一键部署&#xff0c;小白也能生成贝多芬风格交响乐 1. 引言&#xff1a;AI音乐创作新体验 你是否曾经梦想过创作一首属于自己的交响乐&#xff1f;现在&#xff0c;NotaGen让这个梦想变得触手可及。这个基于大语言模型(LLM)的音乐生成工具&…...