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 工程目錄結構截圖
略
本地的工作空間的工程目錄
略
總結
以上是生活随笔為你收集整理的Java Web工程结构_项目结构的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: axure怎么读(Axure怎么读英文发
- 下一篇: IntelliJ IDEA for Ma