首页 > 编程语言 >【Java Web】Tomcat 快速入门

【Java Web】Tomcat 快速入门

时间:2024-12-08 19:29:25浏览次数:11  
标签:Web Java Tomcat 项目 应用程序 文件夹 目录

通常,为了让 Java 开发的应用程序(app)能够在服务器上正常运行,必须安装 Java 运行时环境(JRE)。JRE 主要支持 Java SE,而如果要运行 Java EE 应用,则需要更多的支持,比如依赖于服务器软件,Tomcat 就是其中一种常用的服务器。

有了 Tomcat 之后,由于它本身也是用 Java 实现的,因此同样需要 JRE 来运行。之前看 Java Web 教程,觉得有一个比喻可以帮助理解应用程序、Tomcat 以及 JRE 三者的关系:将 Java 开发的应用程序比作子弹,而 Tomcat 则是枪。子弹需要符合枪的规范,并装入枪中才能发射。然而,仅有枪并不意味着可以随时使用,还需要在靶场上才能操作,而 JRE 就可以理解为这个靶场。

Tomcat 是 Apache 软件基金会的 Jakarta 项目中的一个核心项目,由 Apache、sun 和其他一些公司及个人共同开发而成。最新的 Serviet 和 JSP 规范总是能在 Tomcat 中得到体现。Tomcat 是目前比较流行的 web 应用服务器。

Tomcat 安装

Tomcat 官网左侧 Download 模块选择对应版本的 Tomcat 进行下载。这里选择 64-bit Windows 版本的压缩包进行下载,下载完成后,选择一个合适的文件夹进行解压,即可使用:

在这里插入图片描述

需要注意的是,在 Tomcat 的 10 以及之后的版本中,由于包名由原先的 javax.* 改成 jakarta.*,因此,原先可以运行在之前版本的应用程序,需要修改包名才能运行在 10 版本以及之后的 Tomcat 上。另外,下载 Tomcat 时需要确认支持的 Java 版本:

在这里插入图片描述

Tomcat 服务启动:进入 apache-tomcat 目录下的 bin 文件夹,找到 startup 命令。如果是在 Windows 操作系统,则选择运行 startup.bat,如果是在 Linux 系统,则选择运行 startup.sh。这里以 Windows 系统为例,双击startup.bat,出现一个控制台窗口,里面打印着启动的日志,这时可以打开浏览器输入:http://localhost:8080/,当出现以下页面时,说明启动成功:

在这里插入图片描述

Tomcat 服务关闭:可以直接关闭启动时出现的控制台窗口,也可以运行 shutdown 命令,比如在 Windows 系统中,双击 bin 目录中的 shutdown.bat 即可关闭 Tomcat 服务。

解决Tomcat 打印日志中文乱码:在 conf 目录下找到 logging.properties 文件,打开后找到控制台的字符集设置,将 UTF-8 改成 GBK,之后,重新启动 Tomcat 服务即可:

java.util.logging.ConsoleHandler.level = ALL
java.util.logging.ConsoleHandler.formatter = org.apache.juli.OneLineFormatter
java.util.logging.ConsoleHandler.encoding = GBK
# java.util.logging.ConsoleHandler.encoding = UTF-8

Tomcat 常见目录

(1)bin 目录

该目录用于存放 Tomcat 相关命令,比如 startup、shutdown 等命令。

(2)conf 目录

该目录用于存放配置文件,比如:1)配置 Tomcat 服务占用的端口号,可以修改 conf 下的 server.xml 配置文件内容;2)设置 Tomcat 启动控制台字符集,防止日志乱码,可以修改 logging.properities 中控制台处的字符集设置。

(3)lib 目录

该目录用于存放 Tomcat 程序的相关 jar 包。可以将部署在 Tomcat 上项目所需的 jar 包存放在 lib 文件夹中,但不建议这样做,会污染环境。

(4)logs 目录

该目录用于存放 Tomcat 启动后记录的日志。Tomcat 使用久会产生较多日志,建议定期清理不必要的日志信息,避免堆积。

(5)temp 目录

该目录用于存放临时文件,不是很重要,无需多关注

(6)webapps 目录

该目录用于存放需要部署的项目,webapps 文件夹中本身自带了一些项目,这些项目可以删除。

(7)work 目录

该目录用于存放与 jsp 技术相关的文件。由于目前 jsp 技术过时了,因此,这个 work 目录可以不关注。

WEB 项目标准结构

在使用 Tomcat 的过程中,一个标准的可以用于发布的 WEB 项目标准结构如下:

