| <?xml version="1.0" encoding="UTF-8"?> |
| <!DOCTYPE html |
| PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
| <html> |
| <head> |
| <!-- /******************************************************************************* |
| * 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 |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * 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> |
| </head> |
| <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 |
| |
| resources.</p> |
| <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> > <span class="uicontrol">Preferences</span> > <span class="uicontrol">Web |
| |
| Tools</span> > <span class="uicontrol">New J2EE Project</span></span>.</div> |
| </dd> |
| <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> > <span class="uicontrol">Preferences</span> > <span class="uicontrol">Web Tools</span> > <span class="uicontrol">New J2EE Project</span></span>.</div> |
| </dd> |
| <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 |
| |
| objects.</dd> |
| <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> |
| </dd> |
| <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> |
| </dl> |
| <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> |
| <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> |
| </div> |
| </div> |
| </body> |
| </html> |