Java Web工程结构_项目结构

文章目录

  • Eclipse 的 Java Web 工程目录结构
    • IDE 的目录结构截图
    • 本地的工作空间(Workspace)中的目录结构
    • 目录说明
  • Eclipse 的 Java 工程目录结构
    • IDE 的目录结构截图
    • 本地的工作空间中的工程目录
  • MyEclipse 的 Java Web 工程目录结构
    • IDE 目录结构截图
    • 本地的工作空间的工程目录
  • IntelliJ IDEA 的 Java Web 工程目录结构
    • IDE 工程目录结构截图
    • 本地的工作空间的工程目录

Eclipse 的 Java Web 工程目录结构

IDE 的目录结构截图

在这里插入图片描述

本地的工作空间(Workspace)中的目录结构

在这里插入图片描述

目录说明

Apache Tomcat v7.0: 是指这个项目所依赖的服务器(Tomcat)的目录

JRE System Library: 指 Java SE 的常用库文件集合,也就是 jar 包,建立普通的 Java 项目均会使用到,如下图所示:

在这里插入图片描述
Web App Libraries: 是自己导入的项目依赖 jar 包,Web App Libraries 下的所有 jar 包都可以在 ProjectName\WebContent\WEB-INF\lib 中找到。如果你直接将一个 jar 包放在WEB-INF/lib目录下,再刷新一下,会自动编译到 Web App Library 中。

Referenced Libraries: 是编译环境下使用的 jar 包, 所谓编译环境下使用的 jar 包, 就是说你在 Eclipse 中进行源文件的编写的时候, 所需要引用到的类都从 Referenced Libraries 这个集合中的 jar 包中拿。这里导入和配置 jar 包,都是为了让 web 工程能够在 Eclipse 开发环境可以正常编译,不报错而已。

src: 存放源码文件(.java 文件)

build: 存放源码文件编译后的字节码文件,实际会存储在 build/classes 目录下(.class 文件)

WebContent: 存放 JSP、JS、CSS、XML、图片等文件,这些文件都需要部署到服务器上,是项目访问的默认根路径,也是工程的发布目录,发布时会把该目录发布到 tomcat 的 webapps 中

.settings: 该目录下的文件比较多和杂,各种后缀名的都可以见到,绝大多数是文本文件,以 properties 文件(多数以.prefs为后缀名) 和 xml 文件为主,点击此处查看更多

