在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文件)
|---<userdir> (自定义的目录)
| |---*.jsp,*.js,*.css,*images (自定义的资源文件)
|---<userfiles> (自定义的资源文件)
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放于此目录下 |