Java Web 工程全貌

Javaweb项目目录结构解析(基于IDEA) 初次学到Javaweb项目的创建,但是由于IDEA版本问题,创建的Javaweb项目结构与学习视频不同。 下图所示为新版IDEA创建Javaweb项目的默认结构分层: src:这是用来存放Java源文件。 src/main/ava/com:该包下用来存放相应的Java代码,并根据对应的Java项目继续分层架构,一般分为一下几个软件包 bean包:封装类,一般是按照数据库的来写内容的,一个表... 阅读详情

通过下图,我们可以一览 Java Web 工程的全貌
Java Web 工程全貌

通过上图,我们能够基本窥探整个 Java Web 工程的面貌,包括前端,后端,甚至是运维。

接下来,我们就结合文字描述,加深理解。

部署Vue前端和Spring后端涉及到不同的步骤,以下是一个详细的部署流程,包括Tomcat的不同部署方法。

部署Vue前端

  1. 构建Vue项目:
    • 在Vue项目根目录下运行 npm run build 或 yarn build 命令,生成 dist 文件夹。
  2. 上传到服务器:
    • 将 dist 文件夹上传到服务器的某个目录,例如 /var/www/vue-app。
  3. 配置Nginx:
    • 创建Nginx配置文件,配置服务器块来服务Vue应用的静态文件。
server {
    listen 80;
    server_name yourdomain.com;
    location / {
        root /var/www/vue-app;
        try_files $uri $uri/ /index.html;
    }
}
  • 重载Nginx以应用新配置。

部署Spring后端

使用Spring自带的嵌入式Tomcat

如果你的Spring项目使用的是Spring Boot并且打包成了可执行的jar包,你可以按照以下步骤部署:

  1. 打包Spring Boot应用:
    • 运行 mvn clean package 或 gradle build 命令,生成可执行的jar包。
  2. 上传jar包到服务器:
    • 将jar包上传到服务器的某个目录。
  3. 运行Spring Boot应用:
    • 使用 java -jar 命令运行jar包。
nohup java -jar /path/to/your/spring-boot-app.jar &

这种方式下,Spring Boot应用会使用内嵌的Tomcat服务器。

使用自带的Tomcat

如果你的Spring项目是一个传统的Java Web应用,并且打包成了war包,你需要部署到外部的Tomcat服务器:

  1. 打包Spring应用:
    • 运行 mvn clean package 命令,生成war包。
  2. 上传war包到Tomcat:
    • 将war包复制到Tomcat的 webapps 目录下。
  3. 启动Tomcat:
    • 如果Tomcat没有运行,启动Tomcat。Tomcat会自动解压war包并部署应用。
sudo systemctl start tomcat

Java Web开发的Java代码运行位置

Java Web开发的Java代码是运行在Tomcat服务器上的。Tomcat是一个Servlet容器,它负责管理Java Web应用的整个生命周期,包括加载、运行、卸载等。
以下是代码的运行流程:

  • Tomcat:Tomcat是由Java编写的一个Servlet容器,它运行在JVM(Java虚拟机)上。
  • JVM:Java代码最终是通过JVM运行的。当Tomcat启动时,它会启动一个或多个JVM实例。
  • Java代码:你的Spring应用中的Java代码会被编译成字节码,这些字节码由JVM执行。当请求到达Tomcat时,Tomcat会调用相应的Servlet来处理请求,这些Servlet是由你的Spring框架管理的。
    所以,Java Web应用的Java代码不是直接通过 main 方法运行的,而是作为Servlet在Tomcat容器中运行的。当Tomcat启动时,它会加载并初始化这些Servlet,然后等待并处理来自客户端的请求。

Tomcat服务器运行位置

