当前位置: 首页 > news >正文

【web开发】Web工程目录和tomcat目录

转自:http://m.blog.csdn.net/ystyaoshengting/article/details/6204886

在Eclipse中只要创建一个Dynamic Web Project,就可以根据创建向导创建出一个典型Java Web站点的目录结构。除非有特殊需要,在大多数情况下都没有必要修改这个目录结构,这也是Web容器的缺省目录结构,我们只要直接使用即可。一般的目录结构如下:

WebContent                                 (站点根目录)

     |---META-INF                           (META-INF文件夹)

     |       |---MANIFEST.MF            (MANIFEST.MF配置清单文件)

     |---WEB-INF                              (WEB-INF文件夹)

     |       |---web.xml                     (站点配置web.xml)

     |       |---lib                              (第三方库文件夹)

     |       |    |---*.jar                     (程序需要的jar包)

     |       |---classes                       (class文件目录)

     |            |---...*.class               (class文件)

     |---                            (自定义的目录)

     |       |---*.jsp,*.js,*.css,*images           (自定义的资源文件)

     |---                        (自定义的资源文件)

1.WebRoot(WebContent)下是发布到服务器上的内容。

2.META-INF是工程自身相关的一些信息,元文件信息,通常由开发工具,环境自动生成。

3.文件web.xml:完成servlet在web容器的注册。web.xml是Web应用程序的部署描述文件,是用来给Web服务器解析并获取Web应用程序相关描述的。

不按照sun公司的规范做应用web程序的结构,web容器找不到,比如,xml文件写错了,启动tomcat的时候会报错

4.凡是客户端能访问的资源(*.html,*.jpg)必须跟WEB-INF在同一目录。即放在Web根目录下的资源,从客户端是可以通过URL地址直接访问。

5. 切忌:凡是WEB-INF里面的文件都不能被客户端直接访问(比如隐藏的信息)。WEB-INF目录下的资源对用户来说是不可见的,而对Web服务器来说则没有这样的限制。

例如在WEB-INF下的index.htm,客户端无法与对待其他文件夹内的信息一样,通过http://yourserver/yourwebapp/WEB-INF/index.htm访问。WEB-INF文件夹是禁止通过URL访问的。
6. 在WEB-INF目录的classes及lib子目录下,都可以存放Java类文件。在运行时,Servlet容器的类加载器先加载classes目录下的类,再加载lib目录下的JAR文件(Java类库的打包文件)中的类,jar包是许多class文件的集合。因此,如果两个目录下存在同名的类,classes目录下的类具有优先权。

Tomcat固定的目录结构

/bin

存放在Windows平台以及Linux平台上启动和关闭Tomat的脚本文件

/conf

存放Tomat服务器的各种配置文件, 其中最重要的文件是Server.xml

/server

包含3个子目录:classes,lib和webapps

/server/lib

存放Tomat服务器所需的Jar文件

/server/webapps

存放Tomat自带的两个Web应用:admin应用和manager应用

/common/lib

存放Tomat服务器以及所有Web应用都可以访问的Jar应用

/share/lib

存放所有Web应用都可以访问的Jar文件

/logs

存放Tomat的日志文件

/webapps

当发布Web应用时,默认情况下把Web应用文件放于此目录下

/work

Tomcat把由Jsp生成的Servlet放于此目录下

相关文章:

  • 【协议】MessagePack, Protocol Buffers和Thrift序列化框架原理和比较说明
  • 【RabbitMQ】RabbitMQ 学习
  • 【greenplum和postgresql】greenplum和postgresql学习
  • 【框架和库】值得推荐的C/C++框架和库 (真的很强大)
  • 【通信协议】帧、数据报、数据包的区别和联系
  • 【网络编程】Python网络编程详解socket
  • 【多线程】C/C++语言中多线程的简单例子
  • 【Python数据序列化】详解Python之数据序列化(json、pickle、shelve)
  • 【Socket】Windows下C语言的Socket编程例子(TCP和UDP)
  • 【php扩展】PHP-CPP:一个开发PHP扩展的C++库
  • 【php构架】Zend Enginephp
  • 【AOP】轻松理解AOP(面向切面编程)
  • 【GCC】生成debug、release、32位版与64位版|gcc参数和DEBUG条件编译
  • 【stl map】C++中的STL中map用法详解
  • 【socket】Socket send函数和recv函数详解
  • docker-consul
  • javascript 哈希表
  • JavaScript设计模式系列一:工厂模式
  • jdbc就是这么简单
  • vagrant 添加本地 box 安装 laravel homestead
  • 极限编程 (Extreme Programming) - 发布计划 (Release Planning)
  • 近期前端发展计划
  • 使用Gradle第一次构建Java程序
  • 小程序button引导用户授权
  • 云大使推广中的常见热门问题
  • 说说我为什么看好Spring Cloud Alibaba
  • ​猴子吃桃问题:每天都吃了前一天剩下的一半多一个。
  • #laravel 通过手动安装依赖PHPExcel#
  • #单片机(TB6600驱动42步进电机)
  • $(function(){})与(function($){....})(jQuery)的区别
  • (06)Hive——正则表达式
  • (ibm)Java 语言的 XPath API
  • (附源码)计算机毕业设计ssm-Java网名推荐系统
  • (论文阅读11/100)Fast R-CNN
  • (原創) 如何將struct塞進vector? (C/C++) (STL)
  • (转载)跟我一起学习VIM - The Life Changing Editor
  • .axf 转化 .bin文件 的方法
  • .L0CK3D来袭:如何保护您的数据免受致命攻击
  • .Net FrameWork总结
  • .NET MVC第三章、三种传值方式
  • .NET/C# 反射的的性能数据,以及高性能开发建议(反射获取 Attribute 和反射调用方法)
  • .net操作Excel出错解决
  • .NET导入Excel数据
  • .NET开源全面方便的第三方登录组件集合 - MrHuo.OAuth
  • .考试倒计时43天!来提分啦!
  • @JsonFormat与@DateTimeFormat注解的使用
  • @selector(..)警告提示
  • @transactional 方法执行完再commit_当@Transactional遇到@CacheEvict,你的代码是不是有bug!...
  • [2669]2-2 Time类的定义
  • [C#]winform制作仪表盘好用的表盘控件和使用方法
  • [DM复习]Apriori算法-国会投票记录关联规则挖掘(上)
  • [GN] 设计模式——面向对象设计原则概述
  • [I2C]I2C通信协议详解(二) --- I2C时序及规格指引
  • [IE技巧] 让IE 以全屏模式启动
  • [JavaScript]_[初级]_[关于forin或for...in循环语句的用法]