Apache Tomcat10.0发布了。Tomcat 是一个小型的轻量级应用服务器,Apache和Tomcat整合使用:如果客户端请求的是静态页面,则只需要Apache服务器响应请求;如果客户端请求动态页面,则是Tomcat服务器响应请求;因为jsp是服务器端解释代码的,这样整合就可以减少Tomcat的服务开销。在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。
Apache只是一个Web服务器,可以作为独立的web服务器来运行,不过只支持静态网页,如(asp,PHP,cgi,jsp)等动态网页的就显得无能为力。
Tomcat也可以作为独立的web服务器来运行。但Tomcat也是应用(Java)服务器,它只是一个Servlet容器。
需要下载安装jdk8:http://www.cr173.com/soft/79926.html
Tomcat的安装与配置
1、下载Tomcat的Windows版本,下载完之后直接解压,解压到D:\Tomcat\apache-tomcat-9.0.0.M1-windows-x64\apache-tomcat-9.0.0.M1
2、右击我的电脑—属性—高级系统设置—环境变量,
在系统变量中添加以下变量
(1)TOMCAT_HOME,该变量指向解压文件的路径,该目录下有lib、bin等文件夹。添加方法如下:
点击环境变量下的“新建”,在“变量名”中填写“TOMCAT_HOME”,在“变量值”中填写解压文件的路径,
D:\Tomcat\apache-tomcat-9.0.0.M1-windows-x64\apache-tomcat-9.0.0.M1
(后面没有分号)然后点击“确定”,如图
(2)CATALINA_HOME,该变量的值与TOMCAT_HOME相同,设置方法同(1),如图
(3)在“系统变量”中找到Path变量,双击打开Path变量,在“变量值”的最后面添加
%CATALINA_HOME%\bin
(后面没有分号),如图
(4)在“系统变量”中找到CLASSPath变量,双击打开CLASSPath变量,在“变量值”的最后面添加
%CATALINA_HOME%\lib\servlet-api.jar
(后面没有分号),如图
3、单击“开始”—“运行”,键入"cmd",在控制台输入service install Tomcat9,
在系统中安装Tomcat9服务项。
然后进入控制面板—系统和安全—管理工具—服务,找到Apache Tomcat Tomcat9服务项,右击该项,点“启动”,启动该服务,如图
4、打开浏览器,地址栏输入http://localhost:8080或 http://127.0.0.1:8080
如果出现tomcat示例主页,则表示服务器安装成功,如图
5、也可以在控制台运行startup.dat和tomcat7.exe(运行时要指明绝对路径,startup.dat和tomcat7.exe在bin目录下)来测试服务器是否安装成功,如图
6、在控制台运行bin目录中shutdown.bat可以关闭服务器
7、若无法访问tomcat主要或者无法启动startup.dat,可能是8080端口被占用了,可以用netstat -a 命令查看一下,如图
如果8080端口被占用了,可以修改tomcat的访问端口,方法如下:找到D:\Tomcat\apache-tomcat-9.0.0.M1-windows-x64\apache-tomcat-9.0.0.M1\conf目录下的server.xml文件,打开该文件,找到以下内容
注:每次需要启动tomcat服务器都要运行startup.bat文件。如果觉得麻烦可以把服务里启动类型设置为自动。但这样开机速度会慢些。
Apache+Tomcat整合的好处:
1. Apache主要用来解析静态文本,如html,tomcat虽然也有此功能,但apache能大大提高效率,对于并发数较大的企业级应用,能更好的显示apache的高效率;
2. Tomcat用来解析jsp,servlet等,所有的客户请求首先会发送到Apache,如果请求是静态文本则由apache解析,并把结果返回给客户端,如果是动态的请求,如jsp,apache会把解析工作交给tomcat,由tomcat进行解析(这首先要两者现实整合),tomcat解析完成后,结果仍是通过apache返回给客户端,这样就可以达到分工合作,实现负载均衡,提高系统的性能!而且因为JSP是服务器端解释代码的,这样整合可以减少Tomcat的服务开销。
Apache+Tomcat整合的原理
作为Apache下面的子项目,Tomcat 与 Apache之间有着天然的联系。在实际操作中,主要是Apache作为主服务器运行,当监听到有jsp或者servlet的请求时,将请求转发给tomcat服务器,由tomcat服务器进行解析后,发回apache,再由apache发回用户。
在tomcat中有两个监听的端口,一个是8080用于提供web服务,一个是8009用于监听来自于apache的请求。当apache收到jsp或者servlet请求时,就向tomcat 的8009端口发送请求,交由tomcat处理后,再返回给apache,由apache返回给客户。
更新日志:
Catalina
Extend the JreMemoryLeakPreventionListener to provide protection against ForkJoinPool.commonPool() related memory leaks. (markt)
Coyote
Ensure UpgradeProcessor instances associated with closed connections are removed from the map of current connections to Processors. (markt)
Remove a workaround for a problem previously reported with WebSocket, TLS and APR that treated some error conditions as not errors. The original problem cannot be reproduced with the current code and the work-around is now causing problems. (markt)
Jasper
60497: Follow up fix using a better variable name for the tag reuse flag. (remm)
Revert use of try/finally for simple tags. (remm)
WebSocket
Prevent potential processing loop on unexpected WebSocket connection closure. (markt)
jdbc-pool
Enable reset the statistics without restarting the pool. (kfujino)
Other
Update the NSIS Installer used to build the Windows installer to version 3.01. (markt)
Spelling corrections provided by Josh Soref. (violetagg)