tomcat笔记

tomcat 的exe 版本好处在于只要操作系统启动了,就自动运行. tomcat的安装版会在windows中的service服务中增加tomcat的服务.

·fport 可以获得程序使用的端口号信息


给tomcat\bin\startup.bat启动批处理设置JAVA_HOME变量
@echo off
[color=red]set JAVA_HOME="D:\Program Files\Java\jdk1.5.0_13"[/color]
if "%OS%" == "Windows_NT" setlocal

给tomcat\bin\shutdown.bat关闭批处理设置JAVA_HOME变量
@echo off
[color=red]set JAVA_HOME="D:\Program Files\Java\jdk1.5.0_13"[/color]
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注册表中设置

)测试集成是否成功
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Tomcat是一个开源的Java Servlet容器,用于处理Java Servlet和JSP(Java Server Pages)请求。为了提高Tomcat的性能,我们可以采取以下一些优化措施: 1. 调整内存设置:Tomcat的性能受到内存的影响较大,可以根据服务器的硬件和预期的负载来配置JVM(Java虚拟机)的内存参数,如-Xms(初始堆大小)和-Xmx(最大堆大小)。合理配置内存可以有效地避免内存溢出和频繁的垃圾回收。 2. 合理配置线程池:Tomcat使用线程池来处理并发请求,可以通过调整线程池的大小和配置参数来提高性能。可以根据服务器的硬件配置,预估的请求数量和处理时间来合理配置线程池的大小,避免线程过多或过少的情况发生。 3. 优化静态资源的处理:静态资源(如图片、CSS和JavaScript文件)可以通过使用CDN(内容分发网络)或将其存储在独立的服务器上来提高访问速度。同时,可以启用GZIP压缩和浏览器缓存,以减少传输的数据量和渲染时间。 4. 优化数据库访问:在应用程序中,数据库访问是一个非常常见且需要优化的环节。可以使用连接池来减少数据库连接的开销,同时尽量减少不必要的SQL查询和使用合适的索引。此外,将频繁查询的数据缓存到内存中,可以大大提高性能。 5. 调整Tomcat的配置参数:Tomcat的性能也受到其自身的配置参数的影响,可以根据具体情况来调整一些重要的参数,如连接超时时间、最大请求数量、缓冲区大小等。 6. 监控和识别性能问题:在优化Tomcat性能的过程中,及时监控和识别性能问题非常重要。可以使用一些性能监控工具,如JVisualVM、JProfiler等来识别潜在的性能瓶颈和热点。 综上所述,通过调整内存设置、线程池配置、静态资源优化、数据库访问优化、调整Tomcat配置参数以及监控问题识别,我们可以有效地优化Tomcat的性能,提升应用程序的响应速度和并发处理能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值