在这里插入图片描述

  • static:非必要目录,约定俗成的名字,一般在此处放静态资源(css js img)

  • WEB-INF:必要目录,必须叫 WEB-INF,受保护的资源目录,浏览器通过 url 不可以直接访问的目,存放项目相关的重要文件:

    • classes:项目字节码根路径
    • lib:存放项目所需的第三方 jar 包
    • web.xml:当前项目的配置文件

url 的组成部分和项目中资源的对应关系如下:

在这里插入图片描述

Tomcat 部署项目

使用 Tomcat 部署项目,有三种方式:

  • 直接将编译好的项目放在 webapps 目录下

  • 将编译好的项目打成 war 包放在 webapps 目录下,Tomcat 启动后会自动解压 war 包

  • 可以将项目放在非 webapps 的其他目录下,在 Tomcat 中通过配置文件指向 app 的实际磁盘路径

对于第三种部署方式,首先在磁盘的自定义目录准备一个部署项目,这里以名称为 app 的项目为例。之后,在 Tomcat 的 conf 文件夹下创建 Catalina/localhost 目录,并在该目录下创建一个 app.xml 文件(该文件与项目名同名),文件内容为:

<!--
    path:项目的访问路径,也是项目的上下文路径,即浏览器中输入的项目名称
    docBase:项目在磁盘中的实际路径
-->

<Context path="/app" docBase="D:\webapps\app">

其中,path 参数表示是项目的访问路径,也是项目的上下文路径,即浏览器中输入的项目名称;docBase 参数表示项目在磁盘中的实际路径。注意: path 、xml 文件名称以及项目名称尽量保持一致,否则需要额外的配置。之后,即可启动 Tomcat 访问项目。

IDEA 关联 Tomcat

在部署 JavaWeb 工程时,首先需要将该工程构建成可以用于 Tomcat 服务器部署的应用程序,之后才能将这个应用程序真正部署到 Tomcat 服务器上。这个过程可以使用 IDEA 进行。

(1)建立 Tomcat 和 IDEA 关联

打开 IDEA 应用,在 Settings 中找到 Build, Execution, Deployment 模块,找到 Application Servers 选项,添加一个 Tomcat Server:

在这里插入图片描述

注意:Tomcat Home 地址选到 Tomcat bin 目录的上一层,之后点击 OK 即可。

(2)使用 IDEA 创建和开发 JavaWeb 工程

在自定义路径下创建一个项目文件夹,这里以 web-all 命名项目文件夹,并用 IDEA 打开这个空项目。在创建 JavaWeb 工程之前,首先点击导航栏处的 File 的 Project Structure 选项,设置 JDK 和Java 的版本,同时设置构建好的应用程序的输出路径:

在这里插入图片描述

注意,这里是为了便于将多个开发项目放在同一个文件夹中管理,才先创建一个 web-all 项目。所以,接着是通过new Module 创建具体需要开发的项目。右键项目,选择 new 新的 Module(这里演示的项目 Build systems 选择 IntelliJ):

在这里插入图片描述

之后需要将这个普通项目转成一个 Java Web 项目。不过,在此之前,需要为项目添加 Tomcat 运行依赖和 Web 组件。点击导航栏处的 File 的 Project Structure 选项,选择当前 Modules 的 Dependencies,添加 Tomcat 依赖。点击 + 选择 Library... 中对应版本的 Tomcat 依赖:

在这里插入图片描述

接着,添加 Web 资源组件。右键项目,选择 Add Framework Support...,勾选 Web Application,选择 5.0 版本(4.0 版本无法在 Tomcat 10 中运行):

在这里插入图片描述

此时,可以看到项目目录下多了一个 web 文件夹,说明目前这个项目已经不再是普通项目,而是一个 Java Web 项目。根据常见的开发项目目录结构,为这个项目创建一些测试代码:

在这里插入图片描述

(3)将工程构建成可部署的应用程序

在开发好当前工程后,需要将当前工程转成一个应用程序。点击 IDEA 导航栏中的 Build 下面的 Build Artifacts,选择当前工程点击 Build。完成后会生成一个 out 文件夹,该文件夹的 artifacts 中有一个 工程名称_war_exploded 的应用程序,这个应用程序即为转化后的输出。当然这一步其实可以省略,直接进行下面的 Tomcat 配置,最终在运行项目时,会自动转换和生成。接着进行 Tomcat 项目部署配置。点击编辑 Run/Debug Configurations:

