日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

JSP的環(huán)境引擎--Tomcat

 tcwl123 2010-10-25
JSP的環(huán)境引擎--Tomcat


所謂的JSP環(huán)境引擎指的就是JSP的運(yùn)行環(huán)境,就象ASP的運(yùn)行環(huán)境是IIS而PHP的運(yùn)行環(huán)境可以是APACHE+PHP,前面我們已經(jīng)提到過JSP的一大特點是他支持多平臺,不僅支持Windows同樣也支持Linux/Unix,現(xiàn)在流行的JSP引擎主要有Tomcat、JSWDK、Resin、JRun、Servletexec、Websphere、Weblogic、GNUJSP,Enhydra等幾種,下面我們將重點介紹幾個常用的環(huán)境引擎。

TomCat

TomCat特點

Tomcat是apache上實現(xiàn)jsp+javabean環(huán)境的接口程序,集成了jsp和servlet。他提供一個單獨的mod_jserv.so模塊,利用apache的DSO動態(tài)載入,與早先的Jserver不同,Tomcat必須作為一個單獨的程序運(yùn)行,所有提交給apache的java請求將通過Tomcat自帶的jserv模塊提交給Tomcat進(jìn)一步處理。就是說,必須先運(yùn)行Tomcat,再運(yùn)行apache才能解釋jsp/servlet程序。

Tomcat很可能成為下一代Java Web Server的主流。因為Tomcat受到Sun公司的全力支持,并由非常強(qiáng)大的開發(fā)組織apache來進(jìn)行發(fā)展,這一工程被稱為Jakarta計劃。從戰(zhàn)略上看,Sun 現(xiàn)在正借助apache的影響來開發(fā)server端的java技術(shù),這就是tomcat。因此可以相信tomcat已經(jīng)或者即將是一個較理想的jsp & servlet開發(fā)和支撐平臺。相對地,JSWDK只是一個簡化的服務(wù)器平臺,性能和穩(wěn)定程度都比較有限,而且實際上SUN并不許可將它作為internet上的商業(yè)平臺。 

Tomcat的功能比jws或jswdk強(qiáng)大得多,您可以訪問tomcat的站點http://jakarta. 查看詳細(xì)介紹,Tomcat的穩(wěn)定版本是3.2.3,最新4.0的版本處于開發(fā)階段,他主要包含了三個主要部分:

Catalina:一個符合Servlet API規(guī)范2.3的Servlet 容器;
Jasper:一個符合JSP規(guī)范1.2的JSP編譯器和運(yùn)行環(huán)境;
Webapps:Tomcat中包含的一些例子和用于測試的web例程,以及相關(guān)文檔。

Tomcat4.0的一個主要目的是支持目前正在處于測試版的Servlet2.3規(guī)范和JSP1.2規(guī)范的新特性,他有以下幾個特點:

支持Servlet API 規(guī)范2.3 

Servlet為Web開發(fā)員提供了一個簡單、一致的機(jī)制,來擴(kuò)展Web服務(wù)器的功能,并且和已有的業(yè)務(wù)系統(tǒng)交互。可以把Servlet看作在服務(wù)端運(yùn)行的Applet。 

JSP技術(shù)是servlet技術(shù)的擴(kuò)展,對HTML和XML的頁面創(chuàng)作提供支持。它使網(wǎng)頁設(shè)計員能非常容易地將固定或靜態(tài)的模板數(shù)據(jù)與動態(tài)內(nèi)容進(jìn)行組合。 
Tomcat4.0的版本支持Servlet API 規(guī)范2.3,你可以在web.xml文件中注冊相應(yīng)的事件監(jiān)聽器,當(dāng)這些事件發(fā)生時,在應(yīng)用程序中可以收到相應(yīng)的事件通知,這些事件包括:
- 應(yīng)用啟動
- 應(yīng)用關(guān)閉
- 應(yīng)用的屬性的增加、刪除、被替換 
- Session創(chuàng)建
- Session失效、超時
- Session的屬性的增加、刪除、被替換

事件監(jiān)聽器的功能被加入到Catalina,看來效果非常好。在Webapps中的web應(yīng)用examples中就有兩個監(jiān)聽器的例子用于通過ServerletContext.log()記錄相應(yīng)的事件。

