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. 从1.5k到18k, 一个程序员的5年成长之路

    昨天收到了心仪企业的口头offer, 回首当初什么都不会开始学编程, 到现在恰好五年. 整天在社区晃悠, 看了不少的总结, 在这个时间点, 我也写一份自己的总结吧. 我一直在社区分享, 所以, 这篇总 ...

  2. ASCII

    0. American Standard Code of Information Interchange 美国信息交换标准码, 即ASCII, 定义表如下: Bin(二进制) Oct(八进制) Dec ...

  3. 利用JS实现手机访问PC网址自动跳转到wap网站

    方法一:使用百度siteapp中的js进行判断 <script src="http://siteapp.baidu.com/static/webappservice/uaredirec ...

  4. node.js建立简单应用

    1. 建立工程 进入工程目录 cd D:\workspace\project 全局安装express,express作为命令被安装到了系统中 npm install -g express 查看expr ...

  5. C#操作XML小结(转)

    一.简单介绍 using System.Xml; //初始化一个xml实例 XmlDocument xml=new XmlDocument(); //导入指定xml文件 xml.Load(path); ...

  6. SQL Server服务器名称与默认实例名不一致的修复方法

    SQL Server服务器名称与默认实例名不一致的修复方法 分类: 个人累积 SQl SERVER 数据库复制2011-08-10 09:49 10157人阅读 评论(0) 收藏 举报 sql ser ...

  7. 微信公众平台应用开发:方法、技巧与案例--柳峰,Java语言版本

    他本人的博客:http://blog.csdn.net/lyq8479 作者简介: 刘运强,网名“柳峰”,资深微信公众平台应用开发工程师,国内微信公众平台应用开发的先驱之一,项目经验丰富.他还是一位资 ...

  8. hdu 4612 Warm up 双连通+树形dp思想

    Warm up Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others) Total S ...

  9. Lua面向对象编程

    Lua中的table就是一种对象,看以下一段简单的代码: , b = } , b = } local tb3 = tb1 if tb1 == tb2 then print("tb1 == t ...

  10. C++模板(一)

    1. 模板的概念. 我们已经学过重载(Overloading),对重载函数而言,C++的检查机制能通过函数参数的不同及所属类的不同.正确的调用重载函数.例如,为求两个数的最大值,我们定义MAX()函数 ...