按照 Java EE 规范的规定,一个典型的 Web 应用程序有四个部分:
1. 公开目录 ;
2. WEB-INF/web.xml 文件,发布描述符(必选) ;
3. WEB-INF/classes 目录,编译后的 Java类文件(可选) ;
4. WEB-INF/lib 目录,Java类库文件(*.jar) (可选) ;
公开目录存放所有可以被用户的访问的资源, 包括 .html, .jsp, .gif, .jpg, .css, .js, .swf 等等。
WEB-INF 目录是一个专用区域, 容器不能把此目录中的内容提供给用户。 这个目录下的文件只供容器使用,里面包含不应该由客户直接下载的资源,例如: Servlet(这些组件包括应用程序逻辑以及对其他资源如数据库的可能访问), Web应用程序中servlet可直接访问的其他任何文件,在服务器方运行或者使用的资源(如 Java类文件和供 servlet 使用的 JAR文件),由您的应用程序生成的临时文件,,发布描述符以及其它任何配置文件。 这些资源是专用的, 因此只能由它们自己的 Web应用程序及容器访问。 特别地,JSP/Servlet 程序文件也能通过 ServletContext 访问到这个目录下的文件,例如 JSP 中可以通过application.getRealPath(“/WEB-INF/web.xml”) 访问到发布描述符文件的路径。 Web容器要求在你的应用程序中必须有 WEB-INF 目录。
注意: 如果你的 Web 应用程序中没有包含这个目录, 它可能将无法工作
WEB-INF 中包含着发布描述符, 一个 classes 目录和一个 lib目录, 以及其它内容。
发布描述符(deployment descriptors)是 J2EE Web 应用程序不可分割的一部分(也就是说是它的最小部分, 必不可缺的一部分)。 它们在应用程序发布之后帮助管理 Web 应用程序的配置。 对于Web 容器而言, 发布描述符是一个名为 web.xml 的 XML 文件, 存储在 Web 应用程序的 /WEB-INF目录下。
发布描述符有多种用途:
• 为 Servlet 和 Web 应用程序提供初始化参数 这使我们的Web应用程序中的硬性编写的代码的初始化值更少。 例如常见的 <param-name>, <param-value>标记, 就可以为
Servlet 提供参数, 这个参数可以在 init() 方法中加载。 Struts 的 ActionServlet 也是通过这种方式来找到它们需要的配置文件 struts-config.xml 的位置, 从而加载并分析它,
来初始化 Struts 框架用到的各种 FromBean, Action, Forward等。
• Servlet/JSP 定义 可以为 Web 应用程序中的每个 Servlet 或者预编译的 JSP 网页提供定义。 包括Servlet/JSP的名字, Servlet/JSP 的类以及一个可选的描述。
• Servlet/JSP 映射 Web容器使用这些信息把进入请求映射到 servlet 和 JSP 网页。
• MIME类型 由于每个 Web 应用程序可以包含多种内容类型, 因此我们可以在发布描述符中为每一种类型指定 MIME 类型。
• 安全性 我们可以使用发布描述符来管理应用程序的访问控制。 例如, 可以指定我们的Web应用程序是否需要登录, 如果需要的话, 应该使用什么登录页面, 以及用户
会作为何种角色。
发布描述符还可以用来自定义其他元素, 包括欢迎网页, 出错网页, 会话配置等等。
classes 目录用于存储编译过的 servlet 及其它程序类, 例如 JavaBean。 如果一个程序有打包的 JAR 文件(例如一个第三方 API 打包成了一个 JAR 文件, 如 Struts 框架的类库struts.jar, MySQL 的数据库 JDBC 驱动程序文件 mysql-connector-java-3.1.11-bin.jar 等), 那么它们可以被复制到lib目录中(如果解压缩这些压缩包的话, 请将它们复制到classes目录中)。 Web 容器使用这两个目录来查找 servlet 及其他相关类, 也就是说, 容器的类装入器会自动查看 classes 目录, 以及 lib目录下的 JAR文件。 这就意味着你不需要明确的把这些类和 JAR文件添加到 CLASSPATH中。 Web容器自动将这两个目录中的文件加入 Web应用的类路径中。
分享到:
相关推荐
这个压缩包“Java EE Web编程(Eclipse平台)源文件”显然是配套李芝兴著作的4-18章源代码,帮助读者更好地理解和实践书中所讲解的内容。 在Java EE Web编程中,我们通常涉及以下知识点: 1. **Servlet**:Servlet...
在这个Java EE课程设计中,我们将探讨如何利用Java技术栈来创建一个智能XX管理系统,这是一个基于Java Web的项目,其核心技术和工具包括SQL Server数据库、Java Beans组件、以及Servlet技术。 首先,**SQL Server...
在项目资源管理器(Package Explorer)中,你会看到新项目结构,包括以下几个关键部分: - `src/main/java`: 存放Java源代码,通常按包结构组织。 - `src/main/webapp`: Web应用的根目录,包含HTML、CSS、...
本资源以Eclipse作为集成开发环境,结合Spring、Struts和Hibernate这三个核心框架,构建了一个完整的Java Web项目案例。下面将对这些知识点进行详细的阐述。 1. **Java EE**:全称为Java Platform, Enterprise ...
1. **Servlet**: Servlet是Java EE中的核心组件,它是一个Java类,用于扩展服务器的功能。Servlet接口提供处理HTTP请求和响应的方法,是动态网页和Web服务的基础。在期末考试中,你可能需要了解Servlet的生命周期、...
在Eclipse Java EE IDE for Web Developers中安装Jad插件是一项重要的开发任务,因为Jad是Java反汇编器(Java decompiler)的缩写,它允许开发者查看和理解已编译的Java类文件的原始源代码。这对于调试、逆向工程...
`web-jsptaglibrary_2_1.xsd`是一个特定于Java EE的XML Schema,用于定义Web应用中的JSP标签库(Tag Libraries)的规范。JSP Tag Libraries是可重用的代码片段,可以增强JSP页面的功能,提高代码的可维护性和可读性...
2. **Web项目结构**:一个典型的Java Web项目通常包含Web-INF目录、src目录、lib目录等。Web-INF下有web.xml(部署描述符),控制项目的启动和配置。src目录存储Java源代码,包括业务逻辑、控制器和服务层等。 3. *...
Java EE Web 投票系统是一种基于Java企业版(Java EE)技术构建的Web应用程序,用于实现在线投票功能。... 在Java EE平台上开发Web投票...通过这样的项目,开发者可以深入理解和实践Java EE平台的各种特性和最佳实践。
2. **MVC模式**:Model-View-Controller模式是Java Web项目中常见的架构模式,它将业务逻辑、数据和用户界面分离,使得代码结构更加清晰,易于维护和扩展。 3. **Java EE框架**:如Spring框架提供了依赖注入、AOP...
本资源“精通Java EE项目案例--基于Eclipse Spring Struts Hibernate (例子中的初始化SQL)”正是针对这样的集成环境提供了一套完整的数据库初始化语句,帮助开发者快速构建一个功能完善的Web应用。 首先,让我们...
这本书详细介绍了Java EE中的各种设计模式,以及它们在实际开发中的应用。 在第一部分“Introduction to Java EE Design Patterns”中,书中首先提供了一个设计模式的简要概述。设计模式通常分为创建型、结构型和...
1. **项目结构**:源码会展示一个标准的Java EE项目结构,包括src/main目录下的java、resources、webapp等子目录,以及相关的pom.xml(Maven)或build.gradle(Gradle)配置文件。 2. **Spring配置**:在src/main/...
首先,Struts是Java EE中的一个MVC(Model-View-Controller)框架,它的主要任务是分离业务逻辑和展示逻辑。Struts通过控制器Servlet协调用户的请求,并将处理结果传递给视图进行展示。模型部分通常包含业务对象和...
通过研究这些源码,开发者可以深入理解如何在实际项目中应用SSH框架,如何组织项目结构,如何进行数据库设计,以及如何处理并发、安全、性能优化等问题。 每个项目可能包含了以下部分: - **Model**:业务实体类,...
每个组的代码可能代表了Java EE中的不同层次或特定技术的实例,通过深入研究这些源代码,开发者可以更好地理解和学习如何在实际项目中运用Java EE技术。在分析和学习这些代码时,要注意代码的结构、设计模式、异常...
7. **开发流程**: 开发一个完整的Web项目通常涉及需求分析、系统设计、编码实现、测试调试、部署上线等多个阶段。敏捷开发和持续集成/持续部署(CI/CD)等现代开发实践可能也被运用,以提高开发效率和软件质量。 8....
在MyEclipse中,你可以方便地创建、运行和调试Java Web项目,包括编写源代码、管理数据库连接以及部署到Tomcat服务器。 5. **路径配置**:项目可能涉及到配置文件,如`web.xml`(Web应用的部署描述符)或应用的配置...