文档章节

eclipse web项目目录结构

Yamazaki
 Yamazaki
发布于 2015/08/06 21:24
字数 1092
阅读 430
收藏 12
按照 
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应用程序中的硬性编写的代码的初始化值更少。 例如常见的 , 标记, 就可以为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应用的类路径中。

本文转载自:http://blog.sina.com.cn/s/blog_9ba89b990101ftf8.html

Yamazaki
粉丝 61
博文 677
码字总数 38622
作品 0
普陀
高级程序员
私信 提问
加载中

评论(1)

哎码
哎码
servlet3.0可以允许以JAVA类的方式配置web.xml(也就是不用写web.xml了),但是还是觉得web.xml习惯。
最起码维护方便
Maven 常用命令集合

初学maven即感受到其强大的便捷性,大体记录下maven的基础知识以备不时之需。 常用命令为 : mvn archetype:create :创建 Maven 项目 mvn compile :编译源代码 mvn test-compile :编译测试...

小编辑
2011/01/06
1K
2
eclipse 建立 web项目

eclipse新建web项目 选择 Dynamic Web project . 如图: (1) 把上图目录张开来看: 2.开发从svn服务器上下载项目的结构: 如图: (2) 接上: 问:1. 图一的目录结构是怎么个意思(以前用的...

zerohh
2013/03/01
8.9K
3
Gradle, Eclipse, GWT 三个火枪手

不知道怎么取了这么一个奇怪的标题,想到就用了。 手头有一个web项目是用GWT做的,之前用ANT来编译的。现在换成Gradle来编译。依赖管理(dependency management)就可以更加科学的管理了。当然...

ilxlf
2011/09/16
0
1
将Maven2项目转为MyEclipse项目

现在项目中,大家开始用jetty。它不用像在MyEclipse中使用Tomcat那样要部署,也不用像在Tomcat中那样,要把应用都放到webapp文件夹下。jetty可以直接用你的项目的目录结构。 我们在用maven的...

鉴客
2011/10/11
4.5K
1
使用Maven创建web项目

使用eclipse插件创建一个web project 首先创建一个Maven的Project如下图 我们勾选上Create a simple project (不使用骨架) 这里的Packing 选择 war的形式 由于packing是war包,那么下面也就...

似水的流年
2017/12/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

趣谈预留实例券,一文搞懂云上省钱最新玩法

摘要: 一文搞懂时髦的预留实例券(RI) ECS近期推出了预留实例券(Reserved Instances),简称RI,这东西很cool,今天我们聊聊这个。 首先这篇Blog不是文档,读完后想详细了解文档的朋友请点...

zhaowei121
16分钟前
0
0
js 将json字符串转换为json对象的方法解析

js 将json字符串转换为json对象的方法解析 将json字符串转换为json对象的方法。在数据传输过程中,json是以文本,即字符串的形式传递的,而JS操作的是JSON对象,所以,JSON对象和JSON字符串之...

城市之雾
16分钟前
1
0
国外青少年最喜爱的聊天 app,竟然是 Google Docs

简评: 这还真不是标题党,Google Docs 的协作中内置了实时聊天的功能,也可以进行 comments,颇有种现代「传纸条」的既视感。其实国内的石墨文档、腾讯文档等协作工具也有类似的效果,本文很...

极光推送
21分钟前
0
0
用zuul将微服务的多个swagger api文档聚合成一个文档

1.在每个服务的pom中添加以下依赖 <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId></dependency> 注意:仅仅需要添加这个就行。zuul负......

xtof
21分钟前
0
0
为什么取不到metamask的账号?

当你使用Metamask测试以太坊DApp时,如果出现莫名其妙的问题,检查一下web3.eth.accounts是否可以获取到账户,如果不能获取的话,那么最大的可能是你使用了新版的Metamask,并且默认启用了隐...

汇智网教程
22分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部