为什么80%的码农都做不了架构师?>>>   

一个Web应用程序基本上由以下项目组成:

1.静态资源(HTML,CSS,图片,声音等)

2.Servlet

3.JSP

4.自定义类

5.工具类

6.部署描述文件(web.xml等)、设置信息(Annotation等)

Web应用程序目录结构必须符合规范。例如,如果一个应用程序的环境路径(Context path)是/HelloServlet,则所有的资源项目必须以/HelloServlet为根目录依规定结构摆放。基本上根目录中的资源可以直接下载,若index.html位于/HelloServlet下,则可以直接以/HelloServlet/index.html来取得。

Web应用程序存在一个特殊的/WEB-INF子目录,此目录中存在的资源不会被列入应用程序根目录中可直接访问的项。即,客户端(如Browser)不可以直接请求/WEB-INF中的资源(直接在网址上指明访问/WEB-INF),否则就是404 Not Found的错误结果。/WEB-INF中的资源项目有着一定的名称与结构。

(1)/WEB-INF/web.xml 是部署描述文件

(2)/WEB-INF/classes 用来放置应用程序用到的自定义类(.class),必须包括包(package)结构。

(3)/WEB-INF/lib 用来放置应用程序用到的JAR文件。

Web应用程序用到的JAR文件,其中可以放置Servlet、JSP、自定义类、工具类、部署描述文件等,应用程序的类载入器可以从JAR中载入对应的资源。

可以在JAR文件中的/META-INF/resources目录中放置静态资源或JSP等,例如若在/META-INF中放个index.html,若请求的URL中包括/HelloServlet/index.html,但实际上/HelloServlet根目录下不存在index.html,则会使用JAR中的/META-INF/resources/index.html。

如果要用到某个类,则Web应用程序会到/WEB-INF/classes中试着载入类,若无,再试着从/WEB-INF/lib的JAR文件中寻找类文件(若还没有找到,则会到容器实现本身存放类或JAR的目录中寻找,但位置视不同实现厂商而有所不同,以Tomcat为例,搜索的路径是Tomcat的安装目录下的lib目录)。

客户端不能直接请求/WEB-INF中的资源,但可以通过程序的控制,让程序来取得/WEB-INF中的资源,如使用ServletContext的getResource()与getResourceAsStream(),或是通过RequestDispatcher请求调派。

Web app 默认主页的设置:访问URL如:localhost:8080/FirstServlet/

<welcome-file-list>

<welcome-file>index.html</welcome-file>

<welcome-file>default.jsp</welcome-file>

</welcome-file-list>

如果找不到以上的文件,则会尝试至JAR的/META-INF/resources中寻找已放置的资源页面。

整个Web应用可以被封装为一个WAR文件,如FirstServlet.war,以便于部署至Web容器。

转载于:https://my.oschina.net/tashi/blog/214235

Web应用程序的目录结构相关推荐

  1. 以下关于android应用程序的目录结构,以下关于Android应用程序的目录结构描述中,错误的是哪个()...

    以下关于Android应用程序的目录结构描述中,错误的是哪个() 更多相关问题 吸收实验中,塔底塔顶气相中二氧化碳的浓度采用( )测量. <国际海上避碰规则>适用于: 人的好奇心和强烈的求 ...

  2. 开源网店程序magento目录结构完整版

    magento目录结构完整版 以下是magento目录结构完整版:另有magento的文件结构图与原理简述 /app – 程序根目录 /app/etc – 全局配置文件目录 /app/code – 所 ...

  3. 使用Struts2开发Java Web应用程序(目录)

    第一部分 Struts入门     第一章 Struts2 概览(beta) 第二章 一个简单的Login 应用程序(beta) Struts 2 概要 第三章Struts配置(beta)       ...

  4. 小程序的目录结构—pages文件夹的内容和作用

    作用:pages下放小程序的所有页面,每个页面都是以单独的文件夹而存在的 1) .js 页面的脚本文件(script:根据一定格式编码的可执行文件),存放页面的数据.事件处理函数. .json 2) ...

  5. 微信小程序项目目录结构以及各个文件夹和文件的作用

    pages文件夹,utils文件夹,全局文件app.js文件,全局文件app.json文件, 样式app.wxss文件,项目配置文件project.config.json,页面收录配置文件 sitem ...

  6. Web开发的标准目录结构

  7. [原创]java WEB学习笔记02:javaWeb开发的目录结构

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  8. Android开发:程序目录结构详解:activity主要方法等

    HelloWorld程序的目录结构概述 我们可以在文件夹中看到,HelloWorld程序的目录主要包括:src文件夹.gen文件夹.Android文件夹.assets.res文件夹. AndroidM ...

  9. [填坑手册]小程序目录结构和组件化使用心得

    小程序目录结构 关于小程序的目录结构,可以说一开始大家都有各自的开发习惯和命名规则,但一旦项目变得复杂庞大的时候,你就发现管理起来和后期维护变得很麻烦,如果是 协同开发 的话,更容易出现 " ...

  10. 小程序开发(1)-之目录结构和文件说明

    #以下图片是小程序的目录结构,建议所有的目录都使用小写字母,不使用驼峰格式 #组件 components是自定义组件目录,对一些常用的组件的封装 #配置文件 config是配置文件,存有一些常用的字段 ...

最新文章

  1. springboot redis
  2. 按摩加快肌肉修复有科学依据了,哈佛大学研究成果登Science子刊
  3. Windows 环境下安装redis 及其PHP Redis扩展
  4. 交换和路由的区别?VLAN的特点?
  5. python:字典的操作
  6. 2014c语言二级考试题,2014计算机二级等级考试试题:C语言模拟题
  7. 一个链表创建、反转、打印的C语言代码
  8. react dispatch_React纯Hooks状态管理探索
  9. 【JAVASCRIPT】表单序列化问题
  10. 神龙X-Dragon,这技术“范儿”如何?| 问底中国IT技术演进
  11. java读取本地图片的绝对地址_我想使用图片的绝对路径。为什么java不能使用图片的绝对路径。...
  12. Android 系统 (130)---ODM 开发用户常见需求文档(四)
  13. 制作U盘启动的并可保持更改更新和设置的BT4最终版完全手册
  14. “达观杯”文本智能处理冠军分享:深度学习文本分类
  15. org_chart.js 使用方法
  16. 用Latex beamer做poster经验总结
  17. 数学建模保姆教程-1
  18. React-Native调用系统分享组件Share组件的使用
  19. [Unity][AssetBundle]本地其他项目AB包加载AB打包文件文件路径
  20. python 蒙特卡罗_python实现蒙特卡罗方法(代码示例)

热门文章

  1. 这个软件真好用,让 iPhone 无线投屏到 Mac 上
  2. 如何使用Mac预览程序将png转换为jpg格式的技巧分享
  3. 「PDF Expert」macOS 全能型 PDF 工具——功能介绍
  4. 苹果向开发者发布iOS/iPadOS 14.6的第二个测试版
  5. Z-score标准化[转载]
  6. 微软正式发布 Azure IoT Central
  7. 在你的 Android App 中使用 Flutter | Google开发者大会
  8. LeetCode:35. Search Insert Position(Easy)
  9. ORA-00257: 归档程序错误。在释放之前仅限于内部连接
  10. The summary of Interview