Servlet Fliter
在web.xml文件中注冊類似與Catalina核心中Valves功能類似的的Filter。Filter主要具有以下特性:
- Filter能夠映射成相應(yīng)的URL或特定的Servlet。
- Filter能被用于對request,reponse對象進(jìn)行預(yù)處理、或后處理。
- Filter能封裝request、response對象,比如可以對對象中的內(nèi)容進(jìn)行轉(zhuǎn)換。
- Filter能夠?qū)υL問請求直接響應(yīng),然后返回給客戶端,而不僅僅進(jìn)行訪問請求的傳送,比如,你可以在應(yīng)用級進(jìn)行用戶認(rèn)證。
與這些特性相關(guān)聯(lián),當(dāng)servlet傳遞參數(shù)給RequestDispatcher時就可以做這種類型的封裝。而在以前,你只能將初始的request對象傳遞給Servlet Container,并且從Servlet Container中得到返回的response對象。Servlet filter的功能目前已經(jīng)加入到Catalina中,并通過了初步測試。在應(yīng)用examples中有一個filter用于路徑映射和向調(diào)用servlet的映射("/servlet/*"),其中存放了最終傳遞給執(zhí)行Servlet的request對象屬性。

安裝擴(kuò)展庫的依賴關(guān)系
Web應(yīng)用程序或WEB-INF/lib中的jar文件,現(xiàn)在可以聲明對特定版本外部庫的依賴關(guān)系,這些外部庫是由Servlet Container作為共享擴(kuò)展提供的。在Catalina中目前還沒有完全實現(xiàn)這部分功能。

國際化支持

Catalina現(xiàn)在支持從Locale向字符集的映射,在ServletRequest中增加了一個新的方法setCharacterEncoding() ,在這一方面,還需要有個多的測試和功能增強(qiáng)。

Web應(yīng)用的類裝載器

Servlet規(guī)范草案中9.6.2節(jié)中定義了與Web應(yīng)用中類裝載器相關(guān)的需求和建議。這些需求在Catalina中被遵照執(zhí)行。

Servlet 2.3應(yīng)用程序分發(fā)描述符的DTD

在Catalina中包括一個非正式的用于解析web.xml文件的DTD(catalina/src/conf/web_23.dtd)它將被正式發(fā)布的DTD所替代。
JSP規(guī)范1.2

JSP 對Include flush="false"的支持

這個變化通過在標(biāo)準(zhǔn)或定制的標(biāo)記中嵌套使用標(biāo)記,允許利用內(nèi)含的servlet進(jìn)行緩存、處理,并產(chǎn)生的輸出。這個變化取決于前述的對RequestDispatcher.include()的功能的增強(qiáng)功能。

JSP頁面的XML視圖

JSP1.2的實現(xiàn)要求輸入不僅要符合JSP語法,而且要符合XML語法。目前正在將Jasper的parser進(jìn)行轉(zhuǎn)換,使得其能接受任何一種類型的輸入。

屬性編輯器的利用

假如一個應(yīng)用對java類的一個特定屬性注冊了一個屬性編輯器(PropertyEditor),那么這個屬性編輯器的setAsText()方法將用于將文本格式的屬性(比如request對象的一個參數(shù))轉(zhuǎn)換為該屬性的內(nèi)部表示。假如沒有定義屬性編輯器,那么就采用前述的缺省屬性編輯器進(jìn)行轉(zhuǎn)換。

定制標(biāo)記庫驗證頁面的合法性

在定制標(biāo)記庫中增加了一個新的編譯階段用于檢查頁面的XML視圖,如果檢測到錯誤,就拋出一個轉(zhuǎn)換時異常。在這當(dāng)中,可用于驗證:
- 從語義上不能被TLD中定義的信息驗證的嵌套定制標(biāo)記
- 誤用或濫用JSP中定制標(biāo)記特性。比如,你可以用一個驗證子禁止JSP使用Java語句塊。
- 增強(qiáng)的迭代支持
- 增強(qiáng)了的定制tag機(jī)制支持在不做內(nèi)容嵌套的前提下進(jìn)行迭代的能力。這將優(yōu)化這類非常常見的例子的性能,比如通過迭代來表示一個表格的處理結(jié)果,而不用顯式對表格中每一行進(jìn)行處理。

