blob: cceca0b511f1d3879ce54aec076f86bf113fb7c4 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "">
<!-- /*******************************************************************************
* Copyright (c) 2000, 2005 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/ -->
<link rel="stylesheet" type="text/css" href="../../org.eclipse.wst.doc.user/common.css" />
<title>Dynamic Web projects and applications</title>
<body id="ccwebprj"><a name="ccwebprj"><!-- --></a>
<h1 class="topictitle1">Dynamic Web projects and applications</h1>
<div><p>There are two types of Web projects: dynamic and <a href="ccstatic.html">static</a>. Dynamic web projects can contain
dynamic J2EE resources such as servlets, JSP files, filters, and associated
metadata, in addition to static resources such as images and HTML files. Static
web projects only contains static resources. When you create Web projects,
you can include cascading style sheets and JSP tag libraries (for dynamic
Web projects), so that you can begin development with a richer set of project
<p>Dynamic Web projects are always imbedded in Enterprise Application projects.
The wizard that you use to create a dynamic Web project will also create an
Enterprise Application (EAR) project if it does not already exist. The wizard
will also update the <span class="filepath">application.xml</span> deployment descriptor
of the specified Enterprise Application project to define the Web project
as a module element. If you are importing a WAR file rather than creating
a dynamic Web project new, the WAR Import wizard requires that you specify
a Web project, which already requires an EAR project. </p>
<p>J2EE conventions may represent extra overhead if you only want to create
a static, content-based Web application, which contains no dynamic files,
such as JSP files or servlets. In this case, when you need only the most basic
Web project, you might want to use the <i>static</i> Web project type (see <a href="ccstatic.html">Static Web projects</a>). Note that static Web projects
can be converted to dynamic Web projects by selecting <b>Convert to a Dynamic
Web Project</b>, from the Project menu.</p>
<p>The J2EE model, and more specifically, the <cite>Sun Microsystems Java¬ô Servlet
2.3 Specification</cite>, defines a Web application directory structure that
specifies the location of Web content files, class files, class paths, deployment
descriptors, and supporting metadata. The Web project hierarchy mirrors that
of the Web application created from a project. In the workbench, you can use
the <span>New Web Project</span> wizard to create a new Web project.</p>
<div class="p">The main project folder contains all development objects related to a Web
application. The Web content folder contains the elements of the project necessary
to create a Web application. This folder structure maps to the Web application
archive (WAR) structure defined by Sun Microsystems.. The following default
elements are located in the Web project folder hierarchy: <div class="note"><span class="notetitle">Note: </span>In the Project
Explorer view, Web projects are filtered into folder nodes to customize the
display of Web resources for easy management during development. For information
on the filtered structure, see <a href="../../org.eclipse.wst.webtools.doc.user/topics/ccwebvw.html">Project Explorer view</a>.</div>
<dl><dt class="bold">Web Deployment Descriptor</dt>
<dd>The standard Web application deployment descriptor (the <span class="filepath">web.xml</span> file).</dd>
<dt class="bold">JavaSource</dt>
<dd>Contains the project's Java source code for classes, beans, and
servlets. When these resources are added to a Web project, they are automatically
compiled and the generated files are added to the WEB-INF/classes directory.
The contents of the source directory are not packaged in WAR files unless
an option is specified when a WAR file is created. <div class="note"><span class="notetitle">Note: </span>Though the default
name given to the folder is JavaSources, you can change the name through the
Project Explorer view or through the Preferences page available by selecting <span class="menucascade"><span class="uicontrol">Window</span> &gt; <span class="uicontrol">Preferences</span> &gt; <span class="uicontrol">Web
Tools</span> &gt; <span class="uicontrol">New J2EE Project</span></span>.</div>
<dt class="bold">imported_classes folder</dt>
<dd>This folder may be created during a WAR import, and contains class files
that do not have accompanying source. The <span class="uicontrol">imported_classes</span> folder
is a Java classes
folder; Java classes folders can also be created using the
Web project <span class="uicontrol">Java Build Path</span> properties page.</dd>
<dt class="bold">WebContent folder</dt>
<dd>The mandatory location of all Web resources, including HTML, JSP, graphic
files, and so on. If the files are not placed in this directory (or in a subdirectory
structure under this directory), the files will not be available when the
application is executed on a server. The Web content folder represents the
contents of the WAR file that will be deployed to the server. Any files not
under the Web content folder are considered development-time resources (for
example, .java files, .sql files, and .mif files), and are not deployed when
the project is unit tested or published. <div class="note"><span class="notetitle">Note: </span>Though the default name given
to the folder is <span class="filepath">WebContent</span>, you can change the name
in the Project Explorer by right-clicking the folder and selecting <span class="uicontrol">Rename</span> or
from the Web page of the project's Properties dialog. In a dynamic Web project,
changing the folder name will update the Java build output directory. You can change
the preference for the default folder name to be applied when creating new
Web projects by selecting <span class="menucascade"><span class="uicontrol">Window</span> &gt; <span class="uicontrol">Preferences</span> &gt; <span class="uicontrol">Web Tools</span> &gt; <span class="uicontrol">New J2EE Project</span></span>.</div>
<dt class="bold">META-INF</dt>
<dd>This directory contains the <span class="filepath">MANIFEST.MF</span> file, which
is used to map class paths for dependent JAR files that exist in other projects
in the same Enterprise Application project. An entry in this file will update
the run-time project class path and Java build settings to include the referenced
JAR files.</dd>
<dt class="bold">theme</dt>
<dd>The suggested directory for cascading style sheets and other style-related
<dt class="bold">WEB-INF</dt>
<dd>Based on the <cite>Sun Microsystems Java Servlet 2.3 Specification</cite>,
this directory contains the supporting Web resources for a Web application,
including the <span class="filepath">web.xml</span> file and the classes and lib directories.</dd>
<dt class="bold">/classes</dt>
<dd>This directory is for servlets, utility classes, and the Java compiler
output directory. The classes in this directory are used by the application
class loader to load the classes. Folders in this directory will map package
and class names, as in: <samp class="codeph">/WEB-INF/classes/com/mycorp/servlets/MyServlet.class</samp>.<p>Do
not place any .class files directly into this directory. The .class files
are placed in this directory automatically when the Java compiler compiles
Java source files that are in the <span class="filepath">Java Resources</span> directory.
Any files placed directly in this directory will be deleted by the Java compiler
when it runs.</p>
<dt class="bold">/lib</dt>
<dd>The supporting JAR files that your Web application references. Any classes
in .jar files placed in this directory will be available for your Web application</dd>
<dt class="bold">Libraries</dt>
<dd>The supporting JAR files that your Web application references. This folder
mirrors the content of the lib folder. In addition, Web Library Projects,
which are "virtual" JAR files that do not physically reside in the Web project,
but are associated with Java projects elsewhere in your workspace,
are included in this folder. They are packaged with your project when you
export the application's WAR file.</dd>
<div class="note"><span class="notetitle">Note: </span>A library entry on the Java build path will remain there unless
the actual JAR file is deleted from the WEB-INF/lib folder. If you remove
a library path entry but not the JAR file, the library entry will be re-added
to the path automatically.</div>
<div class="p"><b>Related concepts</b> <p><a href="ccwtover.html">Web application overview</a><br />
<br />
<a href="cwebdevelopmenttools.html">Web development tools</a><br />
<br />
<a href="ccstatic.html">Static Web projects</a><br />
<br />
<a href="cwwarovr.html">Web archive (WAR) files</a></p>