http://blog.csdn.net/bluesnail216/article/details/7744607

--yourproject 
   --src  
     --java   运行的java源代码 
    --test   单元测试的源代码 
    --configs  配置文件 
   --lib  开发需要的lib(里面通常是运行时不需要的jar) 
   --build.propertis   (ant的) 
   --build.xml   (ant) 
   --document   (项目的设计文档、数据库设计文档等) 
   --WebRoot 
     --WEB-INF  
       --classes  
       --lib      (运行时需要的jar,当然开发肯定也需要该lib)
       ---web.xml 
    --dist  (打成jar、war的存放路径) 
    --css    
    --js    
    --view  (模板文件 。jsp,mv) 
    --images

注:按照 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 web 的标准目录结构(zz)的更多相关文章

  1. 新建标准mavenWeb工程以及Maven的web应用标准目录结构建议

    到现在为止,使用Maven结构的Web工程越来越多,因此在此介绍一下通过Maven来构建项目的相关知识.     文档主要分为两部分:       1.如何通过maven来构建多模块的web项目    ...

  2. java web项目的目录结构

  3. maven 创建web项目的标准目录结构

      maven 创建web项目的标准目录结构 CreateTime--2018年4月18日21:05:37 Author:Marydon 1.标准目录介绍(开发目录) 2.在eclipse下,目录展示 ...

  4. Android MAVEN项目标准目录结构

    1.标准目录结构: src -main      –bin 脚本库      –java java源代码文件      –resources 资源库,会自动复制到classes目录里      –fi ...

  5. 使用Maven构建Web项目的目录结构

    1.Web项目的目录结构     基于Java的Web项目,标准的打包方式是WAR.与JAR比较,包含更多的内容,比如JSP文件.Servlet.Java类.web.xml配置文件.依赖JAR包.静态 ...

  6. (转)Maven项目标准目录结构

    场景:工作中的项目都是使用Maven的目录结构,虽然能够如期的完成开发工作,但是对于一个Maven工程的配置却并不熟悉,这里主要介绍下Maven工程的而目录结构. 1 标准目录结构 src -main ...

  7. Maven项目标准目录结构

    -----------------------siwuxie095 Maven 项目标准目录结构 1.Maven 项目分为两种 (1)Java 项目 (2)Web 项目 2.对于 Java 项目 其中 ...

  8. MAVEN项目标准目录结构 ;

    http://blog.csdn.net/lengyue_wy/article/details/6718637 版权声明:本文为博主原创文章,未经博主允许不得转载.    1.标准目录结构: src ...

  9. MAVEN项目标准目录结构(转)

    转自:http://blog.csdn.net/lengyue_wy/article/details/6718637 版权声明:本文为博主原创文章,未经博主允许不得转载.    1.标准目录结构: s ...

随机推荐

  1. CoreAnimation-09-模拟时钟

    效果图 实现思路 该示例通过隐式动画实现 表盘通过显示在imageView中的一张图片来实现 在表盘上绘制(时分秒)三条直线,分别位于不同的图层,且时针位于最下层,秒针位于最上层 设置直线为圆角 直线 ...

  2. python启动服务器

    3.*             python -m http.server [port] & 2.*             python -m SimpleHTTPServer [port] ...

  3. PL/SQL之--流程控制语句

    一.简介 像编程语言一样,oracle PL/SQL也有自己的流程控制语句.通过流程控制语句,我们可以在PL/SQL中实现一下比较复杂的业务逻辑操作.而无需到程序中去控制,在一定程度上提高了效率,这也 ...

  4. java微信接口之三—上传多媒体文件

    一.微信上传多媒体接口简介 1.请求:该请求是使用post提交from来实现的,我们可以在网页上进行表单提交来实现.地址为: http://file.api.weixin.qq.com/cgi-bin ...

  5. grub条目示例

    https://wiki.archlinux.org/index.php/GRUB#Install_to_disk /boot/grub/menu.lst default=0 timeout=5 ti ...

  6. android SQLiteOpenHelper使用示例

    我们大家都知道Android平台提供给我们一个数据库辅助类来创建或打开数据库,这个辅助类继承自SQLiteOpenHelper类,在该类的 构造器中,调用Context中的方法创建并打开一个指定名称的 ...

  7. nyoj 42 一笔画问题 欧拉路径

    题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=42 欧拉回路,欧拉路径水题~ 代码: #include "stdio.h&quo ...

  8. jenkins忘记管理密码处理方式

    进入/var/lib/jenkins/  用vim编辑 config.xml文件 找到useSecurity部分 将true改成false      并且删除下面的 授权部分 保存推出 3.从新进入 ...

  9. CUDA入门1

      1GPUs can handle thousands of concurrent threads. 2The pieces of code running on the gpu are calle ...

  10. 分享一个解决MySQL写入中文乱码的方法

    分享一个解决MySQL写入中文乱码的方法 之前有发帖请教过如何解决MySQL写入中文乱码的问题.但没人会,或者是会的人不想回答.搜索网上的答案并尝试很多次无效,所以当时就因为这个乱码问题搁浅了一个软件 ...