【总结】Javaweb和Java项目的比较

news2024/12/26 11:31:12

 🎄欢迎来到@边境矢梦°的csdn博文🎄

 🎄本文主要梳理Javaweb中的关键点和需要注意的地方🎄


🌈我是边境矢梦°,一个正在为秋招和算法竞赛做准备的学生🌈
🎆喜欢的朋友可以关注一下🫰🫰🫰,下次更新不迷路🎆

Ps: 月亮越亮说明知识点越重要 (重要性或者难度越大)🌑🌒🌓🌔🌕   

在这里插入图片描述

目录

🌕一. JavaWeb项目和Java项目的区别

🌔二. Javaweb程序中的out目录

🌔三. JAVAWEB项目中的web目录

🌔四. 浏览器访问的是JavaWeb的那个目录

🌕五. Java项目和Javaweb项目执行时的不同



 

 一. JavaWeb项目和Java项目的区别

  

 


二. Javaweb程序中的out目录

out:该目录是编译输出目录,用于存放编译生成的字节码文件(.class文件)。out目录在项目中默认隐藏,可以在IDEA的项目设置中查看和修改编译输出路径。


三. JAVAWEB项目中的web目录

( 该图与下面解释相对应 )

webapp:这是一个重要的目录,用于存放Web应用程序的相关资源和文件。这些资源和文件能够被Web容器解析和处理,用于构建Web页面和提供Web服务。在webapp目录下,可以包含以下子目录和文件:

  • WEB-INF目录:该目录包含Web应用程序的配置文件和受保护的资源。常见的文件和目录有:
    • web.xml:Web应用程序的部署描述符,包含了Servlet、Filter、Listener等的配置信息。
    • lib目录:用于存放Web应用程序所需的依赖库(JAR文件)。
    • classes目录:编译输出目录,用于存放编译生成的字节码文件(.class文件)。
  • 静态资源:例如HTML文件、CSS样式表、JavaScript脚本、图片等等。


四. 浏览器访问的是JavaWeb的那个目录

在Javaweb项目中,浏览器直接访问的是项目的Web根目录,通常是指位于web目录下的资源。

当你在浏览器中输入Javaweb应用程序的URL时,实际上是在请求Web服务器提供的Web应用程序资源。Web服务器会根据URL映射规则来确定具体的资源位置。

对于典型的Javaweb项目,默认情况下,Web服务器会将URL映射到web目录下的资源。例如,如果你的Javaweb项目中有一个名为index.html的文件,位于web目录下,那么你可以通过在浏览器中输入http://localhost:8080/项目名/index.html来访问它。

需要注意的是,URL的路径部分可以包含多级目录。例如,如果index.html位于web目录下的static子目录中,那么URL可能是http://localhost:8080/项目名/static/index.html

在配置Javaweb项目部署时,也可以通过修改Web服务器的配置来修改URL映射规则,将URL映射到不同的路径或其他目录。这些配置将会因使用的Web服务器而有所不同,例如Tomcat、Jetty等。

总结起来,Javaweb项目在浏览器访问时,实际上是访问项目中Web根目录下的资源,通常是指位于web目录下的文件和文件夹。

所以, Javaweb在执行的时候, 浏览器访问的是web文件, 如果web文件需要class文件或者其他在src里面的文件的的时候, 就回去out里面去找, 找到了运行并返回响应


五. Java项目和Javaweb项目执行时的不同

Java项目和JavaWeb项目在执行时有以下几点不同之处:

  1. 运行环境:Java项目可以直接在Java虚拟机(JVM)上执行,而JavaWeb项目则需要在Web容器(如Tomcat、Jetty、WebLogic等)中运行。Web容器提供了对Servlet和JSP等Web组件的支持,并提供了处理HTTP请求和响应的能力。

  2. 启动方式:Java项目通常以单独的Java应用程序形式启动,通过执行main()方法来启动主程序。而JavaWeb项目则由Web容器负责启动,通过部署Web应用程序到Web容器中并启动Web容器来运行项目。

  3. 程序入口:Java项目的入口点是一个特定的类中的main()方法,该方法可以接收命令行参数并执行特定的操作。而JavaWeb项目的入口是Servlet容器,当接收到HTTP请求时,会根据配置的请求映射(例如web.xml或基于注解)来派发请求给相应的Servlet进行处理。

  4. 请求处理:Java项目通常使用控制台或其他方式与用户进行交互,而JavaWeb项目主要是通过HTTP请求与浏览器或其他客户端进行交互。JavaWeb项目中的Servlet负责处理请求、生成响应,以及与数据库、其他服务或组件进行交互。

  5. 依赖管理:Java项目通常使用构建工具(如Maven、Gradle)来管理项目依赖,通过在构建配置文件中定义依赖项,并从公共仓库获取所需的库。而JavaWeb项目也可以使用构建工具管理依赖,但通常还依赖于Web容器提供的一些特定的库和框架,如Servlet API、JSP API等。