在这里插入图片描述

添加一个 Tomcat Server Local:

在这里插入图片描述

选择当前版本的 Tomcat 作为 Application Server,点击 Deployment,将当前转换好的应用程序添加进去,这里可以将 Application context 设置成一个较短的名称,这样使用浏览器访问项目的路径会简洁一些:

在这里插入图片描述

(4)将应用程序部署到 Tomcat 并启动运行

配置完成后,点击 IDEA 中的运行项目按钮即可启动 Tomcat 并在 Tomcat 上运行项目。

标签:Web,Java,Tomcat,项目,应用程序,文件夹,目录
From: https://blog.csdn.net/zzy_NIC/article/details/144311297

相关文章

  • 【老白学 Java】对象的前世今生(二)
    对象的前世今生(二)文章来源:《HeadFirstJava》修炼感悟。还记得「对象的起源」一文中关于Object的描述吗?每个类都间接继承自原始对象Object,所以创建对象时会包含自己的和所有继承的元素,需要为它们提供额外的存储空间。这个过程并不是风平浪静的,其中构造器发生了一些......
  • 前端JavaScript(三)---JS中数组的使用
    1、JS数组创建的四种语法<!DOCTYPEhtml><html><head><metacharset="UTF-8"><title></title><script>/*第一种......
  • 渗透测试---burpsuite(5)web网页端抓包与APP渗透测试
    声明:学习素材来自b站up【泷羽Sec】,侵删,若阅读过程中有相关方面的不足,还请指正,本文只做相关技术分享,切莫从事违法等相关行为,本人与泷羽sec团队一律不承担一切后果视频地址:泷羽---bp(5)目录一、web网页端抓包 1.使用burpsuite内置浏览器进行抓包2.使用第三方浏览器进行抓......
  • Java 与 XML:基础入门全解析
    在Java编程的世界里,XML(可扩展标记语言)扮演着极为重要的角色。它广泛应用于数据存储、配置文件管理、数据交换等诸多方面。今天,就让我们一起深入探究Java基础XML的奥秘。一、XML是什么?XML是一种标记语言,类似于HTML,但它更加灵活和可扩展。XML的主要目的是存储和传输......
  • Advent of Code 2022 solution [Mathematica/Scala/MATLAB/Julia/JavaScript]
    目录简介试题地址Day1Part1andPart2Day2Part1andPart2Day3Part1andPart2Day4Part1andPart2Day5Part1andPart2Day6Part1andPart2Day7Part1andPart2Day8Part1andPart2Day9Part1andPart2Day10Part1andPart2Day11Part1andPart......
  • JAVA基本语法(二)
    教程目录JAVA基础教程JAVA基本语法一、了解ASCII码二、了解Unicode编码三、了解UTC-8四、布尔类型Boolean五、字符串类型String六、基本数据类型转换七、强制类型转换八、关于进制九、运算符9.1、算数运算符注意的问题9.2、赋值运算符9.3、比较运算符9.4、逻辑运算符9.5......
  • JAVA基本语法(一)
    教程目录JAVA基础教程JAVA基本语法一、关键字与保留字二、标识符:三、变量四、变量的分类五、整数类型:byte、short、int、long六、浮点类型:float、double七、字符类型:charJAVA基础教程JAVA基本语法一、关键字与保留字关键字(keyword)的定义和特点:定义:被Jav......
  • BurpSuite工具-浏览器web页面的抓包
    一、证书的安装1.获取证书1.1.在Options功能导出证书1.2.浏览器下载证书2.将证书导入浏览器三、设置浏览器代理四、抓包成功结语burpsuite(5)web网页端抓包与app渗透测试_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1DTzSYfEeF?spm_id_from=333.788.videop......
  • Java基础之GUI:探索图形化界面编程的魅力
    一、引言Java的图形用户界面(GUI)编程为开发者提供了丰富的工具和组件,使得创建直观、交互性强的应用程序变得更加容易。本文将深入介绍Java基础中的GUI,包括其概念、组件、布局管理器以及事件处理等方面的知识。Java的图形用户界面(GUI)是一种通过图形化的方式与用户进行交......
  • 基于java的SpringBoot/SSM+Vue+uniapp的宠物管理系统的详细设计和实现(源码+lw+部署文
    文章目录前言详细视频演示具体实现截图技术栈后端框架SpringBoot前端框架Vue持久层框架MyBaitsPlus系统测试系统测试目的系统功能测试系统测试结论为什么选择我代码参考数据库参考源码获取前言......