|
tomcat 的exe 版本好处在于只要操作系统启动了,就自动运行. tomcat的安装版会在windows中的service服务中增加tomcat的服务.
·fport 可以获得程序使用的端口号信息
给tomcat\bin\startup.bat启动批处理设置JAVA_HOME变量
@echo off
set JAVA_HOME="D:\Program Files\Java\jdk1.5.0_13"
if "%OS%" == "Windows_NT" setlocal
给tomcat\bin\shutdown.bat关闭批处理设置JAVA_HOME变量
@echo off
set JAVA_HOME="D:\Program Files\Java\jdk1.5.0_13"
if "%OS%" == "Windows_NT" setlocal
cmd运行tomcat是,错误信息一闪而过处理办法
打开catalina.bat把
set _EXECJAVA=start %_RUNJAVA%
去掉start
set _EXECJAVA=%_RUNJAVA%
因为start是启动一个新的命令行窗口进行运行.会导致结束后消失掉.
======================================================================
虚拟WEB目录的概念及其原理
设置WEB站点的根目录
设置WEB站点的虚拟子目录
部署描述符与目录的默认网页
=============================================================
tomcat 默认映射的目录是%tomcat%\webapps\ROOT
如在ROOT目录下新增一个index.html
http://localhost:8080/index.html即可访问
在%tomcat%\conf\server.xml有一段
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
</Host>
要覆盖映射目录,需要在<Host>中增加一段
<Context path="" docBase="D:\web" />
一个文件系统目录可以被映射成为多个虚拟WEB目录
虚拟WEB子目录名称可以是多级目录结果的形式
Tomcat按照最长路径匹配原则处理请求的URL
============================================================
设置WEB站点的虚拟子目录
1) 使用server.xml文件中的<Context>元素
<Context path="/meiyoudao" docBase="D:\web" debug="0" />
2) 特定目录中的xml文件中包含<Context>元素
Tomcat 4.x 的 %tomcat%/webapps目录
Tomcat 5.x 的 %tomcat%/conf/Catalina/localhost
3) <Host>元素的appBase属性所设置的应用程序基准目录中的含有WEB-INF/web.xml文件的子目录
4) <Host>元素的appBase属性所设置的应用程序基准目录中的war文件
在%tomcat%\webapps\下的所有包含了WEB-INF文件夹的目录,都默认生成虚拟子目录,没有web.xml文件的.tomcat默认使用默认的web.xml文件
WAR包是可以不需要WEB-INF文件夹和web.xml文件.也可以由tomcat自动生成虚拟子目录
====================================================================
部署描述符文件
<WEB应用程序>/WEB-INF/web.xml
<Tomcat主目录>/conf/web.xml
应用程序中存在web.xml,且会覆盖tomcat主目录中的web.xml中的项内容.
目录的默认网页文件(可以存在多个文件)
web.xml配置
<web-app>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
=========================================================================
配置虚拟主机
要点:
浏览器访问WEB资源的过程
虚拟主机及实现原理
基于主机名的虚拟主机
基于端口号的虚拟主机
基于IP地址的虚拟主机
=================================================
//telnet 到 tomcat 服务器
C:\Documents and Settings\meiyoudao>telnet localhost 9999
//在无法看到回显的时候,输入 telnet c 即可断开连接.
//打开telnet程序的本地回显功能
1.cmd中输入telnet
2.输入help (Microsoft Telnet> help)
3.查看sethelp (Microsoft Telnet> set ?)
4.打开回显 : Microsoft Telnet> set localecho
<<打开本地回显
5.查看当前操作参数 :
Microsoft Telnet> display
6.退出 : Microsoft Telnet> quit
7.C:\Documents and Settings\meiyoudao>telnet localhost 9999
8.Ctrl+]
9.回车
7-9步骤为重点
===========================================
连接成功后获取页面
1.输入命令后,回车
GET /index.jsp HTTP/1.1
2.输入后,回车两次
Host:
<<
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Type: text/html;charset=ISO-8859-1
Transfer-Encoding: chunked
Date: Fri, 26 Nov 2010 02:37:43 GMT
2000
=====================================================
虚拟主机及实现原理
目的:
在一台计算机上创建多个WEB站点,并为每个WEB站点设置不同的主目录和虚拟子目录,每个WEB站点作为各自独立的网站分配给不同的公司或部门.
好处:
多个公司或部门的网站就可以共用同一台计算机,而用户感觉每个公司和部门都有各自独立的网站.多个没有实力在Internet上架设自己专用服务器的中小公司可以联合租用一台WEB服务器,对外提供各自的WEB服务而互不影响.
原理:
WEB服务器上的每个WEB站点必须设置有不同的标识信息
WEB浏览器发出的连接和请求信息中包含WEB站点的标识信息
WEB站点的标识信息:
IP地址,端口号,主机名
================================================================
用户发出的请求信息
GET / HTTP/1.1
Host:www.meiyoudao.com
tomcat就会从server.xml文件中的Engine的多个Host中查找匹配Host名字.如果没有,使用默认的
<Engine name="Catalina" defaultHost="localhost">
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
</Host>
</Engine>
====================================================
基于主机名的虚拟主机-->网络环境
1) WEB浏览器要访问基于主机名的虚拟主机时,在访问URL中必须采用主机名,而不能采用IP地址.
2) 在整个网络系统中建立主机名与IP地址的映射关系,即必须将主机名添加到名称解析系统.
1.使用客户本地的Hosts 文件,位于,
c:\windows\System32\Drivers\Etc\Hosts
2.使用DNS(Domain Name System,域名系统)服务器
=================================================================
模拟多个host
在<Engine></Engine>中添加两个Host配置,修改name,appBase
<Host name="meiyoudao.yw.zj.chinamobile.com" appBase="F:\web\meiyoudao"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
</Host>
<Host name="没有刀.yw.zj.chinamobile.com" appBase="F:\web\没有刀"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
</Host>
通过以上的配置,即可使用telnet进行验证,Host:的内容要对应
Host:meiyoudao.yw.zj.chinamobile.com
Host:没有刀.yw.zj.chinamobile.com
通过配置Hosts,即可使用IE进行验证(由于Host中转换中文会有问题,所以中文地址通过IE访问会不行)
127.0.0.1 没有刀.yw.zj.chinamobile.com
127.0.0.1 meiyoudao.yw.zj.chinamobile.com
访问地址:(无法使用: http://没有刀.yw.zj.chinamobile.com:9999/)
http://meiyoudao.yw.zj.chinamobile.com:9999/index.html
================================================================
与专用WEB服务器的集成
)tomcat在处理HTML上比较弱于Apache和IIS
1)集成的考虑因素
2)集成技术的选择
3)JK插件
4)Tomcat体系结构与JK插件的工作原理
5)Tomcat与IIS服务器集成
6)Tomcat与Apache服务器集成
7)与专业WEB服务器集成的实现问题
=================================================================
1)集成的考虑因素
)是否有必要将Tomcat与其他WEB服务器集成,要视具体的情况而定.
)访问HTTP://tomcat.apache.org/faq/connectors.html页面,可以看到集成与否的一些考虑因素.
)集成的考虑因素:
)集群
--集群系统的概念(联合多台相通的服务器,向外提供服务)
--负载均衡的概念
)集群/安全
)安全(使用专业的安全服务器集成)
)附加功能(与专业的服务器集成,就可以对PHP,ASP等语言的支持)
)特殊功能
)速度(专业在处理HTML速度要快.少数情况下tomcat快)
)socket处理/系统稳定性(Tomcat是通过JVM实行socket,当服务器遭受无效的请求,半连接,会比专业服务器处理要弱.)
=====================================================
2)集成技术的选择
访问:http://wiki.apache.org/tomcat/FAQ/Connectors#Q3页面,可以看到各种集成技术的说明:
)mod_webapp已经过时
)mod_jserv不再被支持和使用
)JK是目前的首选技术
)JK2目前也不被支持
)mod_proxy简单但不能实现有会话状态的负载均衡
)mod_proxy_ajp随着Apache2.2版本的服务器程序一起发布
==============================================================
3)JK插件
)IIS和Apache等专业服务器都支持插件技术,可以将符合某种条件的请求交给插件去处理,IIS和Apache能与tomcat
集成进行的关键原理就是这种插件技术.
)如果在为JK插件预先配置好的URL映射信息中,所有"/*.jsp"形式的URL都由Tomcat服务器来处理,那么当用户请求访问"/index.jsp"时,WEB服务器将调用JK插件来处理,JK插件又把整个请求转发给Tomcat服务器处理,Tomcat服务器最后将相应结果经JK插件传给WEB服务器.
)不同的WEB服务器下的插件形式是不同的,Tomcat开发小组为不同的WEB服务器提供了相应的JK插件.
)不同版本的Tomcat与其他WEB服务器的各个版本集成时的JK插件也可能不同.
tomcat的server.xml默认配置了JK的连接器
<Connector port="8009"
enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />
====================================================
JK插件工作原理-->需要解决的问题
)在WEB服务器中正确安装JK插件.
)JK插件需要知道把请求转发给哪个Tomcat服务器上的哪个连接器,也就是需要知道该连接器的通信协议和地址.
===============================================
Tomcat与IIS服务器集成-->步骤
)把JK插件安装为一个ISAPI筛选器
)应注意将JK插件所在的目录设置为某个站点下的一个具有执行许可权限的虚拟目录.
)编写workers.properties和uriworkermap.properties文件
)设置JK插件属性
)在一个属性文件中设置
)在Windows注册表中设置
)测试集成是否成功 |
|