定制tag庫能夠聲明應(yīng)用監(jiān)聽器

一個定制的tag庫能夠利用servlet2.3中的新特性,聲明一個監(jiān)聽器,用于監(jiān)聽?wèi)?yīng)用程序相關(guān)的事件。

附加的TLD元素

在許多簡單的例子中,聲明變量時,采用附加的TLD元素可不用書寫TagExtraInfo類
在Tag接口中增加resetCustomAttributes()方法,通過由Servlet Container調(diào)用附加的方法,使得在循環(huán)調(diào)用一個tag的實例前調(diào)用該方法。

Tomcat和JServ的區(qū)別

JServ是由Apache開發(fā)并使用的Servlet API 2.0兼容的Servlet容器。Tomcat是完全重寫的Servlet API 2.2和JSP 1.1兼容的Servlet/JSP容器。Tomcat使用了JServ的一些代碼,特別是Apache服務(wù)適配器。 

Tomcat的應(yīng)用

實際上,只有針對一個象amazon.com這樣的大型站點,采用apache + tomcat這樣的結(jié)構(gòu)才具有更特出的優(yōu)點,主要體現(xiàn)在具有更好的可擴(kuò)展性和安全性。這種類型的站點的主要特點是每一個頁面都可能是動態(tài)生成的,但這些數(shù)據(jù)中主要部分還是靜態(tài)的(比如,各類圖像GIF、JPG、PNG,流式媒體等)。 
想象以下某個站點采用了多個用于負(fù)載均衡的硬件設(shè)備,這些設(shè)備后端連結(jié)一組服務(wù)器,這些服務(wù)器可能是一組相對廉價的運(yùn)行apache的linux服務(wù)器簇。 
這組位于前端的服務(wù)器簇將僅占總訪問請求的10%的真正需要調(diào)用servlet的訪問請求發(fā)送給后段的系統(tǒng),后鍛系統(tǒng)可以是一臺Sun的E3500,或是IBM的AS/400,在這個后端的系統(tǒng)上運(yùn)行著Tomcat,可能還包括企業(yè)級數(shù)據(jù)庫。 
這種結(jié)構(gòu)的優(yōu)點是兼有可擴(kuò)展性和安全性。假如單位時間內(nèi)訪問請求數(shù)急劇增加,可以用相對較低的費用增加前端的能力。盡管后段的處理部分也需要擴(kuò)充,但通常情況下,這種定位在單個服務(wù)器上的處理部分比較容易擴(kuò)展。由于是通過在這臺功能強(qiáng)大的服務(wù)器上運(yùn)行的單個servlet容器,實際上也就不需要考慮session狀態(tài)在分布式環(huán)境下的維護(hù)這類復(fù)雜的問題。
另外,因為這臺后端服務(wù)器在外界不可以訪問,網(wǎng)上的黑客只能訪問前端的web服務(wù)器,不能直接訪問后端的應(yīng)用服務(wù)器,這就提高了安全性。但這并不意味著黑客們不能通過網(wǎng)絡(luò)瀏覽器進(jìn)行其它形式的攻擊。對于apache->tomcat這種配置來說,前端和后端是通過ajp12協(xié)議來進(jìn)行通信,ajp12不過是http訪問請求的一種轉(zhuǎn)換形式,如果給黑客們足夠的時間,他們也許有能力通過Web層,從后端的數(shù)據(jù)庫中取得一些比如信用卡號等關(guān)鍵數(shù)據(jù)。 

Tomcat的安裝

Tomcat在Linux/Unix下的安裝

下載所需軟件:apache 1.3.20――webserver
tomcat 3.2.3 ――環(huán)境引擎
JDK 1.2.0 ――Java Develop Kit
mod_jserv.so――Apache的Jserv模塊
Apache Webserver 1.3.20: http://httpd./dist/httpd/apache_1.3.20.tar.gz
Tomcat3.2.3 : http://jakarta./builds/jakarta-tomcat/release/v3.2.3/bin/jakarta-tomcat-3.2.3.tar.gz
JDK 1.2.2: http://java./products/jdk/1.2/download-linux.html

mod_jserv.so:http://jakarta./builds/jakarta-tomcat/release/v3.2.3/bin/linux/mod_jk-eapi.so

