Java 项目 与 JavaWeb 项目
Java 项目 与 JavaWeb 项目
一、什么是Java项目?
Java项目是所有使用Java语言开发的项目总称,不局限于Web场景,核心是“独立运行或基于客户端交互”,无需依赖Web技术栈。
其典型场景包括:
- 桌面应用:用Swing/JavaFX开发的企业内部工具(如数据统计软件);
- 移动应用:Android原生应用(运行在ART虚拟机);
- 独立服务:定时任务(Quartz)、大数据处理(Spark Java版);
- 工具程序:命令行脚本(如日志分析工具)。
核心标志:以Main()方法为入口,打包为JAR包,通过java -jar命令即可独立运行,无需额外服务器。
二、 什么是JavaWeb项目?
JavaWeb项目是Java项目中专门面向Web场景的分支,核心是“基于B/S架构(浏览器/服务器),通过HTTP协议交互”,用户仅需浏览器即可访问,无需安装客户端。
其典型场景包括:
- 公众网站:电商平台、博客系统;
- Web管理系统:OA审批系统、CRM客户管理系统;
- Web接口:供移动端调用的RESTful API(如用户登录接口)。
核心标志:
- 技术栈依赖固定:必须依赖 Web 全栈技术支撑
前端(HTML/CSS/JS,或 Vue/React 等框架)
后端(Servlet/SpringMVC 等 Web 层技术)、Web 容器(Tomcat/Jetty 等,负责接收 HTTP 请求并调度应用)- 传统架构部署特征:基于 Servlet+JSP/SSH/SSM 等技术栈的项目,打包为WAR 包,需部署到外部 Web 容器(如独立安装的 Tomcat),由外部容器触发应用运行(无main方法);
- 现代架构(SpringBoot)部署特征:基于 SpringBoot 的项目,打包为JAR 包(内置 Tomcat 等 Web 容器),通过项目的main方法启动 —— 启动时会自动初始化并拉起内嵌 Web 容器,无需依赖外部容器,可独立运行(本质仍是 Web 应用,只是容器 “内嵌化”)。
三、核心差异:Java项目 vs JavaWeb项目
两者在架构、技术依赖、运行逻辑上的区别,可通过表格清晰对比:
| 对比维度 | Java项目 | JavaWeb项目 |
|---|---|---|
| 架构模式 | 多为C/S架构(如QQ、客户端游戏)或独立运行 | 固定为B/S架构(浏览器+服务器,如网站) |
| 核心技术栈 | Java SE类库(集合、多线程、IO),无Web依赖 | 前端(HTML/CSS/JS)、后端(Servlet/SpringMVC)、Web服务器(Tomcat/Jetty) |
| 运行触发方式 | 以Main()方法为入口,自主启动 |
由Web服务器触发(如Tomcat接收HTTP请求后调用Servlet) |
| 打包格式 | 默认JAR包(java -jar直接运行) |
传统架构WAR包(需Tomcat),SpringBoot/JAR包(内置Tomcat) |
| 部署依赖 | 无需额外服务器,本地/服务器均可独立运行 | 传统架构需部署到Web服务器,SpringBoot可直接运行 |
| 用户访问方式 | 需安装客户端(如桌面软件、Android App) | 浏览器输入URL即可访问,无需安装客户端 |
四、JavaWeb项目的演进:从简单组件到微服务
JavaWeb的发展是“简化开发、提升扩展性”的过程,共5个阶段:
1. 阶段1:静态网页时代(早期)
特点:仅静态HTML页面,无动态内容(如固定企业官网),无法响应用户交互(如登录、查询);
2. 阶段2:Servlet + JSP 架构(基础组件)
- 核心逻辑:JavaWeb的“基石”,首次实现动态网页,遵循MVC思想;
- 组件分工:
- Servlet:侧重逻辑控制(接收HTTP请求、处理业务,如登录验证),HTML与Java代码分离;
- JSP:本质是特殊Servlet,侧重页面显示(HTML中嵌Java代码,如展示用户列表);
3. 阶段3:SSH架构(Struts + Spring + Hibernate)
- 定位:早期企业级Web项目主流架构,解决Servlet+JSP的“配置繁琐”问题;
- 组件分工:
- Struts:Web层框架,替代Servlet接收请求、控制页面跳转
- Spring:整合框架,用IoC管理Struts/Hibernate,AOP处理事务/日志
- Hibernate:持久层框架(ORM),封装JDBC,以“对象”方式操作数据库
4. 阶段4:SSM架构(SpringMVC + Spring + MyBatis)
- 定位:替代SSH的“轻量架构”,至今仍用於中小型项目;
- 组件升级:
- SpringMVC:替代Struts,支持注解(如
@Controller)、RESTful URL,配置更简洁 - MyBatis:替代Hibernate,“半自动ORM”,允许手写SQL,优化更灵活
- Spring:保持整合核心作用
- SpringMVC:替代Struts,支持注解(如
5. 阶段5:SpringBoot + SpringCloud(微服务)
- 定位:应对大型分布式系统(当前主流)
- 核心特点:
- SpringBoot:简化SSM配置(“约定大于配置”),内置Tomcat,打包为JAR包即可运行
- SpringCloud:基于SpringBoot的微服务治理框架,拆分独立服务(如订单服务、支付服务),提供注册发现(Eureka)、网关(Gateway)等组件
五、JavaWeb项目的打包与部署
1. 传统架构(Servlet+JSP/SSH/SSM):WAR包方式+Tomcat部署
1.1 项目结构说明

WEB-INF 是什么?
WEB-INF目录是一个受保护的目录,它不会被Web服务器直接暴露给外部用户。
所以可以存放Web应用程序的私有资源和配置文件。
- 私有资源:包括 Servlet类、JSP页面(虽然JSP页面通常放在webapp的根目录或特定子目录下,但JSP的编译结果和相关的Servlet类会放在WEB-INF下)、静态资源(如模板文件、配置文件等,但通常不包括直接供客户端访问的静态资源,如图片、CSS、JavaScript等,这些资源一般放在webapp的其他目录下)以及
- 配置文件:web.xml配置文件等。
web.xml文件 是什么?
web.xml文件是Java Web应用程序的核心配置文件之一,它位于WEB-INF目录下。
这个文件根据Java Servlet规范定义,用于配置Web应用的行为和组件设置。具体作用包括但不限于:
- 定义Servlet类及其映射URL,指定Servlet初始化参数和装载顺序。
- 设置过滤器(Filter),指定它们应用于哪些URL请求,并可以传递初始化参数给过滤器。
- 注册监听器,用于监听Web应用生命周期中的特定事件,如启动、停止、会话创建和销毁等。
- 配置HTTP状态代码对应的错误页面,以便在发生特定错误时显示相应的错误信息页面。
- 设置Web应用默认的会话超时时间。
- 定义安全角色、登录认证和授权规则,控制对Web资源的访问权限。
三层开发
Dao层+Service层+Servlet层(其实也是Controller层)
参考
【1】https://blog.csdn.net/m0_46988935/article/details/115693714
1.2 如何打包(war方式)
一、intellij idea打war包
1、第一步在我们的电脑上打开IntelliJ IDEA,按ctrl+alt+shift+s键打开Project Structure,点击+号图标,选择“Artifacts->Web Application Archive”,如下图所示:
2、第二步进去之后,可以修改打包的war包名字和存放路径,默认是项目路径\out\artifacts\下面,将右侧的全选,鼠标右键点击“Put into Output Root”,如下图所示:
3、第三步全部添加到左侧之后,点击ok,如下图所示:
4、第四步点击Build->Build Artifacts,进行打包项目成war,如下图所示:
5.第五步在项目下面的target文件夹中可以看到打包的war包,也可以自己打包之前选择存放的路径,如下图所示:
参考
【1】https://blog.csdn.net/cm15835106905/article/details/107927847
1.3 如何部署(war包)
war包是通过Tomcat进行部署的
1. Tomcat 介绍
Tomcat是常见的免费的web服务器.
Tomcat 这个名字的来历,Tomcat是一种野外的猫科动物,不依赖人类,独立生活。 Tomcat的作者,取这个名字的初衷是希望,这一款服务器可以自力更生,自给自足,像Tomcat这样一种野生动物一般,不依赖其他插件,而可以独立达到提供web 服务的效果。
2. Tomcat目录结构
3. 开始部署项目
1、将编写并编译好的web项目(注意要是编译好的,如果是 eclipse,可以将项目打成 war 包放入),放入到 webapps 中(webapps内默认有5个固定的文件夹,不用管)。

2、启动tomcat服务器(双击 apache-tomcat-6.0.16\bin 目录下的 startup.bat,启动服务器)
3、在浏览器输入:http://localhost:8080/项目名/访问的文件名
参考
【1】Tomcat 部署项目的三种方法
2. 现代架构(SpringBoot/SpringCloud):JAR包打包+直接运行
2.1 Maven打JAR包
-
确保
pom.xml包含SpringBoot打包插件; -
IDEA中打开“Maven”面板→
Lifecycle→clean(清理旧文件)→package(打包); -
在
target目录找到JAR包(如springboot-web.jar)。
2.2 运行JAR包
-
命令行进入JAR包目录,执行
java -jar 项目名.jar; -
启动成功后,浏览器访问
http://IP:端口/接口(如http://127.0.0.1:8080/api/user)。
2.3 补充:SpringBoot配置文件优先级
SpringBoot配置文件(application.properties/application.yml)的优先级差异:

- 前缀优先级:
bootstrap>application(bootstrap加载启动必需配置);- 后缀优先级:2.4.0前
properties>yml,2.4.0后yml>properties;- 覆盖逻辑:同key后加载覆盖前加载,不同key互补。
六、总结
Java项目是“Java开发的所有项目统称”,JavaWeb项目是其“Web场景子集”,两者核心差异在架构、技术依赖与运行逻辑。
JavaWeb从Servlet+JSP演进到SpringCloud,打包部署从WAR包依赖Tomcat,简化为JAR包内置容器。
更多推荐
所有评论(0)