(1)安装和配置tomcat以及jdk
tomcat目录了解
1.tomcat6.0/bin
存放各种平台下启动和关闭Tomcat的脚本文件。其中有个档是catalina.bat,打开这个windos配置文件,在非注
释行加入JDK路径,例如 : SET JAVA_HOME=C:j2sdk1.4.2_06 保存后,就配置好tomcat环境了。
startup.bat是windows下启动tomcat的文件,shutdown.bat是关闭tomcat的文件。
2.tomcat6.0/lib
存放Tomcat服务器和所有web应用都能访问的JAR文件包
3.tomcat6.0//temp
临时活页夹,Tomcat运行时候存放临时文件用的
4.tomcat6.0/logs
存放Tomcat的日志文件
5.tomcat6.0/conf
Tomcat的各种配置文件, tomcat启动的时候需要读取的配置文件:server.xml(tomcat主要配置文件)、web.xml和tomcatat- users.xml、catalina.policy(安全策略文件)等。修改了以后需要重启tomcat才能生效.
最重要的是 server.xml;配置tomcat组件的XML文件server.XML其中包括
I.顶层类元素[Top Level Elements]: 位于整个配置文件的顶层, 包括<Server>和<Service>;
II.连接器类元素[Connectors ]: 客户和服务(容器类元素)间的通讯接口。接受客户请求,返回响应结果;<Connector>
II.容器类元素[Containers]: 处理客户请求并且生成响应结果,包含3个:<Engine> <Host> <Context>
IV.嵌套类元素[Nested Components]: 可以加入到容器中的元素,包括:<logger> <Valve><Realm>等
6.tomcat6.0/work
Tomcat把各种由jsp生成的servlet文件放在这个目录下.
什么是tomcat?
tomcat是sun提供的一个web服务器,简单的说就是可以将用代码写好的web程序放到上面,经过配置就可以在公网上访问。
既然要将web服务器是一个容器,可以放很多的web程序,所有我们通过server.xml对每一个web程序进行管理(web.xml的详解)
元素名 | 属性 | 解释 |
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方式记录的值更多 |
下面来说我如何在一个tomcat中配置二个项目(EIMS、GZEIMS)
分别在service中配置好这二个web程序
<Host name="www.xxx.com" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
<Context path="www.sina.com" docBase="E:\item\workspace\EIMS\WebRoot" reloadable="true"></Context>
</Host>
docBase="E:\item\workspace\EIMS\WebRoot" 配置EIMS
<Host name="www.sina.com" appBase="/webapps" >
<Context path="" docBase="E:\item\workspace\GZEIMS\WebRoot" />
</Host>
docBase="E:\item\workspace\GZEIMS\WebRoot" 配置GZIEMS
<Host name="www.xxx.com"> <Host name="www.sina.com" >默认的host配置是localhost(本机)
虚拟主机修改了,那就要映射这个虚拟主机,
加上127.0.0.1 www.xxx.com
127.0.0.1 www.sina.com这二行 给ip映射二个虚拟名称
然后通过www.xxx.com:8080 www.sina.com:8080 进行访问
事实上系统上线之后,端口号是不会出现在URL上的,所以下面就教大家把8080修改成默认端口80
port = 80
然后我们就可以通过www.xxx.com www.sina.com 进行访问