安裝所需的軟件:
1) Apache:
先解壓apache:tar zxvf apache_1.3.20.tar.gz
cd apache_1.3.20
./configure 
make 
make install
Apache Webserver被默認(rèn)安裝在/usr/local/apache下
修改apache的配置文件:
vi /usr/local/apache/
安照你的要求自行修改相應(yīng)的參數(shù)。
把下載mod_jk-eapi.so下載到/usr/local/apache/libexec目錄下
2) JDK
解壓:tar zxvf jdk-1_2_2-linux-i386.tar.gz
mv jdk-1_2_2 /usr/local/jdk1.2.2
3) Tomcat
解壓:tar zxvf jakarta-tomcat-3.2.3.tar.gz
mv akarta-tomcat-3.2.3 /usr/local/jakarta-tomcat

4) 配置環(huán)境變量
編輯/etc/profile文件,這里對環(huán)境變量修改就是修改所有的系統(tǒng)用戶的環(huán)境變量,如果你不希望這么作可以只修改root用戶的環(huán)境變量,那就只要編輯/root/.bash_profile,在文件尾加入下面幾句:
JAVA_HOME=/usr/local/jdk1.2.2 
export JAVA_HOME 
JRE_HOME=/usr/local/jdk1.2.2/jre 
export JRE_HOME 
TOMCAT_HOME=/usr/local/jakarta-tomcat 
export TOMCAT_HOME 
CLASSPATH=/usr/local/jdk1.2.2/lib:/usr/local/jdk1.2.2/jre/lib 
export CLASSPATH 
PATH=$PATH:/usr/local/jakarta-tomcat/bin:/usr/local/jdk1.2.2/bin:/usr/local/jdk1.2.2/jre/bin
export PATH
配置Tomcat
tomcat本身其實就是一個web服務(wù)器,我們可以把他和apache等其他web服務(wù)器連接起來,這兩個服務(wù)器 可以不在同一臺機(jī)器上。底下的操作為在同一臺機(jī)器上的情況,如果想把他們分開在兩臺計算機(jī)上,請 修改/usr/loca/jakarta-tomcat/conf/tomcat.conf 
cp /usr/loca/jakarta-tomcat/conf/tomcat.conf /usr/local/apache/conf/
vi /usr/local/apache/conf/httpd.conf
在文件結(jié)尾加入: 
include /usr/local/apache/conf/tomcat.conf
啟動服務(wù)
啟動Apache Web server:/usr/local/apache/bin/apachectl start
關(guān)閉Apache Web server:/usr/local/apache/bin/apachectl stop
啟動Tomcat :/usr/local/jakarta-tomcat/bin/startup.sh start
關(guān)閉Tomcat :/usr/local/jakarta-tomcat/bin/shutdown.sh stop
測試Tomcat
用ps ax確認(rèn)服務(wù)都啟動后,在客戶端的瀏覽器內(nèi)敲入
http://dress/examples/、
如果你看見了jsp、servlet目錄,你的apche與tomcat已經(jīng)連接成功了. 
說明
如果你的jsp/servlet運(yùn)行不了或者有錯誤,一般是你的CLASSPATH設(shè)置錯誤 如果你的apache是自己編譯的,編譯apache時請把--enable-module=so打開

Tomcat在Windows下的安裝

下載所需的軟件:
JDK1.2.2:http://java./products/jdk/1.2/download-windows.html
Apache Web Server:
http://httpd./dist/httpd/binaries/win32/apache_1.3.20-win32-no_src-r2.msi
Apache Jserver模塊:
http://jakarta./builds/jakarta-tomcat/release/v3.2.3/bin/win32/i386/mod_jk.dll
Tomcat 3.2.2:
http://jakarta./builds/jakarta-tomcat/release/v3.2.3/bin/jakarta-tomcat-3.2.3.zip

安裝

