1) JSP(JavaServer Pages)簡介:在當(dāng)今世界,流行的Internet應(yīng)用程序開發(fā)主要有:ASP,PHP,CGI,JSP……等多種方案,技術(shù)上各有優(yōu)缺點(diǎn),但是JSP以其簡單易學(xué),跨平臺的特性,在眾多程序中獨(dú)樹一幟,在短短幾年中已經(jīng)形成了一套完整的規(guī)范,并廣泛的應(yīng)用于電子商務(wù)等各個領(lǐng)域中。在國內(nèi)JSP現(xiàn)在也得到了比較廣泛的重視 2) 如何才能快速掌握J(rèn)SP:JSP實際上是JSP定義的一些標(biāo)記和JAVA程序段,以及HTML文件的混合體。所以,如果要掌握J(rèn)SP首先必須對HTML有一定的了解(不然怎么設(shè)計網(wǎng)頁),然后,也必須有JAVA程序的基礎(chǔ)(要知道JSP是基于JAVA語言的),最后就是對JSP標(biāo)識的一些必要的了解(它使你知道如何用JAVA語言及HTML組合成完整的JSP),而此篇文章我們在這里主要是對JSP標(biāo)識及語法規(guī)則進(jìn)行介紹。所以最好對HTML及JAVA語言有一點(diǎn)了解,如果沒有學(xué)過也沒有關(guān)系,下面的介紹會讓你對JSP有一個比較直觀的了解。 3) 體會簡單易學(xué)的JSP:JSP簡單而易學(xué),如果你有了HTML的基礎(chǔ),要學(xué)會就很容易的了,不信?先拿一段JSP程序給你看看吧(簡單而經(jīng)典的HelloWord.jsp): < %page language="java"% > < HTML> < head > < title>Hello World!< /title> < /head> < body bgcolor="#FFFFFF"> < %String msg="JSP Example";//定義字符串對象 out.println("Hello World!"); %> < %=msg%> < !-顯示變量值- > < /body> < /HTML> 運(yùn)行之后,在窗口上的輸出字符串Hello World! JSP Example,怎么樣,一看就懂了吧,的確很簡單的,除去"< %% >"標(biāo)識,其他的都是普通的超文本,如果你有了超文本的基礎(chǔ),一看便知道了;不過他和超文本還是有了一點(diǎn)區(qū)別,那就是加入了"< %% >"標(biāo)識,標(biāo)識之中使用的是JAVA程序,由它來控制動態(tài)數(shù)據(jù)的顯示的,并直接輸出到標(biāo)識符所嵌入的位置,整個結(jié)構(gòu)顯得相當(dāng)?shù)闹庇^,以后如果頁面發(fā)生了變化,修改也變得十分的容易。至于程序第一行的標(biāo)識,我們暫時可以不必管他,在后面,我們會對這類語法做相應(yīng)的介紹。 看了上面的JSP程序,你對JSP應(yīng)該也有了一點(diǎn)了解了吧,是的,學(xué)習(xí)JSP是并不是一件難事,而且以后,你會越發(fā)感受到JSP的優(yōu)勢,他的跨平臺特性在Internet開發(fā)程序中可謂是獨(dú)樹一幟,因為JSP技術(shù)是構(gòu)建于JAVA語言之上的,他的很多特性和應(yīng)用都來自JAVA語言,所以如果你要學(xué)好JSP,需要有JAVA編程的基礎(chǔ)(關(guān)于JAVA語言,我這里就不多介紹了,可以參看相應(yīng)的書籍,向大家推薦:《JAVA2程序設(shè)計》(清華大學(xué)出版社)) 4) JSP從頭做起: a) 從www.java.sun.com下載JDK(JAVA開發(fā)工具包),并安裝,現(xiàn)假設(shè)為c:\jdk1.3 b) 組建JSP運(yùn)行 環(huán)境:要使JSP運(yùn)行起來首先要建造JSP運(yùn)行環(huán)境。 現(xiàn)在我們常用到的應(yīng)用程序服務(wù)器軟件主要有WebLogic Application Server,Apache Tomcat,Allarie Jrun。WebLogic是現(xiàn)在市場上占有率最高的一種服務(wù)器軟件,功能強(qiáng)大,配置也很簡單,作為商業(yè)應(yīng)用的服務(wù)器是很好的選擇,不過作為初學(xué)應(yīng)用,建議還是不要的好,因為這是商業(yè)軟件,需要money的。Jrun是由Allarie公司開發(fā)的服務(wù)器軟件,也有比較高的聲譽(yù),和WebLogic一樣也是很好的選擇,也是商業(yè)軟件。初學(xué),還是找個便宜點(diǎn)(最好是不要錢的:)),Tomcat便是你最好的選擇,他是一個免費(fèi)的服務(wù)器軟件,而且他的源代碼可以免費(fèi)獲得,當(dāng)你對它有深入的了解之后,可以自由的對他進(jìn)行擴(kuò)充,以適應(yīng)你自己的需要,雖然配置麻煩了一點(diǎn),但以上的這么多優(yōu)點(diǎn),它是我們當(dāng)之無愧的最佳選擇。下面我們就以Tomcat為實例,向大家介紹win2000下JSP環(huán)境的配置: 1) 首先,從apache網(wǎng)站(http://java.apache.org)上下載Tomcat,下載的是一個.zip文件(jakarta-tomcat.zip),把它解壓到你的目錄下面,假設(shè)為c:\tomcat。 2) 進(jìn)入tomcat的目錄里,找到startup.bat文件,打開編輯。在行call tomcat start的前面加上兩行: SET TOMCAT_HOME=c:\tomcat 和 SET JAVA_HOME=c:\jdk1.3 注:c:\jdk1.3是jdk1.3安裝的位置。 3) 然后鼠標(biāo)右鍵點(diǎn)擊"我的電腦",選擇屬性。在系統(tǒng)屬性中打開高級選項,點(diǎn)擊"環(huán)境變量",在"用戶變量"和"系統(tǒng)變量"中都加入兩個變量classpath和path,它們的值是:classpath的值 c:\jdk1.3\bin\tools.jar;C:\jdk1.3\lib\dt.jar path的值為 c:\jdk1.3\bin;c:\jdk1.3 4) 執(zhí)行jakarta-tomcat\bin\startup.bat,會看到一個打開的Tocmat啟動窗口, 5) 打開瀏覽器,輸入:http://localhost:8080,回車就可以看到TOMCAT的主頁面了 c) JSP的基本語法簡介: i. 注釋語句:"< %-- comment --% >"在編譯的時候?qū)⑻^此標(biāo)識; ii. 插入一個有效的程序段 :< % code % > iii. 定義JSP文件中的全局屬性: < %@ page [ language="java" ] //聲明腳本語言的種類 [ extends="package.class" ] //標(biāo)明JSP編譯時需要加入的Java Class的全名,但是得慎重的使用它,它會限制JSP的編譯能力. [ import="{package.class / package.*}, ..." ] //需要導(dǎo)入的Java包的列表 [ session="true / false" ] //設(shè)定客戶是否需要HTTP Session [ buffer="none / 8kb / sizekb" ] //buffer的大小被out對象用于處理執(zhí)行后的JSP對客戶瀏覽器的輸出 [ autoFlush="true / false" ] //設(shè)置如果buffer溢出,是否需要強(qiáng)制輸出,如果其值被定義為true(缺省值),輸出正常,如果它被設(shè)置為false,如果這個buffer溢出,就會導(dǎo)致一個意外錯誤的發(fā)生.如果你把buffer設(shè)置為none,那么你就不能把a(bǔ)utoFlush設(shè)置為false. [ isThreadSafe="true / false" ] //設(shè)置Jsp文件是否能多線程使用。缺省值是true,也就是說,JSP能夠同時處理多個用戶的請求,如果設(shè)置為false,一個jsp只能一次處理一個請求 [ info="text" ] //一個文本在執(zhí)行JSP將會被逐字加入JSP中,你能夠使用Servlet.getServletInfo方法取回。 [ errorPage="relativeURL" ] //設(shè)置此頁是否為出錯頁,如果被設(shè)置為true,你就能使用exception對象 [ contentType="mimeType ][ ;charset=characterSet ]" / "text/html ; charset=ISO-8859-1" ] //設(shè)置MIME類型 。缺省MIME 類型是: text/html, 缺省字符集為 ISO-8859-1 [ isErrorPage="true / false" ] %> iv. 包含一個文件:"< %@ include file="relativeURL" %> ",在編譯的時候可以(靜態(tài)的)插入文件; v. 包含一個表達(dá)式:"< %= expression %>"在運(yùn)行的時候顯示的是表達(dá)式的值; vi. 申明變量:" < %! declaration; [ declaration; ]+ .. % >";如"< %!int I;% >" vii. 創(chuàng)建一個Bean實例并設(shè)置其屬性:"";class屬性:從一個class中示例一個對象;id屬性:指示此class對象的引用名;scope屬性: Bean存在的范圍以及id變量名的有效范圍,如果為page則只在此頁面類有效(下次調(diào)用該頁面時時將重新創(chuàng)建class對象);如為session則在session有效期類,此class對象只創(chuàng)建一次;如為Application則class在整個程序運(yùn)行工程中始終有效,并且只創(chuàng)建一次(相當(dāng)于靜態(tài)量) d) Tomcat的JSP例程介紹: < !-- Copyright (c) 1999 The Apache Software Foundation. All rights reserved. Number Guess Game Written by Jason Hunter < jasonh@kasoftware.com>, CTO, K&A Software http://www.servlets.com --> < %@ page import = "num.NumberGuessBean" %> < ! -導(dǎo)入的Java包- > < jsp:useBean id="numguess" class="num.NumberGuessBean" scope="session"/ > < ! -創(chuàng)建對象并設(shè)置其應(yīng)用名為numguess并申明此對象在session有效期內(nèi)始終有效--> < html> < head> < title>Number Guess< /title> < /head> < body bgcolor="white"> < font size=4> < % if (numguess.getSuccess()) { %> //調(diào)用NumberGuessBean對象的getSuccess方法 Congratulations! You got it. And after just < %= numguess.getNumGuesses()%> tries.< p> < % numguess.reset(); %> Care to < a href="numguess.jsp">try again? < % } else if (numguess.getNumGuesses() == 0) { %> Welcome to the Number Guess game. I'm thinking of a number between 1 and 100. < form method=get> What's your guess? < input type=text name=guess> < input type=submit value="Submit"> < /form> < % } else { %>// Good guess, but nope. Try < b> < %= numguess.getHint() %>< /b>. You have made < %= numguess.getNumGuesses() %> guesses.< p> I'm thinking of a number between 1 and 100. < form method=get> What's your guess? < input type=text name=guess> < input type=submit value="Submit"> < /form> < % } %> < /font> < /body> < /html> 從例子我們可以看到,JSP是通過程序的邏輯來控制頁面的顯示的,通過程序來得到顯示的動態(tài)屬性。 5) 相關(guān)網(wǎng)站介紹 a) www.java.sun.com b) www.servlets.com c) www.21icsearch.com/aspfans/jspfans/default.jsp d) http://java.apache.org
|