Java项目和JavaWeb项目并非互斥的概念,JavaWeb项目可以包含Java项目的部分或全部,同时还包括了用于构建Web应用程序的特定组件和配置。因此,JavaWeb项目可以看作是一个以Java项目为基础,并在此基础上构建出的具有Web特性的应用程序。

 可参考博主其他文章里的总结进行巩固 : 

 【JavaWeb】知识总结Ⅶ(Servlet)_边境矢梦°的博客-CSDN博客

【JavaWeb】知识总结Ⅵ(Tomcat)_边境矢梦°的博客-CSDN博客

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/868572.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计算机网络核心-数据交换

1 概述 计算机网络的核心即数据交换。通过数据交换将数据从源主机发送到目的主机。 2 为什么需要数据交换 如果不是数据交换的方式,而是每两台主机直接连接,则会产生N^2链路问题。 即,假设有N台主机,两两间建立连接&#xff0c…

STM32F429IGT6使用CubeMX配置外部中断按键

1、硬件电路 2、设置RCC,选择高速外部时钟HSE,时钟设置为180MHz 3、配置GPIO引脚 4、NVIC配置 PC13相同 5、生成工程配置 6、部分代码 中断回调函数 /* USER CODE BEGIN 0 */void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) {if(GPIO_Pin GPIO_PIN_0){HAL_GPIO…

自动测试框架airtest应用二:咪咕爱看能量兑换

一、背景介绍 咪咕爱看是中国移动旗下的一款视频播放软件,可以观看众多电影、电视剧、综艺视频,并且移动环境下观看视频还能获得能量,能量可以兑换流量和消费券。它曾经是一款良心APP,不过经过多年调整,现在大部分电影…

android,Compose,消息列表和动画(点击item的时候,就会删除)

Compose,消息列表和动画(点击item的时候,就会删除) package com.example.mycompose08import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.foundat…

基于机器学习进行降雨预测 -- 机器学习项目基础篇(13)

在本文中,我们将学习如何构建一个机器学习模型,该模型可以根据一些大气因素预测今天是否会有降雨。这个问题与使用机器学习的降雨预测有关,因为机器学习模型往往在以前已知的任务上表现得更好,而这些任务需要高技能的个人来完成。…

面试八股文Mysql:(2)数据库调优

1. SQL优化很有必要 数据库优化在提升系统性能是很重要的一个方面,不管是MySQL还是MongoDB还是其它的数据库。 SQL优化在提升系统性能中是成本最低 && 优化效果最明显的途径,可以让吞吐量更大,响应速度更快。如果你的团队在SQL优化这…

阿里云服务器部署RabbitMQ流程

阿里云百科分享使用阿里云服务器部署RabbitMQ流程,RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件,用于在分布式系统中存储转发消息,有良好的易用性、扩展性和高可用性。本文介绍如何通过ECS实例部署Rabbi…

九、多态(1)

本章概要 向上转型回顾 忘掉对象类型 转机 方法调用绑定产生正确的行为可扩展性陷阱:“重写”私有方法陷阱:属性与静态方法 多态是面向对象编程语言中,继数据抽象和继承之外的第三个重要特性。 多态提供了另一个维度的接口与实现分离&…

Qt5开发视频播放器

一、播放器界面UI设计 控件对象名位置(坐标点)对象名称组件名称备注Widget(0, 0, 809, 572)WidgetQWidgetlabellabelQLabel播放窗口label_2label_2QLabelvoice_controlvoice_controlQSlider音量滑动条btn_openbtn_openQPushButton打开文件按钮label_4la…

在阿里云服务器上安装Microsoft SharePoint 2016流程

本教程阿里云百科分享如何在阿里云ECS上搭建Microsoft SharePoint 2016。Microsoft SharePoint是Microsoft SharePoint Portal Server的简称。SharePoint Portal Server是一个门户站点,使得企业能够开发出智能的门户站点。 目录 背景信息 步骤一:添加…

Spring循环依赖-实践三级缓存的再次理解

目录 Spring循环依赖流程图场景:**A 依赖B**; **B依赖A、C**; **C依赖A**A,B, C三个类的定义容器类测试输入如下 总结 Spring循环依赖流程图 很早之前阅读源码写过总结: https://github.com/doctording/spring-framework-5.1.3.RELEASE/blob…

8/12 题解

解题思路 贪心&#xff0c;小的搭配大的&#xff0c;和会最小 AC代码 #include <iostream> using namespace std;int main() {int n;cin >> n;int l 1;int r n;while(l < r){ cout << l << ;l;cout << r << ;--r;if(l r){cout …

java 9的新特性解读(3)

目录 语法改进&#xff1a;try语句 String存储结构变更 Motivation Description 那StringBuffer 和 StringBuilder 是否仍无动于衷呢&#xff1f; 集合工厂方法&#xff1a;快速创建只读集合 语法改进&#xff1a;try语句 Java 8 中&#xff0c;可以实现资源的自动…

JavaScript【瀑布流-页面布局、动态设置内容居中、动态设置图片位置、页面触底、上拉加载、页面布局、动态切换、页面布局】(十五)

目录 DOM实操-瀑布流-页面布局 瀑布流特点 DOM实操-瀑布流-动态设置内容居中 DOM实操-瀑布流-动态设置图片位置 DOM实操-瀑布流-页面触底 DOM实操-瀑布流-上拉加载 DOM实操-轮播图-页面布局 轮播图 轮播图特点 DOM实操-轮播图-动态切换 DOM实操-放大镜-页面布局 放大…

Leetcode-每日一题【剑指 Offer 25. 合并两个排序的链表】

题目 输入两个递增排序的链表&#xff0c;合并这两个链表并使新链表中的节点仍然是递增排序的。 示例1&#xff1a; 输入&#xff1a;1->2->4, 1->3->4输出&#xff1a;1->1->2->3->4->4 限制&#xff1a; 0 < 链表长度 < 1000 解题思路 1…

Java对象内存结构、对象在内存是什么样的

我们知道Java对象分配在堆内存中&#xff0c;一个对象在堆内存中的存储布局可以分为三部分&#xff1a; 对象头Header实例数据对齐填充 1. 对象头Header 对象头部分又包含两部分&#xff1a; 第一部分是用于存储对象自身运行时数据&#xff0c;例如哈希码、GC分代年龄等第二…

时序预测 | MATLAB基于扩散因子搜索的GRNN广义回归神经网络时间序列预测(多指标,多图)

时序预测 | MATLAB基于扩散因子搜索的GRNN广义回归神经网络时间序列预测(多指标,多图) 目录 时序预测 | MATLAB基于扩散因子搜索的GRNN广义回归神经网络时间序列预测(多指标,多图)效果一览基本介绍程序设计学习小结参考资料效果一览

Spring5 AOP 默认使用 JDK

这是博主在使用dubbo实现远程过程调用的时候遇到的问题&#xff1a; 我们如果在服务提供者类上加入Transactional事务控制注解后&#xff0c;服务就发布不成功了。原因是事务控制的底层原理是为服务提供者类创建代理对象&#xff0c;而默认情况下Spring是基于JDK动态代理方式创…

LeetCode面向运气之Javascript—第121题-买卖股票的最佳时机-97.77%

LeetCode第121题-买卖股票的最佳时机 题目要求 给定一个数组prices &#xff0c;它的第i个元素prices[i]表示一支给定股票第i天的价格。 你只能选择某一天买入这只股票&#xff0c;并选择在未来的某一个不同的日子卖出该股票。设计一个算法来计算你所能获取的最大利润。 返回…

Martin_DHCP_V3.0 (DHCP自动化泛洪攻击GUI)

Github>https://github.com/MartinxMax/Martin_DHCP_V3.0 首页 Martin_DHCP_V3.0 自动化DHCP洪泛攻击 Martin_DHCP_V3.0 使用方法 安装三方库 #python3 1.RunMe_Install_Packet.py 攻击路由器 #python3 Martin_DHCP_Attack.py 填写网卡 填写攻击次数 开始运行