一、安裝JDK1.2.2,并將jdk1.2.2的目錄加入到環(huán)境變量PATH中(Autoexec.bat);
1、 雙擊jdk1_2_2-00x-win.exe文件進(jìn)行安裝,使用缺省配置進(jìn)行安裝,JDK的缺省安裝目錄為 C:jdk1.2.2,JRE的缺省安裝目錄為C:Program FilesJavaSoftJRE1.2; 
2、 重啟計算機(jī);
3、 更新下列環(huán)境變量:把C:jdk1.2.2in目錄追加到PATH中;把 C:jdk1.2.2lib ools.jar;C:jdk1.2.2libdt.jar加入到CLASSPATH中。更新      方法:控制面板->系統(tǒng)->環(huán)境->系統(tǒng)變量;
4、 測試applet: 
1) 打開command窗口; 
2) 切換到C:jdk1.2.2demoappletsTicTacToe目錄; 
3) 運(yùn)行appletviewer example1.htm; 
4) 一切正常; 
5、 測試application: 
1) 新建c:jsp目錄并創(chuàng)建一個test.java文件,內(nèi)容如下:
public class test 
 {
public static void main(String arc[]){ 
System.out.println("hello world!”    ) 
         }; 

2) 打開command窗口;
3) 切換到c:jsp目錄; 
4) 運(yùn)行javac test.java進(jìn)行編譯;
5) 運(yùn)行java test運(yùn)行這個程序; 
6) 一切正常。

二、安裝apache_1.3.20-win32-no_src-r2.msi
1、 雙擊apache_1.3.20-win32-no_src-r2.msi文件進(jìn)行安裝,使用缺省配置進(jìn)行安裝,缺省安裝目錄為 C:Program FilesApache GroupApache,我用$APACHE_ROOT來代替安裝目的地; 
2、 修改$APACHE_ROOTconfhttpd.conf: 
1、 port:設(shè)置Apache Web Server運(yùn)行時使用的端口號,默認(rèn)是80 ,如果你的系統(tǒng)有IIS或PWS也在運(yùn)行,IIS或PWS使 用了80端口號,于是我把它改成Port 88,以后在瀏覽器上輸入 http://localhost:88/才能訪問到Apache Web Server服務(wù)器,輸入 http://localhost/時能訪問到IIS或PWS,這樣兩個Web Server都可以用了;
2、 DocumentRoot 設(shè)置文檔根目錄,當(dāng)您在瀏覽器上輸入http://localhost/時,服         務(wù)器會從文檔根目錄讀取數(shù)據(jù),我們把他設(shè)為c:jsp,所以把         DocumentRoot設(shè)置為c:jsp; 
3、 Apache安裝完后在"開始->程序"菜單組中多了Apache Web Server菜單組,運(yùn)行其中的 apache conctrol中的start來啟動服務(wù),運(yùn)行stop關(guān)閉apache web server,restart重新啟動服務(wù);、
4、 在瀏覽器上輸入http://localhost/或http://localhost:88/,就看到了c:jsp下的所有文件, 這時表明Apache服務(wù)已經(jīng)安裝成功。
將mod_jk.dll拷到Apache所在目錄的modules子目錄中;
安裝Tomcat 3.2.2 (解壓并拷到某個目錄中); 
此時所需部件都已經(jīng)安裝完畢,以下是配置過程。 

配置 

1、設(shè)置以下環(huán)境變量(可以放在autoexec.bat中: 
SET TOMCAT_HOME=C:PROGRA~1Tomcat 
SET JAVA_HOME=C:PROGRA~1jdk1.2.2 
2、打開TOMCAT的conf子目錄下的tomcat.conf文件以下行前的注釋去掉: 
LoadModule jserv_module modules/mod_jk.dll
再將對應(yīng)LINUX的類似一行用注釋屏敝掉。 
3、打開apache的httpd文件,在最后加入一行 
include c:/progra~1/tomcat/conf/tomcat.conf 

啟動與測試: 

1、 首先啟動apache
2、 進(jìn)入到tomcat的執(zhí)行目錄(bin), 
3、 用tomcat.bat start或tomcat.bat run啟動tomcat,此時應(yīng)當(dāng)可以看到正確輸出的classpath,此時Tomcat啟動成功! 
4、 在瀏覽器中輸入http://localhost/examples/此時應(yīng)當(dāng)可以看到server返回的三個目錄列表。點擊其中JSP的就可以看到示例了。 
5、 只要用官方站下載的程序,照上述幾步應(yīng)當(dāng)能正確啟動JSP環(huán)境,接下來的問題就是如何加入context以便映射到你的工作目錄,并開始JSP世界的探索了。這將在后面加帖。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多