Apache Tomcat10.0發(fā)布了。Tomcat 是一個小型的輕量級應用服務器,Apache和Tomcat整合使用:如果客戶端請求的是靜態(tài)頁面,則只需要Apache服務器響應請求;如果客戶端請求動態(tài)頁面,則是Tomcat服務器響應請求;因為jsp是服務器端解釋代碼的,這樣整合就可以減少Tomcat的服務開銷。在中小型系統(tǒng)和并發(fā)訪問用戶不是很多的場合下被普遍使用,是開發(fā)和調試JSP 程序的首選。
Apache只是一個Web服務器,可以作為獨立的web服務器來運行,不過只支持靜態(tài)網頁,如(asp,PHP,cgi,jsp)等動態(tài)網頁的就顯得無能為力。
Tomcat也可以作為獨立的web服務器來運行。但Tomcat也是應用(Java)服務器,它只是一個Servlet容器。
需要下載安裝jdk8:http://elephantinaurance.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、右擊我的電腦—屬性—高級系統(tǒng)設置—環(huán)境變量,
在系統(tǒng)變量中添加以下變量
(1)TOMCAT_HOME,該變量指向解壓文件的路徑,該目錄下有l(wèi)ib、bin等文件夾。添加方法如下:
點擊環(huán)境變量下的“新建”,在“變量名”中填寫“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)在“系統(tǒng)變量”中找到Path變量,雙擊打開Path變量,在“變量值”的最后面添加
%CATALINA_HOME%\bin
(后面沒有分號),如圖
(4)在“系統(tǒng)變量”中找到CLASSPath變量,雙擊打開CLASSPath變量,在“變量值”的最后面添加
%CATALINA_HOME%\lib\servlet-api.jar
(后面沒有分號),如圖
3、單擊“開始”—“運行”,鍵入"cmd",在控制臺輸入service install Tomcat9,
在系統(tǒng)中安裝Tomcat9服務項。
然后進入控制面板—系統(tǒng)和安全—管理工具—服務,找到Apache Tomcat Tomcat9服務項,右擊該項,點“啟動”,啟動該服務,如圖
4、打開瀏覽器,地址欄輸入http://localhost:8080或 http://127.0.0.1:8080
如果出現(xiàn)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主要用來解析靜態(tài)文本,如html,tomcat雖然也有此功能,但apache能大大提高效率,對于并發(fā)數(shù)較大的企業(yè)級應用,能更好的顯示apache的高效率;
2. Tomcat用來解析jsp,servlet等,所有的客戶請求首先會發(fā)送到Apache,如果請求是靜態(tài)文本則由apache解析,并把結果返回給客戶端,如果是動態(tài)的請求,如jsp,apache會把解析工作交給tomcat,由tomcat進行解析(這首先要兩者現(xiàn)實整合),tomcat解析完成后,結果仍是通過apache返回給客戶端,這樣就可以達到分工合作,實現(xiàn)負載均衡,提高系統(tǒng)的性能!而且因為JSP是服務器端解釋代碼的,這樣整合可以減少Tomcat的服務開銷。
Apache+Tomcat整合的原理
作為Apache下面的子項目,Tomcat 與 Apache之間有著天然的聯(lián)系。在實際操作中,主要是Apache作為主服務器運行,當監(jiān)聽到有jsp或者servlet的請求時,將請求轉發(fā)給tomcat服務器,由tomcat服務器進行解析后,發(fā)回apache,再由apache發(fā)回用戶。
在tomcat中有兩個監(jiān)聽的端口,一個是8080用于提供web服務,一個是8009用于監(jiān)聽來自于apache的請求。當apache收到jsp或者servlet請求時,就向tomcat 的8009端口發(fā)送請求,交由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)