一:服务器目录结构
bin:tomcat使用命令
common:网络编程的jar文件,Tomcat运行需要的共用文件;
common\lib:公用的类库
conf:tomcat配置文件;web.xml、server.xml、tomcat-users.xml(配置Admin用户会用到)
logs:日志文件,启动和关闭的信息。
server:自带的web应用(三个)
server\lib:Tomcat服务器运行自己需要用到的类库
server\webapps :自己运行使用的web应用(如admin权限管理web模块)
shared:所有web应用都可以访问的内容,放一些公用的类,入数据库驱动
temp:临时文件夹
webapps:默认站点文件夹.部署项目的地方,这块是重点,自己写的web工程都放在里面
work:jsp生成的类.
work\Catalina\localhost:Tomcat运行时将webapps下的工程加载在此处
二:项目目录结构
yourWebApp目录结构:
src: java类源文件。
webRoot:
META-INF
MANIFEST.MF
context.xml
WEB-INF
classes目录 web工程的运行程序,java类文件(对应开发时的java源文件)
lib目录 调用的类库
src目录 使用的资源(属性文件、图片、...)
web.xml web工程的运行总体配置文件
struts-config.xml web工程基于Struts框架下的struts配置文件
*.tld 各种标签库的配置文件
otherDir
按业务功能划分的文件目录(jsp、js、html、gif、CSS)
webFile
根目录下的一些web文件( 一般是欢迎页面的jsp或html文件)
配置一个虚拟目录:
tomcat的执行流程:
server.xml配置简介
下面是这个文件中的基本配置信息,更具体的配置信息见tomcat的文档
server:
port 指定一个端口,这个端口负责监听关闭tomcat的请求
shutdown 指定向端口发送的命令字符串
service:
name 指定service的名字
Connector (表示客户端和service之间的连接):
port 指定服务器端要创建的端口号,并在这个断口监听来自客户端的请求
minProcessors 服务器启动时创建的处理请求的线程数
maxProcessors 最大可以创建的处理请求的线程数
enableLookups 如果为true,则可以通过调用request.getRemoteHost()进行DNS查询来得到远程客户端的实际主机名,若为false则不进行DNS查询,而是返回其ip地址
redirectPort 指定服务器正在处理http请求时收到了一个SSL传输请求后重定向的端口号
acceptCount 指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理
connectionTimeout 指定超时的时间数(以毫秒为单位)
Engine (表示指定service中的请求处理机,接收和处理来自Connector的请求):
defaultHost 指定缺省的处理请求的主机名,它至少与其中的一个host元素的name属性值是一样的
Context (表示一个web应用程序,通常为WAR文件,关于WAR的具体信息见servlet规范):
docBase 应用程序的路径或者是WAR文件存放的路径
path 表示此web应用程序的url的前缀,这样请求的url为http://localhost:8080/path/****
reloadable 这个属性非常重要,如果为true,则tomcat会自动检测应用程序的/WEB-INF/lib 和/WEB-INF/classes目录的变化,自动装载新的应用程序,我们可以在不重起tomcat的情况下改变应用程序
host (表示一个虚拟主机):
name 指定主机名
appBase 应用程序基本目录,即存放应用程序的目录
unpackWARs 如果为true,则tomcat会自动将WAR文件解压,否则不解压,直接从WAR文件中运行应用程序
Logger (表示日志,调试和错误信息):
className 指定logger使用的类名,此类必须实现org.apache.catalina.Logger 接口
prefix 指定log文件的前缀
suffix 指定log文件的后缀
timestamp 如果为true,则log文件名中要加入时间,如下例:localhost_log.2001-10-04.txt
Realm (表示存放用户名,密码及role的数据库):
className 指定Realm使用的类名,此类必须实现org.apache.catalina.Realm接口
Valve (功能与Logger差不多,其prefix和suffix属性解释和Logger 中的一样):
className 指定Valve使用的类名,如用org.apache.catalina.valves.AccessLogValve类可以记录应用程序的访问信息
directory 指定log文件存放的位置
pattern 有两个值,common方式记录远程主机名或ip地址,用户名,日期,第一行请求的字符串,HTTP响应代码,发送的字节数。combined方式比common方式记录的值更多
注意:
默 认的server.xml中,Realm元素只设置了一个className属性,但此文件中也包含几个通过JDBC连接到数据库进行验证的示例(被注释 掉了),通过Realm元素我们可以实现容器安全管理(Container Managed Security)。
还有一些元素,如Parameter,loader,你可以通过tomcat的文档获取这些元素的信息。