Tomcat服务器,作为一个Java Servlet容器,是运行在Java虚拟机(JVM)之上的。以下是详细的层次结构:

  1. 操作系统:Tomcat服务器首先需要安装在操作系统上,比如Linux、Windows或macOS。
  2. Java虚拟机(JVM):在操作系统之上,需要安装Java开发工具包(JDK),它包含Java运行时环境(JRE)和JVM。JVM是Java程序运行的环境,它负责将Java字节码转换为特定操作系统的机器码。
  3. Tomcat服务器:Tomcat本身是用Java编写的,因此它作为一个Java应用程序运行在JVM之上。当启动Tomcat时,实际上是启动了一个Java进程,这个进程加载Tomcat的类和资源,并启动服务器。
    以下是Tomcat启动和运行的过程:
  • 当你启动Tomcat时,通常会运行一个脚本(例如在Linux上是 catalina.sh,在Windows上是 catalina.bat)。
  • 这个脚本会启动JVM,并指定Tomcat的启动类 org.apache.catalina.startup.Bootstrap 作为主类。
  • JVM启动后,会加载Bootstrap类,Bootstrap类会初始化Tomcat服务器,包括其各种组件如Catalina(Servlet容器)、Coyote(连接器)等。
  • 一旦Tomcat启动并运行,它就可以接收来自客户端的HTTP请求,并将这些请求转发到相应的Web应用程序进行处理。
    总结来说,Tomcat服务器是运行在JVM之上的,而JVM又是运行在操作系统之上的。这个过程可以表示为:
操作系统 (如 Linux)
   |
Java虚拟机 (JVM)
   |
Tomcat服务器
   |
Web应用程序 (WAR包)
java Web项目的目录结构说明 myEclipse 创建的 java Web项目的目录结构说明 立即下载

相关推荐

Java WEb项目

这是Java web小项目 供参考

详解JavaWeb(一)之JavaWeb体系图

