WEB-INF in Java EE Web Applications
In Java EE web applications, the WEB-INF folder plays a crucial role in organizing application resources separately from the public document tree.
Protected Directory
As defined by the Servlet 2.4 specification, WEB-INF is a special directory that is not directly visible to clients. Its contents are not directly accessible as static resources, ensuring protection of sensitive information.
Content Accessibility
However, resources within WEB-INF are accessible to the web application's resource loader through getResource and getResourceAsStream. These methods allow servlets to read and process resources like configuration files, JSP tags, and views.
Commonly Stored Resources
Resources often stored in WEB-INF include:
Project Structure vs. WAR File Structure
It's important to distinguish between the project structure and the resulting WAR file structure. While the project structure may resemble the WAR file structure to some extent, the transition is managed by a build process, such as Apache Maven. Maven defines mappings between project resources and their placement within the WAR file, accounting for compilation and filtering.
Build Process Integration
The WEB-INF/classes folder contains compiled Java classes and resources loaded by the Classloader at runtime. The WEB-INF/lib folder holds JAR files included as dependencies. In Maven projects, dependency management ensures the correct placement of JAR files in the WEB-INF/lib folder, eliminating the need for a separate lib folder in the project structure.
The above is the detailed content of What is the Role and Purpose of the WEB-INF Directory in Java EE Web Applications?. For more information, please follow other related articles on the PHP Chinese website!