JSP 簡(jiǎn)介
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶,將通過(guò)不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:國(guó)際域名空間、網(wǎng)頁(yè)空間、營(yíng)銷(xiāo)軟件、網(wǎng)站建設(shè)、巴林右旗網(wǎng)站維護(hù)、網(wǎng)站推廣。
什么是Java Server Pages(Java服務(wù)器頁(yè)面)?
JSP全稱(chēng)Java Server Pages,是一種動(dòng)態(tài)網(wǎng)頁(yè)開(kāi)發(fā)技術(shù)。它使用JSP標(biāo)簽在HTML網(wǎng)頁(yè)中插入Java代碼。標(biāo)簽通常以<%開(kāi)頭以%>結(jié)束。
JSP是一種Javaservlet(服務(wù)器小程序),主要用于實(shí)現(xiàn)Javaweb應(yīng)用程序的用戶界面部分。網(wǎng)頁(yè)開(kāi)發(fā)者們通過(guò)結(jié)合HTML代碼、XHTML代碼、XML元素以及嵌入JSP操作和命令來(lái)編寫(xiě)JSP。
JSP通過(guò)網(wǎng)頁(yè)表單獲取用戶輸入數(shù)據(jù)、訪問(wèn)數(shù)據(jù)庫(kù)及其他數(shù)據(jù)源,然后動(dòng)態(tài)地創(chuàng)建網(wǎng)頁(yè)。
JSP標(biāo)簽有多種功能,比如訪問(wèn)數(shù)據(jù)庫(kù)、記錄用戶選擇信息、訪問(wèn)JavaBeans組件等,還可以在不同的網(wǎng)頁(yè)中傳遞控制信息和共享信息。
。。。
為什么使用JSP?
JSP程序與CGI(公共網(wǎng)關(guān)接口)程序有著相似的功能,但和CGI程序相比,JSP程序有如下優(yōu)勢(shì):
-性能更加優(yōu)越,因?yàn)镴SP可以直接在HTML網(wǎng)頁(yè)中動(dòng)態(tài)嵌入元素而不需要單獨(dú)引用CGI文件。
-服務(wù)器調(diào)用的是已經(jīng)編譯好的JSP文件,而不像CGI/Perl那樣必須先載入解釋器和目標(biāo)腳本。
-JSP基于Java Servlets API,因此,JSP擁有各種強(qiáng)大的企業(yè)級(jí)Java API,包括JDBC,JNDI,EJB,JAXP等等。
-JSP頁(yè)面可以與處理業(yè)務(wù)邏輯的servlets一起使用,這種模式被Java servlet 模板引擎所支持。
最后,JSP是Java EE不可或缺的一部分,是一個(gè)完整的企業(yè)級(jí)應(yīng)用平臺(tái)。這意味著JSP可以用最簡(jiǎn)單的方式來(lái)實(shí)現(xiàn)最復(fù)雜的應(yīng)用。
。。。
JSP的優(yōu)勢(shì)http://www.iis7.com/a/lm/yczmljgj/
以下列出了使用JSP帶來(lái)的其他好處:
-與ASP相比:JSP有兩大優(yōu)勢(shì)。首先,動(dòng)態(tài)部分用Java編寫(xiě),而不是VB或其他MS專(zhuān)用語(yǔ)言,所以更加強(qiáng)大與易用。第二點(diǎn)就是JSP易于移植到非MS平臺(tái)上。
-與純 Servlets相比:JSP可以很方便的編寫(xiě)或者修改HTML網(wǎng)頁(yè)而不用去面對(duì)大量的println語(yǔ)句。
-與SSI相比:SSI無(wú)法使用表單數(shù)據(jù)、無(wú)法進(jìn)行數(shù)據(jù)庫(kù)鏈接。
-與JavaScript相比:雖然JavaScript可以在客戶端動(dòng)態(tài)生成HTML,但是很難與服務(wù)器交互,因此不能提供復(fù)雜的服務(wù),比如訪問(wèn)數(shù)據(jù)庫(kù)和圖像處理等等。
-與靜態(tài)HTML相比:靜態(tài)HTML不包含動(dòng)態(tài)信息。
::::::::::::::::::::::::::::::::::::::::
JSP 開(kāi)發(fā)環(huán)境搭建
JSP開(kāi)發(fā)環(huán)境是您用來(lái)開(kāi)發(fā)、測(cè)試和運(yùn)行JSP程序的地方。
我們來(lái)搭建JSP開(kāi)發(fā)環(huán)境,具體包括以下幾個(gè)步驟:
1. 配置Java開(kāi)發(fā)工具(JDK)
這一步涉及Java SDK的下載和PATH環(huán)境變量的配置。
您可以從Oracle公司的Java頁(yè)面中下載SDK:Java SE Downloads(JavaSE下載)
JavaSDK下載完后,請(qǐng)按照給定的指示來(lái)安裝和配置SDK。最后,通過(guò)設(shè)置PATH和JAVA_HOME環(huán)境變量來(lái)指明包括java和javac的文件夾路徑,通常是java_install_dir/bin和java_install_dir。
假如您用的是Windows系統(tǒng)并且SDK的安裝目錄為C::\jdk1.5.0_20,那么您就需要在 C:\autoexec.bat 文件中添加以下兩行:
set PATH=C:\jdk1.5.0_20\bin;%PATH%
set JAVA_HOME=C:\jdk1.5.0_20
或者,在Windows NT/2000/XP下,您可以直接右擊我的電腦圖標(biāo),選擇屬性,然后高級(jí),然后環(huán)境變量,接下來(lái)您就可以很方便地設(shè)置PATH變量并且確定退出就行了。
在Linux/Unix系統(tǒng)下,如果SDK的安裝目錄為/usr/local/jdk1.5.0_20并且使用的是C shell,那么您就需要在.cshrc文件中添加以下兩行:
setenv PATH /usr/local/jdk1.5.0_20/bin:$PATH
setenv JAVA_HOME /usr/local/jdk1.5.0_20
或者,假如您正在使用類(lèi)似于Borland JBuilder、Eclipse、IntelliJ IDEA和Sun ONE Studio這樣的集成開(kāi)發(fā)環(huán)境,可以試著編譯并運(yùn)行一個(gè)簡(jiǎn)單的程序來(lái)確定IDE(集成開(kāi)發(fā)環(huán)境)是否已經(jīng)知道 SDK的安裝目錄。
2. 設(shè)置Web服務(wù)器:Tomcat
目前,市場(chǎng)上有很多支持JSP和Servlets開(kāi)發(fā)的Web服務(wù)器。他們中的一些可以免費(fèi)下載和使用,Tomcat就是其中之一。
Apache Tomcat是一個(gè)開(kāi)源軟件,可作為獨(dú)立的服務(wù)器來(lái)運(yùn)行JSP和Servlets,也可以集成在 Apache Web Server中。以下是Tomcat的配置方法:
下載最新版本的Tomcat:http://tomcat.apache.org/。
下載完安裝文件后,將壓縮文件解壓到一個(gè)方便的地方,比如Windows下的C:\apache-tomcat-5.5.29目錄或者Linux/Unix下的/usr/local/apache-tomcat-5.5.29目錄,然后創(chuàng)建CATALINA_HOME環(huán)境變量指向這些目錄。
在Windows機(jī)器下,Tomcat可以通過(guò)執(zhí)行以右命令來(lái)啟動(dòng):%CATALINA_HOME%\bin\startup.bat 或者 C:\apache-tomcat-5.5.29\bin\startup.bat
在Linux/Unix機(jī)器下,Tomcat可以通過(guò)執(zhí)行以右命令來(lái)啟動(dòng):$CATALINA_HOME/bin/startup.sh 或者 /usr/local/apache-tomcat-5.5.29/bin/startup.sh
成功啟動(dòng)Tomcat后,通過(guò)訪問(wèn)http://localhost:8080/便可以使用Tomcat自帶的一些web應(yīng)用了。
在Windows機(jī)器下,Tomcat可以通過(guò)執(zhí)行以下命令來(lái)停止:%CATALINA_HOME%\bin\shutdown 或者 C:\apache-tomcat-5.5.29\bin\shutdown
在Linux/Unix機(jī)器下,Tomcat可以通過(guò)執(zhí)行以下命令來(lái)停止:$CATALINA_HOME/bin/shutdown.sh 或者 /usr/local/apache-tomcat-5.5.29/bin/shutdown.sh
3. 設(shè)置CLASSPATH環(huán)境變量
由于servlets不是Java SE的一部分,所以您必須標(biāo)示出servlet類(lèi)的編譯器。
假如您用的是Windows機(jī)器,您需要在C:\autoexec.bat文件中添加以下兩行:
set CATALINA=C:\apache-tomcat-5.5.29
set CLASSPATH=%CATALINA%\common\lib\jsp-api.jar;%CLASSPATH%
或者,在Windows NT/2000/XP下,您只要右擊我的電腦,選擇屬性,然后點(diǎn)擊高級(jí),然后點(diǎn)擊環(huán)境變量,接下來(lái)便可以設(shè)置CLASSPATH變量并且確定退出即可。
在Linux/Unix機(jī)器下,假如您使用的是C shell,那么您就需要在.cshrc文件中添加以下兩行:
setenv CATALINA=/usr/local/apache-tomcat-5.5.29
setenv CLASSPATH $CATALINA/common/lib/jsp-api.jar:$CLASSPATH
注意:如果您的開(kāi)發(fā)路徑是C:\JSPDev (Windows)或者 /usr/JSPDev (Linux/Unix),那么您就需要將這些路徑添加進(jìn)CLASSPATH變量中。
::::::::::::::::::::::::::::::::::::::::::::::::::::::
Eclipse JSP/Servlet 環(huán)境搭建
我們可以使用 Eclipse 來(lái)搭建 JSP 開(kāi)發(fā)環(huán)境,首先我們分別下載一下軟件包:
Eclipse J2EE:http://www.eclipse.org/downloads/
Tomcat:http://tomcat.apache.org/download-70.cgi
。。。
Tomcat 下載安裝
你可以根據(jù)你的系統(tǒng)下載對(duì)應(yīng)的包(以下以Window系統(tǒng)為例):
注意目錄名不能有中文和空格。目錄介紹如下:
bin:二進(jìn)制執(zhí)行文件。里面最常用的文件是startup.bat,如果是 Linux 或 Mac 系統(tǒng)啟動(dòng)文件為 startup.sh。
conf:配置目錄。里面最核心的文件是server.xml??梢栽诶锩娓亩丝谔?hào)等。默認(rèn)端口號(hào)是8080,也就是說(shuō),此端口號(hào)不能被其他應(yīng)用程序占用。
lib:庫(kù)文件。tomcat運(yùn)行時(shí)需要的jar包所在的目錄
logs:日志
temp:臨時(shí)產(chǎn)生的文件,即緩存
webapps:web的應(yīng)用程序。web應(yīng)用放置到此目錄下瀏覽器可以直接訪問(wèn)
work:編譯以后的class文件。
接著我們可以雙擊 startup.bat 啟動(dòng) Tomcat
這個(gè)時(shí)候,本地的服務(wù)器就已經(jīng)搭建起來(lái)了。如果想關(guān)閉服務(wù)器,可以直接關(guān)閉上面的窗口,或者在里面輸入Ctrl+C禁止服務(wù)。
接著我們?cè)跒g覽器中輸入 http://localhost:8080/,表示tomcat安裝成功并且啟動(dòng)起來(lái)了
::::::::::::::::::::::::::::::::::::::::::::::::
JSP 結(jié)構(gòu)
網(wǎng)絡(luò)服務(wù)器需要一個(gè)JSP引擎,也就是一個(gè)容器來(lái)處理JSP頁(yè)面。容器負(fù)責(zé)截獲對(duì)JSP頁(yè)面的請(qǐng)求。本教程使用內(nèi)嵌JSP容器的Apache來(lái)支持JSP開(kāi)發(fā)。
JSP容器與Web服務(wù)器協(xié)同合作,為JSP的正常運(yùn)行提供必要的運(yùn)行環(huán)境和其他服務(wù),并且能夠正確識(shí)別專(zhuān)屬于JSP網(wǎng)頁(yè)的特殊元素。
。。。
JSP處理
以下步驟表明了Web服務(wù)器是如何使用JSP來(lái)創(chuàng)建網(wǎng)頁(yè)的:
-就像其他普通的網(wǎng)頁(yè)一樣,您的瀏覽器發(fā)送一個(gè)HTTP請(qǐng)求給服務(wù)器。
-Web服務(wù)器識(shí)別出這是一個(gè)對(duì)JSP網(wǎng)頁(yè)的請(qǐng)求,并且將該請(qǐng)求傳遞給JSP引擎。通過(guò)使用URL或者.jsp文件來(lái)完成。
-JSP引擎從磁盤(pán)中載入JSP文件,然后將它們轉(zhuǎn)化為servlet。這種轉(zhuǎn)化只是簡(jiǎn)單地將所有模板文本改用println()語(yǔ)句,并且將所有的JSP元素轉(zhuǎn)化成Java代碼。
-JSP引擎將servlet編譯成可執(zhí)行類(lèi),并且將原始請(qǐng)求傳遞給servlet引擎。
-Web服務(wù)器的某組件將會(huì)調(diào)用servlet引擎,然后載入并執(zhí)行servlet類(lèi)。在執(zhí)行過(guò)程中,servlet產(chǎn)生HTML格式的輸出并將其內(nèi)嵌于HTTP response中上交給Web服務(wù)器。
-Web服務(wù)器以靜態(tài)HTML網(wǎng)頁(yè)的形式將HTTP response返回到您的瀏覽器中。
-最終,Web瀏覽器處理HTTP response中動(dòng)態(tài)產(chǎn)生的HTML網(wǎng)頁(yè),就好像在處理靜態(tài)網(wǎng)頁(yè)一樣。
一般情況下,JSP引擎會(huì)檢查JSP文件對(duì)應(yīng)的servlet是否已經(jīng)存在,并且檢查JSP文件的修改日期是否早于servlet。如果JSP文件的修改日期早于對(duì)應(yīng)的servlet,那么容器就可以確定JSP文件沒(méi)有被修改過(guò)并且servlet有效。這使得整個(gè)流程與其他腳本語(yǔ)言(比如PHP)相比要高效快捷一些。
總的來(lái)說(shuō),JSP網(wǎng)頁(yè)就是用另一種方式來(lái)編寫(xiě)servlet而不用成為Java編程高手。除了解釋階段外,JSP網(wǎng)頁(yè)幾乎可以被當(dāng)成一個(gè)普通的servlet來(lái)對(duì)待。