【JavaWeb】Tomacat部署Web项目

简介: 【JavaWeb】Tomacat部署Web项目

👉引言💎


学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。 热爱写作,愿意让自己成为更好的人............

铭记于心
🎉✨🎉我唯一知道的,便是我一无所知🎉✨🎉


Tomcat


0a2653c851af460fa595bd959398a8f1.png


Tomcat的介绍


Tomcat的简介


Tomcat 服务器是一个开源的轻量级Web应用服务器,在中小型系统和并发量小的场合下被普遍使用,是开发和调试Servlet、JSP 程序的首选。也是绝大多数JavaEE开发工程师所必用的


Tomcat的作用


Tomcat的作用是作为Web服务器部署Web项目,从而让客户端能够访问,在这个过程中它扮演者两个角色: Web服务器和Servlet容器

Web服务器0a2653c851af460fa595bd959398a8f1.png
Servlet容器

0eacb84100b54626af849e6b562bf92a.png


一.Tomcat的安装和启动


  1. 配置JAVA_HOME和java环境变量: 因为Tomcat是Java代码编写的,所以必须要配置JAVA_HOME和java环境变量之后才能运行,我们可以通过下面的命令检测:

C:\Users\Administrator>java -version

java version “1.8.0_141”

Java™ SE Runtime Environment (build 1.8.0_141-b15)

Java HotSpot™ 64-Bit Server VM (build 25.141-b15, mixed mode)

C:\Users\Administrator>echo %JAVA_HOME%

D:\software\Java

C:\Users\Administrator>echo %PATH%

D:\software\xftp;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0;D:\software\Java\bin;D:\software\apache-maven-3.5.4\bin;C:\Users\Administrator\AppData\Local\Microsoft\WindowsApps;

  1. 将Tomcat压缩包解压到一个非中文无空格的目录下2d65d23f6d4748949b924e4057485923.png
  2. 启动Tomcat并访问首页
    运行Tomcat解压后根目录下\bin\startup.bat即可启动Tomcat服务器,然后打开谷歌浏览器,在地址栏输入“http://localhost:8080”就可以访问Tomcat了

image.png


Tomcat的目录结构


0a2653c851af460fa595bd959398a8f1.png


二.Tomcat部署Web项目


我们编写完Web项目之后,通常是将Web项目打包成war包,然后将war包放入Tomcat的webapps目录中即可。

在Tomcat启动过程中,会将war包进行解压,然后运行解压后的项目

在浏览器访问我们刚刚部署的项目"http://localhost:8080/项目文件夹名/要访问的文件名"

Tomcat的端口

在Tomcat安装目录下的conf目录中,可以看到一个server.xml文件,这个xml文件中就配置了Tomcat的端口号

……
<!-- 第22行 -->
<Server port="8005" shutdown="SHUTDOWN">
……
<Connector port="8080" protocol="HTTP/1.1"
       connectionTimeout="20000"
       redirectPort="8443" />
……
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
复制代码

三个位置共定义了3个端口号,Tomcat启动后,这个三个端口号都会被占用。


在Idea中集成Tomcat


0eacb84100b54626af849e6b562bf92a.png2d65d23f6d4748949b924e4057485923.png


三.创建动态Web工程


1. 第一步: 创建Empty Project

2. 第二步: 创建动态Web的Module

0a2653c851af460fa595bd959398a8f1.pngimage.png


创建好的工程目录结构:

0a2653c851af460fa595bd959398a8f1.png


2021版本的idea与上面有所不同


我是这样操作的


0eacb84100b54626af849e6b562bf92a.png

2d65d23f6d4748949b924e4057485923.png2e9b90b2ca334476abebe75bafe6eeaa.png


动态工程目录结构


目录或文件名 功能
src目录 存放Java源文件
web目录 存放Web开发相关资源
web/WEB-INF目录 存放web.xml文件、classes目录、lib目录
web/WEB-INF/web.xml文件 别名:部署描述符deployment descriptor 作用:Web工程的核心配置文件
web/WEB-INF/classes目录 存放编译得到的*.class字节码文件
web/WEB-INF/lib目录 存放第三方jar包


