zoukankan      html  css  js  c++  java
  • Java Web工程目录结构

      在Sun的Java Servlet规范中,对Java Web应用做了这样的定义:“Java Web应用由一组Servlet、HTML页面、类,以及其他可以被绑定的资源构成。它可以在第三方供应商提供的实现Servlet规范的Web应用容器中运行。” Java Web应用的主要特征之一就是与ServletContext的关联。每个Web应用都有且只有一个ServletContext。当Java Web应用运行时,Servlet容器为每个Web应用创建唯一的ServletContext对象,使得它能被同一个Web应用中的所有组件共享。Servlet容器(例如Tomcat)控制这种关联,并且保证在ServletContext中存储对象时,不会发生冲突。  

      Java Web应用程序必须使用规范的目录结构:

      应用程序根目录

        -- WEB-INF目录:必须目录 WEB-INF是受保护文件夹,我们不能通过常规的方法(浏览器请求)来访问里面的资源。

          -- web.xml:Web应用部署描述文件,必须目录

          -- classes目录:存放字节码文件

          -- lib目录:存放第三方类库文件

        -- TLD文件:标签库描述文件

        -- 其他静态文件:HTML、CSS、JavaScript、图片等

    实际项目开发中推荐的目录结构

    --project
      --src
        --java 运行的java源代码
        --test 单元测试的源代码
        --configs 配置文件
      --WebRoot
        --WEB-INF
          --classes
          --lib (运行时需要的jar,当然开发肯定也需要该lib)
          --web.xml
      --css
      --js
      --images
      --jsp(view) (模板文件 。jsp,mv)

      --build.propertis (ant的)
      --build.xml (ant)
      --dist (打成jar、war的存放路径)

     关于jsp(view) 的放置路径,我们也可以将它放到WEB-INF目录下,但是这样就不能通过浏览器直接请求到jsp页面,必须经过服务器跳转,这样可以阻止用户下载到jsp页面,其实放在WebRoot 目录下,再加一个过滤器也可以有一样的效果。这个问题网上有很多讨论,我没找到正式的结论,基本上是习惯或者个人喜好的问题。

    在classes以及lib子目录下,都可以存放Java类文件。在运行过程中,Tomcat的类装载器先装载classes目录下的类,再装载lib目录下的类。因此,如果两个目录下存在同名的类,classes目录下的类具有优先权。

    web.xml文件

      Java Web应用通过一个基于XML的发布描述符文件来配置其发布信息,这个文件名为web.xml,它存放于WEB-INF子目录下。在web.xml文件中可包含如下配置信息:

      Servlet的定义

      Servlet的初始化参数

      Servlet以及JSP的映射

      安全域配置参数

      welcome文件清单

      资源引用

      环境变量的定义

    (web.xml配置文件详解:http://blog.csdn.net/itmagic_jack/article/details/6293042 
    http://www.cnblogs.com/nami/archive/2012/09/03/2669098.html )

    ( Web.xml 加载顺序: http://blog.csdn.net/xiongyayun428/article/details/6992995 )

  • 相关阅读:
    AES算法加解密Java工具类AESUtil
    并发与高并发(二十二)高并发の服务降级与服务熔断思路
    并发与高并发(二十一) 高并发の应用限流思路
    并发与高并发(二十)高并发の应用拆分思路
    da5_模块
    day5_集合
    day5_递归调用
    day5_判断价格输入是否是正整数或正小数
    day5_函数_判断小数
    day5_函数_文件读写_用一个函数来满足文件的读或者写_应用默认参数
  • 原文地址:https://www.cnblogs.com/nami/p/2669092.html
Copyright © 2011-2022 走看看