.classpath: 描述了一个 Eclipse 项目,内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<classpath><!-- 含义:src/main/java属于源码,编译后放到target/classes目录下 --><classpathentry kind="src" output="target/classes" path="src/main/java"><attributes><attribute name="optional" value="true"/><attribute name="maven.pomderived" value="true"/></attributes></classpathentry><classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"><attributes><!-- 代表了配置是从POM.xml里来的,受maven管理,非maven项目可以去掉这个 --><attribute name="maven.pomderived" value="true"/></attributes></classpathentry><!-- 这里的including代表了目录下所有.java文件才会被处理,其他文件一概忽略,不会出现在target/test-classes目录下 --><classpathentry including="**/*.java" kind="src" output="target/test-classes" path="src/test/java"><attributes><attribute name="optional" value="true"/><attribute name="maven.pomderived" value="true"/></attributes></classpathentry><classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources"><attributes><attribute name="maven.pomderived" value="true"/></attributes></classpathentry><!-- 这里代表使用标准的JavaSE-1.7 JDK,相比来说如果用default和直接写当前系统中安装的JDK是不推荐的 --><classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"><attributes><attribute name="maven.pomderived" value="true"/></attributes></classpathentry><!-- 代表了Maven中的dependencies也都放到classpath里 --><classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"><attributes><attribute name="maven.pomderived" value="true"/><!-- web工程中把依赖的jar都放到输出的webapp里/WEB-INF/lib下面 --><attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/></attributes></classpathentry><!--  --><classpathentry kind="con" path="org.eclipse.jst.server.core.container/org.eclipse.jst.server.tomcat.runtimeTarget/Apache-Tomcat v7.0"><attributes><attribute name="owner.project.facets" value="jst.web"/></attributes></classpathentry><!-- 统一的输出为target/classes --><classpathentry kind="output" path="target/classes"/>
</classpath>

.project: 描述了一个 Eclipse 项目,内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<projectDescription><!-- name里的内容代表项目名字,对应了Eclipse项目的名称,不是Maven的finalName --><name>demo</name><!-- 项目的注释 --><comment></comment><!-- 引用的项目的名字 --><projects></projects><!-- 有序的列表,定义了一系列的构建命令(buildCommand) --><buildSpec><buildCommand><!-- 项目构建命令的名字 --><name>org.eclipse.wst.jsdt.core.javascriptValidator</name><!-- 构建命令初始化时需要传递的参数(一般看到的都是空的) --><arguments></arguments></buildCommand><buildCommand><name>org.eclipse.jdt.core.javabuilder</name><arguments></arguments></buildCommand><buildCommand><name>org.eclipse.wst.common.project.facet.core.builder</name><arguments></arguments></buildCommand><buildCommand><name>org.eclipse.m2e.core.maven2Builder</name><arguments></arguments></buildCommand></buildSpec><!-- 项目中用到的一些特性的列表 --><natures><!-- 每一个特性的的名字 --><nature>org.eclipse.jem.workbench.JavaEMFNature</nature><nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature><nature>org.eclipse.jdt.core.javanature</nature><nature>org.eclipse.m2e.core.maven2Nature</nature><nature>org.eclipse.wst.common.project.facet.core.nature</nature><nature>org.eclipse.wst.jsdt.core.jsNature</nature></natures>
</projectDescription>

META-INF: 存放工程自身相关的一些信息,元文件信息,通常由开发工具和环境自动生成,尽量不要自己手动放置文件到目录

MANIFEST.MF: 配置清单文件

WEB-INF: 此目录是一个专用区域, 容器不能把此目录中的内容直接提供给用户(即这个目录下的文件不能被客户端直接访问,只有服务端才能访问),这个目录下的文件只供容器使用,里面包含用户无法直接下载的资源。Web 容器要求在应用程序中必须有 WEB-INF 目录。WEB-INF 中包含着发布描述符(web.xml 文件),一个 classes 目录和一个 lib 目录,以及其它内容

如果客户端想访问 WEB-INF 中的文件,必须通过 web.xml 文件,对要访问的文件进行相应的映射才能进行访问。

放在 Web 根目录下的资源(html、图片等),客户端可以通过 URL 地址直接访问。

web.xml: web 工程的配置文件,例如可以配置:welcome页面,filter,listener,servlet,servlet-mapping,启动加载级别等。每一个 xml 文件都有定义格式规范的 schema 文件,web.xml 的模式文件是由Sun 公司定义的,每个 web.xml 文件的根元素为 中,必须标明这个 web.xml 使用的是哪个模式文件。

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://java.sun.com/xml/ns/javaee"xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"id="WebApp_ID" version="2.5">    
</web-app>

WEB-INF/classes: 用于存放字节码文件(.class 文件)。Eclipse 中 classes 目录默认是在 build 目录下,部署到服务器时,则会把 classes 放在 WEB-INF 目录下

WEB-INF/lib: 该目录中的 jar 包是运行时环境下使用的 jar 包, 所谓运行时环境下使用的 jar 包,就是说你在运行你的项目的时候所需要使用的 jar 包的集合。

common/js/css/images: 这些都是自定义的目录,用来分类管理一些共用的或者程序引用到的相关文件

Eclipse 的 Java 工程目录结构

IDE 的目录结构截图

在这里插入图片描述

本地的工作空间中的工程目录

在这里插入图片描述

bin: 目录是工程输出路径,存放了编译生成的 .class 文件。用 Eclipse 进行打包时根目录就是bin

src: 目录为源码文件夹,存放的是 .Java 文件

MyEclipse 的 Java Web 工程目录结构

IDE 目录结构截图

在这里插入图片描述

本地的工作空间的工程目录

在这里插入图片描述

IntelliJ IDEA 的 Java Web 工程目录结构

这里展示的是 IntelliJ IDEA for Mac 版本的工程目录结构

IDE 工程目录结构截图

本地的工作空间的工程目录

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

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

相关文章

一天发多少短信会封号_枸杞一天吃多少?吃多了会怎样?黑枸杞红枸杞哪个好?...

●枸杞一天吃多少&#xff1f;其实枸杞作为一种滋补品&#xff0c;不适合过多的使用&#xff0c;因为那样反而会造成反作用和不良影响&#xff0c;健康的成年人每天吃20克左右就合适了&#xff0c;这样对一些疾病的治疗&#xff0c;才可以发挥更好的效果。如果是用枸杞子泡水喝…

IntelliJ IDEA for Mac 如何将普通 Java 项目变为 Web 项目

点击菜单栏 File --> Project Structure 在弹出的窗口中点击选择左侧的 Facets&#xff0c;接着点击右边的 &#xff0c;弹出的菜单中选择 web 在弹出的 『Choose Module』窗口中选择要转为 web 的项目&#xff08;模块&#xff09;&#xff0c;然后点击 OK 选择好模块后…

MacBook 如何强制删除『无法正常卸载』的应用程序

文章目录第一步&#xff1a;点击电脑屏幕左上角的 图标&#xff0c;再点击「关于本机」第二步&#xff1a;点击「储存空间」选项卡&#xff0c;接着点击「管理」第三步&#xff1a;选择左侧边栏的「应用程序」&#xff0c;然后在右侧的程序列表中选择要“删除”的程序&#x…

slot多作用域 vue_vue 深度长文之slot 篇

今天我们将分析我们经常使用的 vue 功能 slot 是如何设计和实现的&#xff0c;本文将围绕 普通插槽 和 作用域插槽 以及 vue 2.6.x 版本的 v-slot 展开对该话题的讨论。当然还不懂用法的同学建议官网先看看相关 API 先。接下来&#xff0c;我们直接进入正文吧普通插槽首先我们看…

android 扫描照片功能,Android自定义View- 雷达扫描图

首先来看看效果图&#xff1a;CSDN博客地址这里写图片描述这里我使用了两种实现方式&#xff1a;继承 view 实现。继承 surfaceview 实现。为什么会有两种实现方式呢&#xff1f;主要是因为我在继续加入一些自定义功能的时候&#xff0c;如果是继承 view &#xff0c;出现了卡顿…

SmartSVN for Mac 使用说明

文章目录连接 SVN 服务器签出&#xff08;Check Out&#xff09;导出&#xff08;Export&#xff09;打开工作副本&#xff08;Open Working Copy&#xff09;打开和管理项目移除工作副本&#xff08;Remove Working Copy&#xff09;项目及工作副本目录导航窗口查看和配置被忽…

bldc 原理 方波控制_【百问百答】ST 电机控制实战问答合辑 | 连载之一

点击下方链接可以直接观看电机直播及直播答疑电堂​wx18257eb0e8c82435.h5.xiaoe-tech.com电堂​wx18257eb0e8c82435.h5.xiaoe-tech.com本次实战问答只讨论同步电机&#xff0c;不对步进电机做特别的讨论&#xff0c;希望有助于大家进行电机开发或者是电机应用。Q1&#xff1a;…

android动画编辑软件,ALM视频动画编辑

ALM视频动画编辑app手机端中最为专业,强大的视频编辑工具,丰富的功能堪比pc级别,并且实用流畅不卡顿,操作简单明了,上手容易,视频效果出色,更多丰富素材内容使用&#xff01;下载ALM视频动画编辑app开始体验吧&#xff01;ALM视频动画编辑介绍ALM视频动画编辑神器为你提供非常高…

openhub_介绍OpenHub框架

openhub本文介绍OpenHub框架 -基于Apache Camel的新的开源集成解决方案。 本文回答了一些问题&#xff0c;为什么您应该关心另一个集成框架&#xff0c;强弱属性以及如何使用OpenHub启动新项目。 OpenHub框架是Apache Camel&#xff0c;但经过改进…… 当然&#xff0c;您只能…

spring 导出csv_Spring批处理CSV处理

spring 导出csv总览 我们将讨论的主题包括使用Spring Batch进行批处理的基本概念&#xff0c;以及如何将数据从CSV导入数据库。 0 – Spring Batch CSV处理示例应用程序 我们正在构建一个应用程序&#xff0c;演示用于处理CSV文件的Spring Batch的基础。 我们的演示应用程序将…

python强制结束函数_为什么Python没有 main 函数?终于有人给出了正确答案!

毫无疑问&#xff0c;Python中没有所谓的 main 入口函数&#xff0c;但在网上经常有文章提到“Python中的main函数”和“建议编写main函数”等。他们的目的可能是模仿真实的 main 函数&#xff0c;但是经常有很多人被误导&#xff08;或误解&#xff09;并编写非常繁琐的代码。…

MacOS 如何显示/隐藏文件

文章目录显示/隐藏文件快捷键修改“访达”属性修改文件隐藏属性设置特殊文件名实现隐藏使用命令设置文件隐藏属性显示/隐藏文件 快捷键 按下 Shift Command . 可以显示隐藏型的文件&#xff0c;再按下 Shift Command . 则不显示隐藏型的文件 修改“访达”属性 defaults…

不相关子查询的工作方式是_课题组工作|Nucleic Acids Research|基于表达密度谱的特征子空间分离及相关单细胞转录组分群新算法...

大家好&#xff01;为大家分享本课题组近期发表在Nucleic Acids Research的文章&#xff0c;题目为 “Entropy subspace separation-based clustering for noise reduction (ENCORE) of scRNA-seq data”&#xff0c;文章提出了一种基于表达密度谱的特征选择方法&#xff0c;能…

java 9 module_Java 9:欢迎来到Module World

java 9 moduleJava 9已于9月21日正式发布&#xff0c;Eclipse从Eclipse Oxygen.1a&#xff08;4.7.1a&#xff09;支持Java 9&#xff0c;让我们进入模块世界。 从此处下载Java 9&#xff0c;并将其添加到Eclipse Installed JRE中&#xff0c;如下所示 就是这样&#xff0c;…

Mac OS 通过配置窗口来连接远程主机

点击连接后&#xff0c;就跳到命令终端窗口中&#xff0c;输入远程主机 root 用户的登录密码&#xff0c;则完成连接。

温度补偿计算公式_一种工业用温度测量模块的设计与实现

一种工业用温度测量模块的设计与实现罗伯特侯0 引言温度是工业生产中最重要的参数之一&#xff0c;因此温度测量设备在工业领域不可或缺。热电偶是工业场合中应用最广泛的温度传感器,它的主要特点是测温范围宽,价格低&#xff0c;同时结构简单,坚固耐用。笔者采用高集成度、高精…

微博如何发订阅消息_微信订阅号或将大变天,微博8年前就这么干了...

近日&#xff0c;微信又偷偷的做了一个大胆的尝试&#xff0c;将公众号消息排序改版&#xff0c;不再按照一直以来的“时间轴展示”&#xff0c;而是学起了微博&#xff0c;变成了“智能排序”。微信的“阅读效率优化”排序不过可能是为了独树一帜&#xff0c;微信管这种排序方…

indesign如何画弧线_彩铅画入门教程,如何给独角兽设计一款好发型

戳这里 → 查看“爱蜜干货文章目录”本次综合训练的目的1&#xff0e;挖掘你的绘画感和想象力&#xff0c;彩色鬃毛色彩大家可以自由发挥哦&#xff01;2.练习彩铅的长线条&#xff0c;现在练习的长条还是比较简单的&#xff0c;下次综合训练我们还会练习更加复杂的3.彩铅这种画…

微型计算机作为载体的部件是,大工11秋《计算机应用基础》辅导资料二

计算机应用基础辅导资料二主题&#xff1a;计算机基础知识的辅导资料学习时间&#xff1a;2011年10月10日&#xff0d;10月16日内容&#xff1a;这周我们主要学习课件&#xff0e;&#xff0e;第二章计算机的基础知识&#xff0c;本章的学习要求及需要掌握的重点内容如下&#…

markdown如何设置图片大小_Gitee(码云)实现免费 Markdown 图床

“阅读本文大概需要 6 分钟前言Markdown是一种易于上手的轻量级标记语言&#xff0c;由于其目的在于注重文字内容而不是排版&#xff0c;目前很受大家欢迎&#xff0c;写完一篇文档可以直接复制到其他各大平台上&#xff0c;不用担心格式字体等混乱问题但是文章中如果引用了某个…