创建用来部署Web工程的Tomcat实例


编辑Tomcat实例


配置Tomcat实例


0a2653c851af460fa595bd959398a8f1.png0eacb84100b54626af849e6b562bf92a.png


启动服务器


2d65d23f6d4748949b924e4057485923.png2e9b90b2ca334476abebe75bafe6eeaa.png

注意此时若是报错:端口被占用
则只需将已经开启的startup.bat的cmd窗口关闭即可

另外需要注意的还有 欢迎文件列表


也就是为什么 url路径中没有html文件却也能打开


0a2653c851af460fa595bd959398a8f1.png0eacb84100b54626af849e6b562bf92a.png2d65d23f6d4748949b924e4057485923.png2e9b90b2ca334476abebe75bafe6eeaa.png4cebaac233b3433da32a72337a77fc60.png


四.在IDEA中重新构建


1.重启tomcat服务:只会重新编译java目录下的文件(相当于更新.classes文件)

2.重新部署:将java目录下文件和.xml等配置文件都复制到tomcat的运行环境中(相当于既更新.classes文件又更新web.xml等配置文件)

3.热部署:在运行时修改jsp文件可以在不重服务器的情况下让修改生效,但是对修改配置文件(例如.xml)和java目录下代码无效!

总结:开启热部署后,只改.jsp文件,不需要重新部署,直接刷新页面即可看到更改改配置文件和java目录下代码,就需要重新部署


为什么需要重新构建?


对于已经运行过的Web项目,如果我们增加了目录和文件,那么部署目录有可能不会自动同步过来,从而造成实际运行的效果和我们期望的不同,即便使用上述部署模式也无法解决问题。

如果我们在工程目录已经新增了images目录和两个图片
但是在部署目录并没有出现


怎么解决


将原有的war包删除,在idea中重新构建工件(打包),然后部署运行即可

🌹写在最后💖: 路漫漫其修远兮,吾将上下而求索!伙伴们,再见!🌹🌹🌹


