Java Web工程结构_项目结构

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 工程目录结构截图

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

liaowenxiong
关注 关注
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JavaWeb项目工程结构介绍
Alphamilk的博客
08-06 2226
了解目录大致作用,1 .idea下的目录(存储项目配置的目录),2.out目录(编译输出目录),3.src目录(源代码目录),4.web目录( Web 相关资源文件的目录)
(转)导入代码时eclipse的src目录变为
qq_42538097的博客
03-21 756
附上原文链接https://blog.csdn.net/kang_hui/article/details/12157175 问题描述:正确的名为 project           -src             -com.google.zxing1             -com.google.zxing2 现在成了: project  ...
导入代码时eclipse的src目录变为
weixin_34244102的博客
12-12 302
2019独角兽企业重金招聘Python工程师标准>>> ...
1_认识JAVAWEB项目结构
wei7a7a7a的博客
03-10 77
classes java字节码目录。-web.xml项目的配置文件。-lib jar目录。-WEB-INF 受保护的资源目录。-project项目的根目录。-静态资源文件/jsp。
简单JavaWeb项目代码结构(Entity、Dao、Util、Service、Controller)
stony3的专栏
03-21 5116
JavaWeb项目代码结构
java Web项目的目录结构说明
03-27
myEclipse 创建java Web项目的目录结构说明
shopping-web.zip_shopping_web 购物_购物 java web_购物网站
09-24
1. **工程源码**:表明含了项目的完整源代码,可能括HTML、CSS、JavaScript、Java文件等,开发者可以通过这些源码理解整个项目结构和实现细节。 2. **带数据库**:说明该网站与数据库有交互,用于存储商品信息...
EIM.rar_freddfd12577_java项目_项目 源码
09-24
标题中的"EIM.rar_freddfd12577_java项目_项目 源码"表明这是一个Java编程语言开发的企业级项目,源代码可能含了整个项目结构和功能实现。"EIM"可能是该项目的缩写,可能代表“企业信息系统”或者其他的IT术语。...
java_web_msu_course:MSU 2021 Java网络课程
03-22
这个"java_web_msu_course"项目,根据标题和描述,显然属于密歇根州立大学(MSU)2021年软件工程课程的一部分,旨在教授学生如何创建一个管理界面的版本3。下面将详细介绍相关的Java Web开发技术及其应用。 1. **...
eclipse java工程改造为java web工程详解
08-30
Java工程改造为Java Web工程需要修改项目的配置文件和目录结构括`.project`文件和`.settings`文件夹下的文件。通过按照上述步骤进行修改,可以将Java工程成功地转换为Java Web工程,并使其能够部署和运行在Web...
JavaWEB(三层架构)
m0_64863860的博客
04-13 754
目录 软件分层模式 1.为什么需要分层 业务处理的代码与JSP代码混在一起,不易于阅读,不易于代码维护,采用三层软件设计架构后,软件系统在可扩展性和可复用性方面得到极大提高, 2.软件设计中的分层模式 分层模式是最常见的一种架构模式;甚至可以说分层模式是很多架构模式的基础。 3.分层 ①分层模式是将解决方案的组件分隔不同的层中(分工合作,细化) ②每一层的组件应保持内聚性(部门之间常联系) ③每一层都应与其下面的各层保持松耦合 4.三层架构:表示层、业务逻辑层、数据访问层 ...
Java web工程目录结构中src、Libraries、build、WebContent、META-INF、WEB-INF的作用简述
qq_65055255的博客
03-28 2455
WebContent:项目访问的默认路径,eclipse会将该目录下的所有文件发送到tomcat的web apps文件夹下。META-INF:用来配置应用程序、拓展程序、类加载器和服务manifest.mf文件,在用jar时自动生成。WEB-INF:Javaweb应用的安全目录,客户端无法访问。WEB-INF/classes:存放编译后的class文件。WEB-INF/web.xml:项目全局配置文件。WEB-INF/lib:存放项目使用的jar。src:存放Java源程序。
java web 项目结构
最新发布
qq_31397725的博客
03-23 1991
总结来说,Java Web项目结构是一个层次分明的布局,它确保了开发、编译、部署和运行的有序进行,同时也方便了开发者对项目进行管理和维护。文件时,最终的结构会将所有必需的资源和类文件整合在一起,并按照上述结构组织,以便于部署到Web容器(如Tomcat、Jetty等)上运行。.js, 图片文件 (
java非jsp_在Java代码(非JSP及Action,Servlet,Controller)中获得WebRoot的物理路径
weixin_34463228的博客
02-23 84
在开发Web方面的应用时, 经常需要获取 服务器中当前WebRoot的物理路径;如果是Servlet , Action , Controller, 或则Filter , Listener , 拦截器等相关类时, 我们只需要获得ServletContext,然后通过ServletContext.getRealPath("/")来获取当前应用在服务器上的物理地址.如果在类中取不到ServletCont...
JavaWeb中文件的上传与下载
醉瑾_的博客
04-22 273
文件的上传和下载文件的上传1.创建项目,导入如下两个2.在WebContent中创建上传表单form.jsp3.创建上传Servlet。4.运行结果:文件的下载说明:1.URLEncoder类2.创建文件夹,放入图片1.创建download.jsp2.创建DownloadServlet类3.运行结果 文件的上传 1.创建项目,导入如下两个 2.在WebContent中创建上传表单form.jsp form表单中 enctype属性值需要设置为 enctype=“multipart/form-dat
JavaWebJavaWeb技术架构演进
栗筝i的博客
11-18 3695
Java Web,是用 Java 技术来解决相关web互联网领域的技术栈。web 括:web 服务端和 web 客户端两部分。Java 在客户端的应用有 Java Applet,不过使用得很少,Java 在服务器端的应用非常的丰富,比如 Servlet,JSP、第三方框架等等。Java 技术对 Web 领域的发展注入了强大的动力。 本篇内容括:JavaWeb 简介、JavaWeb 技术架构演进的各个阶段,即 JavaWeb-Servlet 阶段,JavaWeb-MVC 阶段(SSM/SSH)以及 Ja
javaWeb完整项目
weixin_70320260的博客
02-27 5887
JavaWeb,是用Java技术来解决相关web互联网领域的技术总和。web括:web服务器和web客户端两部分。Java在客户端的应用有java applet不过现在使用的很少,Java在服务器端的应用非常的丰富,比如Servlet,JSP和第三方框架等等。Java技术对Web领域的发展注入了强大的动力。
JavaWeb基础Jsp
Grass_roots1的博客
10-12 132
JSP 什么是jsp? Java Server Page 本质就是Servlet;但servlet在生成html页面是非常麻烦,为了解决此问题,出现了jsp; JSP本质上是servlet,但代码更像html;JSP必须运行在容器中 如何编写一个JSP JSP文件应该放在WEBContent下; JSP如何运行的? JSP必须放在WEB容器中 JSP在运行前先被JSP引擎翻译成Servlet 然后再将Servlet...
java改造成maven_maven的java web工程改造为springboot项目
06-06
1. 将项目转换为Maven项目:在项目根目录下创建pom.xml文件,添加相关Maven依赖和插件,将项目结构改为Maven标准结构。 2. 将项目中的web.xml文件替换为Spring Boot的配置文件application.properties/application....

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • 查询英文缩写形式(缩写词)的网站工具梳理 72500
  • MySQL数据库的数据类型decimal详解 70689
  • 命令(CMD)终端的清屏(清除/清空)命令/快捷键 63802
  • macOS下配置环境变量/查看环境变量 54866
  • Linux 启动/重启/停止 MySQL 数据库的命令 53490

分类专栏

  • 数据库 28篇
  • 产品设计 12篇
  • Maven 1篇
  • Hibernate 7篇
  • VIM/VI 16篇
  • 文件上传/下载 3篇
  • Axure RP
  • Mac 24篇
  • 各种规范 7篇
  • IntelliJ IDEA for Mac 22篇

最新评论

  • 关于压缩工具 7z(7-zip) 如何创建自释放档案(选项 -sfx 的解读)

    qq_17755303: copy /b 7zS.sfx + config.txt + archive.7z archive.exe 来个大佬解释一下windows命令行 copy不动怎能么办?

  • JDK 9.0.4 报错:程序包 com.sun.xml.internal.fastinfoset.stax.events 不存在/不可见

    二两cpp: 求教一下,没看懂

  • Linux 命令之 eval -- 对参数执行两次解释

    何浩钧: 这里写错了吧表情包

  • Linux 命令之 eval -- 对参数执行两次解释

    何浩钧: 说明: 第 1 次扫码,获取变量 myfile 的值进行替换,结果就是:eval echo cat text.txt; 第 2 次扫码,就是按 eval 后面的参数本身的含义来运行,发现 2 个命令:echo 和 cat,于是先执行 cat 得到结果:hello shell world!,再执行命令 echo 输出后面的内容到标准输出,结果就是:hello shell world!。

  • 查询英文缩写形式(缩写词)的网站工具梳理

    GuanXingZhe1017: 国内的第一个已经不能用了

大家在看

  • 踩了很多坑!一文教你配置 Tomcat 9.0.19 + Java 12.0.2,并启用 SSL —— 以 Windows Server 2019 平台为例 108
  • Linux下安装JDK、Tomact、MySQL以及Nginx的超详细步骤 537
  • 轻量级文本编辑器 | Notepad-- v2.17 官方版 388
  • Java 零基础入门学习(小白也能看懂!) 431
  • shell脚本快速入门之-----数组 694

最新文章

  • 什么是回归测试
  • 系统集成测试(SIT)/系统测试(ST)/用户验收测试(UAT)/冒烟测试
  • MacBook Pro Apple M2 Max安装MySQL-8.0.33
2023年7篇
2022年198篇
2021年757篇
2020年165篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

PHP网站源码大鹏网站搜索优化平湖网站建设设计民治网站设计南山关键词按天扣费广州模板推广福永百搜词包宝安seo网站优化木棉湾百姓网标王宝安网站优化按天扣费民治网站推广工具东莞优秀网站设计坪地seo网站推广龙华SEO按天扣费坂田关键词排名南澳阿里店铺运营平湖网站优化软件丹竹头网站优化西乡百姓网标王推广南山网站优化民治建网站双龙网站建设设计广州网站推广系统爱联网站改版宝安seo网站推广大浪建网站坪地网站优化广州至尊标王丹竹头网站设计模板光明网站开发南山如何制作网站歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

PHP网站源码 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化