1.B/S框架,意思是前端(Browser浏览器和服务器端(Server)组成的系统的框架结构。2. B/S架构也可理解为web架构,包含前端、后端、数据库三大组成部分。前端前端开发技术工具包括三要素:HTMLCSS和JavaScript,还有很多高级的前端框架,如bootstrapjqueryVUE等。后端后端开发技术工具主要有:NetJAVAPHP, Go等数据库主流的三种关系型数据库:MysqlSQLserverOracle,还有。

weixin_52890531的博客 1303

web设计三层结构图

进行Web设计时的三层结构图

java web最好项目目录结构图_强烈推荐一个技术栈丰富的微电商项目lubanmall

前言luban-mall 项目脱胎于开源电商项目mall,并在这一开源项目的基础上由鲁班学院以伯乐老师为代表的几位讲师等进行了项目增强和完善。它是基于SpringBoot+MyBatis的电商系统,包括前台商城系统及后台管理系统前台商城系统包含首页门户、商品推荐、商品搜索、商品展示、购物车、订单流程、会员中心、客户服务、帮助中心等模块。后台管理系统包含商品管理、订单管理、会员管理、促销管...

weixin_39769187的博客 755

WEB 应用 架构图

近期需要做一个技术分享,分享一些技术架构。第一次画架构图,分享给大家,请大家多多指教拍砖,谢谢!

JavaWeb知识结构图

JavaWeb知识结构图,是帮助我们学习JAVA的一种方向。

标准Web系统的架构分层,你了解过吗?

1.架构体系分层图 在上图中我们描述了Web系统架构中的组成部分。并且给出了每一层常用的技术组件/服务实现。需要注意以下几点: 系统架构是灵活的,根据需求的不同,不一定每一层的技术都需要使用。例如:一些简单的CRM系统可能在产品初期并不需要K-V作为缓存;一些系统访问量不大,并且可能只有一台业务服务器存在,所以不需要运用负载均衡层。 业务系统间通信层并没有加入传统的HTTP请求方式。这是因为HTTP请求-响应的延迟比较高,并且有很多次和正式请求无关的通信(这在下面的内容中会详细讲到)。所以,传

linjingyg的博客 1078

缠中说禅交易指南

战胜市场,其实就是战胜自己的贪婪、恐惧、愚蠢,缠中说禅技术分析理论只是把市场拔光给各位看,而拔光一个人并不意味着就等于征服一个人,对于市场,其道理是一样的。不干,不可能征服市场。对于市场来说,干就是一切。技术分析的最终意义不是去预测市场要干什么,而是分析市场正在干什么,是一种当下的直观。在市场上所有的错误都是离开了这当下的直观,用想象、用情绪来代替。 市场是有规律的,但市场的规律并不是显而易见的,是需要严格的分析才能得到。更重要的是,市场的规律是一种动态的,在不同级别合力作用下显示出来的规律,企图用些单纯的

baidu_25764509的博客 2万+

web项目部署架构图

为大家做了一张web项目的架构图,希望大家看了后能够对项目部署有一个清楚直观的认识. 如有任何技术疑问都可以在下方留言评论,每天将抽出部分留言进行解答 做个简单解释: 多个服务器的,被称之为集群环境,如上图的服务器A,B,C,集群环境下用户的请求将不再直接请求服务器,而是被反向代理服务器进行处理,之后根据配置进行分配,让用户的请求应该请求到那台服务器 好处主要在于减小单个服务器压力 ...

秋语博客 3万+

PyTorch实战:3D U-Net医学图像分割从零搭建(附完整代码)

本文详细介绍了如何使用PyTorch从零搭建3D U-Net模型进行医学图像分割,涵盖三维卷积实现、模块化架构设计、医学图像专属优化策略及完整训练流程。通过实战代码演示,帮助开发者掌握UNet-3D在CT、MRI等三维医学图像分割中的应用,提升肝脏肿瘤分割、肺结节检测等任务的准确性。

weixin_29061997的博客 329

深入解析:el-table合并单元格

  在企业级应用开发中,我们经常需要处理复杂的数据展示需求。在构建复杂的数据展示后台时,我们常常需要将表格中具有相同属性的行进行视觉上的合并,以提升信息的聚合度和可读性。在 Element Plus 的 el-table 组件中,span-method 属性是实现单元格合并的核心机制,允许开发者自定义单元格的合并逻辑,开发者可以通过实现自定义合并策略来满足各种负责需求。  合并行的本质是通过计算相邻行数据的相似性,确定满足合并的单元格范围,然后通过 DOM 操作将多个单元格合并为一个。这种操作在前端数据可视

独泪了无痕 228

后端工程师——Java工程师如何准备面试

在国内,Java 程序员是后端开发工程师中最大的一部分群体,其市场需求量也是居高不下,C++ 程序员也是热门岗位之一,此二者的比较也常是热点话题,例如新学者常困惑的问题之一 —— 后端开发学 Java 好还是学 C++ 好。读完本文后,我们可以从自身情况、未来的发展,岗位需求量和薪资待遇等方面去考虑自我的求职方向。

SmiledrinkCat的博客 972

飞书应用开发脚手架lark-harness:从零构建企业级机器人

在构建企业级应用时,开发脚手架是提升工程效率和规范性的关键工具。其核心原理在于通过预设的项目模板、最佳实践和通用模块封装,自动化处理项目初始化、配置管理和基础架构搭建。这种技术价值在于将开发者从重复性劳动中解放出来,确保团队技术栈统一,并降低维护成本。在Node.js生态中,脚手架常与Express或Koa等Web框架结合,用于快速构建Web服务、API接口和实时事件处理系统。具体到飞书开放平台开发场景,开发者需要处理OAuth 2.0授权、事件订阅验证、消息加解密等复杂且标准的流程。lark-harnes

weixin_30703911的博客 612

web前端和后端有哪些区别?哪个更好就业

web前端分为网页设计师、网页美工、web前端开发工程师。 首先网页设计师是对网页的架构、色彩以及网站的整体页面代码负责。 网页美工只针对UI这块儿的东西,比如网站是否做的漂亮。 web前端开发工程师是负责交互设计的,需要和程序猿进行交互设计的配合。 web前端需要掌握的有脚本技术javascript DIV+CSS现下最流行的页面搭建技术,ajax和jquery以及简单的后端程序等。 后端的话...

IT-编程资讯 6685

E28 LoRa模块透传 定点传输 RSSI测试与MicroPython应用

测试说明 测试模块数:3 测试模式:配置模式和传输模式 如果没有检测到串口,首先检查是否安装串口驱动CH341SER,下载链接,提取码:vaw2 工作模式 模式(0-3) M2 M1 M0 模式介绍 备注 0 传输模式 1 0 0 串口打开,无线打开,连续透明传输 空速支持手动配置和自适应波特率自动调节;连续模式双方波特率必须一致 1 RSSI 1 0 1 串口打开,无线打开,RSSI功能打开 模块每100ms输出RSSI强度值 2 测距模式 1 1 0 保留 - 3 配置模式

GniLAY1022的博客 4242

Git系列(一)、Git基础教程【建议收藏】

Git一、Git简介1.1、什么是Git? 一、Git简介 1.1、什么是Git? Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或大或小的项目。 Git是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源代码的版本控制软件。 Git与常用的版本控制工具CVS、Subversion等不同,它采用了分布式版本库的方式,不用服务器端软件支持。 .........

一宿君 4万+

Java开发工程师入门最全学习路线

Java语言在国内IT行业,就业率长年稳居榜首,薪资也非常可观,对于IT应届生和有转行IT行业意向的朋友来说,是个上佳选择;另外,对于要冲击高阶技术岗,例如大数据开发的朋友,也需要Java作为支撑。可以说掌握了Java,就等于拿到了IT行业的高薪入场券。 想要入门Java,以下几大阶段的内容是必须要掌握的。

yyaannnnnnnn的博客 1041

【AUTOSAR-DEM】-2.1-APP SWC设置UDS/OBD DTC检出和恢复

点击返回「《Autosar_BSW高阶配置》总目录」 案例背景(共6页精讲): DEM模块提供两种不同类型的Event: • BSW-related events:DEM_EVENT_KIND_BSW(通过C-API报告 - Dem_SetEventStatus) • SW-C-related events:DEM_EVENT_KIND_SWC(通过RTE operation - SetEventStatus) 下面我们讲讲在APP SWC中设置BusOff(总线关闭) DTC故障成立/恢复(其它

「汽车电子助手」的博客 3944

如何入门网络安全0基础如何学习Web安全

相信很多人想进入网络安全,都是听说网络安全就业前景大,薪资很高,入门门槛也相对较低,但是,对于0-2年的网安新人,要学习网络安全往往还是存在以下方面困惑和迷茫。这些障碍会导致,大量 0-2 年的网安新人无法快速找到一份靠谱、有前途的工作,即使在职,也很容易陷入低薪打杂的状态,无法得到高效成长。所以,如果你是一个完全经验的新手,想转行网络安全,我们建议当你想快速进入一个行业的时候,,或者你这个行业所需要的掌握的必备能力,然后一步一步进行拆解。

Button12138的博客 689

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Java开发工程师实习成长之路:从校园到企业级开发的蜕变

实习摘要: 在智慧物联监控平台的Java开发实习中,我完成了从学生到准职业工程师的转变。通过分阶段学习,夯实了Java核心基础(Socket编程、多线程),掌握了Spring全家桶、微服务架构及分布式组件(Nacos/Gateway),并参与电商系统与物联网平台实战,负责设备管理等模块开发。实习期间构建了完整的技术栈,培养工程化思维与团队协作能力,熟悉Git、Redis等工具链,同时提升问题解决与跨角色沟通能力。未来计划深化微服务、算法基础,向架构师方向进阶,并持续输出技术博客,打造个人影响力。

qq_43322683的博客 831

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

一览Spring全貌

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34419326的博客 102

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Java JDBC与数据库还有数据库在微服务中的并发和一致性等原理(以及前后端分离之大坑)(了解web servet以及web部署服务器和docke部署前端)(六)(非常之重点和全貌学习)

----上次说到Structs2这个MVC架构中的一个功能,那么还有几个平时容易与之混淆的概念都需要来整理一下,免得以后很多东西都不怎么明朗— 首先是Tomcat或许这个和Struct2没有什么太大关系,先放连接–res_cue-----------Tomcat工作原理详解----https://blog.youkuaiyun.com/res_cue/article/details/21756357 自从JS...

oooooooooooooookjk的博客 194

WEB前端入门知识及要点大全

一、WEB前端是什么? 使用HTML/CSS/JS以及更多的框架技术,编写网站页面、App应用、小程序、2D&3D游戏、Web VR&AR等应用,通过内容设计、交互动画、数据操作构建项目与用户的交互界面。前端开发工程师在项目中可以与UI设计师和后台程序员合作,实现设计意图并调用后台接口;也可以独立工作,完成强用户交互的各类应用。 二、WEB前端可以做什么? 最经典的是各种类型的网站:电子商务、企业门户、管理系统、社区平台等;目前也是移动领域首选技术:WebApp、混编App、手机游戏、微信公

weixin_65996806的博客 4069

python后台数据传给前台js_来自Python大厂资深工程师技术之路分享

本篇内容整理于胡阳老师(the5fire)直播分享——《Python Web开发之路》,围绕入门、成长、进阶三方面,从项目技巧讲到技术思维,从团队视野讲到视野规划,全面解读了Python Web开发者的进阶之旅。希望这个分享能帮你走出职业困境!作者简介胡阳——网名the5fire,前搜狐资深开发工程师,现任知乎资深开发工程师,负责部分业务的后端开发和团队管理。同时也是腾讯云最具价值专家(TVP)。...

weixin_39766014的博客 441
上一篇: Ajax 与 Vue 框架应用点——随笔谈
下一篇: 机器学习 (西瓜书) 内容概要【不含数学推导】
code_stream
博客等级 码龄4年 1238粉丝 169原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值