相关文章
|
14天前
|
JavaScript 前端开发 开发工具
web项目规范配置(husky、eslint、lint-staged、commit)
通过上述配置,可以确保在Web项目开发过程中自动进行代码质量检查和规范化提交。Husky、ESLint、lint-staged和Commitlint共同作用,使得每次提交代码之前都会自动检查代码风格和语法问题,防止不符合规范的代码进入代码库。这不仅提高了代码质量,还保证了团队协作中的一致性。希望这些配置指南能帮助你建立高效的开发流程。
32 5
|
20天前
|
JavaScript 前端开发 数据安全/隐私保护
Web开发者必看:手把手教你如何轻松播放m3u8流地址,解锁视频播放新技能,让你的项目更上一层楼!
【10月更文挑战第23天】随着互联网技术的发展,m3u8格式因良好的兼容性和高压缩率被广泛用于网络流媒体传输。本文介绍如何在Web端播放m3u8流地址,包括引入视频播放器(如Video.js)、创建播放器容器、初始化播放器及播放m3u8流的具体步骤。此外,还涉及处理加密m3u8流的示例。
70 1
|
28天前
|
JSON 搜索推荐 API
Python的web框架有哪些?小项目比较推荐哪个?
【10月更文挑战第15天】Python的web框架有哪些?小项目比较推荐哪个?
48 1
|
1月前
|
前端开发 JavaScript API
惊呆了!学会AJAX与Fetch API,你的Python Web项目瞬间高大上!
在Web开发领域,AJAX与Fetch API是提升交互体验的关键技术。AJAX(Asynchronous JavaScript and XML)作为异步通信的先驱,通过XMLHttpRequest对象实现了局部页面更新,提升了应用流畅度。Fetch API则以更现代、简洁的方式处理HTTP请求,基于Promises提供了丰富的功能。当与Python Web框架(如Django、Flask)结合时,这两者能显著增强应用的响应速度和用户体验,使项目更加高效、高大上。
50 2
|
2月前
|
前端开发 Python
前后端分离的进化:Python Web项目中的WebSocket实时通信解决方案
在现代Web开发领域,前后端分离已成为一种主流架构模式,它促进了开发效率、提升了应用的可维护性和可扩展性。随着实时数据交互需求的日益增长,WebSocket作为一种在单个长连接上进行全双工通讯的协议,成为了实现前后端实时通信的理想选择。在Python Web项目中,结合Flask框架与Flask-SocketIO库,我们可以轻松实现WebSocket的实时通信功能。
56 2
|
1月前
|
监控 Java Maven
springboot学习二:springboot 初创建 web 项目、修改banner、热部署插件、切换运行环境、springboot参数配置,打包项目并测试成功
这篇文章介绍了如何快速创建Spring Boot项目,包括项目的初始化、结构、打包部署、修改启动Banner、热部署、环境切换和参数配置等基础操作。
125 0
|
2月前
|
前端开发 JavaScript
构建你的第一个Web应用:从零到部署
【8月更文挑战第33天】 在这篇文章中,我们将一起踏上构建一个基本Web应用的旅程。不同于传统的“安装这个、运行那个”教程,我们的目标是通过理解每一步的意义和目的来深化你的技术理解。我们将探索HTML、CSS、JavaScript的基础,并学习如何将它们结合起来创建一个简单的个人网站。接着,我们会介绍如何使用GitHub Pages进行免费部署,让你的应用上线。准备好了吗?让我们开始吧!
|
2月前
|
负载均衡 网络协议 应用服务中间件
web群集--rocky9.2源码部署nginx1.24的详细过程
Nginx 是一款由 Igor Sysoev 开发的开源高性能 HTTP 服务器和反向代理服务器,自 2004 年发布以来,以其高效、稳定和灵活的特点迅速成为许多网站和应用的首选。本文详细介绍了 Nginx 的核心概念、工作原理及常见使用场景,涵盖高并发处理、反向代理、负载均衡、低内存占用等特点,并提供了安装配置教程,适合开发者参考学习。
|
3月前
|
C# 开发者 Windows
WPF遇上Office:一场关于Word与Excel自动化操作的技术盛宴,从环境搭建到代码实战,看WPF如何玩转文档处理的那些事儿
【8月更文挑战第31天】Windows Presentation Foundation (WPF) 是 .NET Framework 的重要组件,以其强大的图形界面和灵活的数据绑定功能著称。本文通过具体示例代码,介绍如何在 WPF 应用中实现 Word 和 Excel 文档的自动化操作,包括文档的读取、编辑和保存等。首先创建 WPF 项目并设计用户界面,然后在 `MainWindow.xaml.cs` 中编写逻辑代码,利用 `Microsoft.Office.Interop` 命名空间实现 Office 文档的自动化处理。文章还提供了注意事项,帮助开发者避免常见问题。
240 0
|
1月前
|
XML JSON API
ServiceStack:不仅仅是一个高性能Web API和微服务框架,更是一站式解决方案——深入解析其多协议支持及简便开发流程,带您体验前所未有的.NET开发效率革命
【10月更文挑战第9天】ServiceStack 是一个高性能的 Web API 和微服务框架,支持 JSON、XML、CSV 等多种数据格式。它简化了 .NET 应用的开发流程,提供了直观的 RESTful 服务构建方式。ServiceStack 支持高并发请求和复杂业务逻辑,安装简单,通过 NuGet 包管理器即可快速集成。示例代码展示了如何创建一个返回当前日期的简单服务,包括定义请求和响应 DTO、实现服务逻辑、配置路由和宿主。ServiceStack 还支持 WebSocket、SignalR 等实时通信协议,具备自动验证、自动过滤器等丰富功能,适合快速搭建高性能、可扩展的服务端应用。
101 3