有两种类型的 Web 项目:动态和静态。动态 Web 项目除了可以包含静态资源(例如,图像和 HTML 文件)外,还可包含动态 J2EE 资源(例如,servlet、JSP 文件、过滤器和相关联的元数据)。静态 Web 项目只能包含静态资源。当创建 Web 项目时,可以包括级联样式表和
JSP 标记库(适用于动态 Web 项目),以便可以使用一组更丰富的项目资源来开始进行开发。
动态 Web 项目总是嵌入在企业应用程序项目中。如果尚不存在企业应用程序(EAR)项目,则用来创建动态
Web 项目的向导还将创建一个企业应用程序(EAR)项目。向导还将更新指定企业应用程序项目的
application.xml 部署描述符,以将 Web 项目定义成模块元素。如果要导入
WAR 文件而不是创建一个新的动态 Web 项目,则“WAR 导入”向导需要您指定 Web 项目(该项目也需要 EAR 项目)。
如果只需要创建基于内容的静态 Web 应用程序(它不包含任何动态文件,如 JSP 文件或 servlet),则 J2EE 约定可能需要额外开销。在这种情况下,当只需要最基本的
Web 项目时,可能需要使用静态 Web 项目类型(请参阅 静态 Web 项目)。注意,可通过从“项目”菜单中选择转换为动态 Web 项目来将静态 Web 项目转换为动态 Web 项目。
J2EE 模型(更具体地说,是 Sun Microsystems Java™ Servlet 2.3 规范)定义
Web 应用程序目录结构,该目录结构指定 Web 内容文件、类文件、类路径、部署描述符和支持元数据的位置。Web 项目层次结构反映出通过项目创建的 Web
应用程序的层次结构。在工作台中,可以使用新建 Web 项目向导来创建新的 Web 项目。
主项目文件夹包含与 Web 应用程序相关的所有开发对象。Web content 文件夹包含创建 Web 应用程序所必需的项目的元素。此文件夹结构映射至由 Sun Microsystems 定义的 Web 应用程序归档(WAR)结构。下列缺省元素位于 Web 项目文件夹层次结构中:
注: 在“项目资源管理器”视图中,会将 Web 项目过滤到文件夹节点中以定制 Web 资源的显示,以便在开发期间易于管理。有关过滤结构的信息,请参阅
“项目资源管理器”视图。
- Web 部署描述符
- 标准 Web 应用程序部署描述符(web.xml 文件)。
- Java 源代码
- 包含项目的类、Bean 和 servlet 的 Java 源代码。将这些资源添加到 Web 项目中时,会自动对它们进行编译,并且生成的文件会添加到
WEB-INF/classes 目录中。除非在创建 WAR 文件时指定了选项,否则,不会将源目录的内容打包在
WAR 文件中。
注: 虽然指定给该文件夹的缺省名称为 JavaSources,但是可以通过在“项目资源管理器”中右键单击该名称并单击来更改该名称。
- imported_classes 文件夹
- 此文件夹可以在 WAR 导入期间创建,它包含不具有伴随源的类文件。imported_classes 文件夹是一个 Java
类文件夹;Java 类文件夹也可以使用 Web 项目 Java 构建路径属性页来创建。
- WebContent 文件夹
- 所有 Web 资源(包括 HTML、JSP 和图形文件等等)的指定位置。如果这些文件不是放在此目录(或此目录下面的子目录结构)中的,则在服务器上执行应用程序时这些文件将不可用。Web content 文件夹表示将部署至服务器的 WAR 文件的内容。不在
Web content 文件夹下的任何文件都被认为是开发时资源(例如,.java 文件、.sql 文件和 .mif 文件),并且在对项目进行单元测试或发布项目时不会部署这些文件。
注: 虽然指定给该文件夹的缺省名称为 WebContent,但可以在“项目资源管理器”中通过右键单击该文件夹并选择重构重命名或从项目的“属性”对话框的
Web 页面中来更改该名称。在动态 Web 项目中,更改文件夹名将会更新 Java 构建输出目录。
- META-INF
- 此目录包含 MANIFEST.MF 文件,此文件用来映射存在于同一企业应用程序项目的其他项目中从属
JAR 文件的类路径。此文件中的条目将更新运行时项目类路径和 Java 构建设置以包括所引用的 JAR 文件。
- theme
- 用于级联样式表和其他与样式相关的对象的建议目录。
- WEB-INF
- 根据 Sun Microsystems Java Servlet 2.3 规范,对于 Web 应用程序,此目录包含支持的 Web 资源,包含 web.xml 文件以及 classes 和 lib 目录。
- /classes
- 此目录用于 servlet、实用程序类以及 Java 编译器输出目录。应用程序类装入器使用此目录中的类来装入类。此目录中的文件夹将映射包名和类名,如 /WEB-INF/classes/com/mycorp/servlets/MyServlet.class 中所示。
请不要直接将任何 .class 文件放入此目录中。当 Java 编译器编译 Java 资源目录中的 Java 源文件时,会自动将 .class 文件放入此目录中。Java 编译器运行时,它会删除直接放入此目录中的任何文件。
- /lib
- Web 应用程序引用的支持 JAR 文件。放在此目录中的
.jar 文件中的所有类都可用于 Web 应用程序。
- 库
- Web 应用程序引用的支持 JAR 文件。此文件夹反映了
lib 文件夹的内容。另外,“Web 库项目”(它们是并不真正地存在于 Web 项目中但与工作空间中其他位置处的 Java 项目相关联的“虚拟”JAR 文件)包括在此文件夹中。当导出应用程序的 WAR 文件时,Web 库项目与您的项目打包在一起。
注: 除非从 WEB-INF/lib 文件夹中删除了实际的 JAR 文件,否则,Java 构建路径上的库条目将保留在该处。如果除去库路径条目但是不除去 JAR 文件,则库条目将会自动重新添加至该路径。