初學者如何快速入門JSP實例分析
2024-09-05 00:20:08
供稿:網友
1) jsp(javaserver pages)簡介:在當今世界,流行的internet應用程序開發主要有:asp,php,cgi,jsp……等多種方案,技術上各有優缺點,但是jsp以其簡單易學,跨平臺的特性,在眾多程序中獨樹一幟,在短短幾年中已經形成了一套完整的規范,并廣泛的應用于電子商務等各個領域中。在國內jsp現在也得到了比較廣泛的重視。
2) 如何才能快速掌握jsp:jsp實際上是jsp定義的一些標記和java程序段,以及html文件的混合體。所以,如果要掌握jsp首先必須對html有一定的了解(不然怎么設計網頁),然后,也必須有java程序的基礎(要知道jsp是基于java語言的),最后就是對jsp標識的一些必要的了解(它使你知道如何用java語言及html組合成完整的jsp),而此篇文章我們在這里主要是對jsp標識及語法規則進行介紹。所以最好對html及java語言有一點了解,如果沒有學過也沒有關系,下面的介紹會讓你對jsp有一個比較直觀的了解。
3) 體會簡單易學的jsp:jsp簡單而易學,如果你有了html的基礎,要學會就很容易的了,不信?先拿一段jsp程序給你看看吧(簡單而經典的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>
運行之后,在窗口上的輸出字符串hello world! jsp example,怎么樣,一看就懂了吧,的確很簡單的,除去"< %% >"標識,其他的都是普通的超文本,如果你有了超文本的基礎,一看便知道了;不過他和超文本還是有了一點區別,那就是加入了"< %% >"標識,標識之中使用的是java程序,由它來控制動態數據的顯示的,并直接輸出到標識符所嵌入的位置,整個結構顯得相當的直觀,以后如果頁面發生了變化,修改也變得十分的容易。至于程序第一行的標識,我們暫時可以不必管他,在后面,我們會對這類語法做相應的介紹。
看了上面的jsp程序,你對jsp應該也有了一點了解了吧,是的,學習jsp是并不是一件難事,而且以后,你會越發感受到jsp的優勢,他的跨平臺特性在internet開發程序中可謂是獨樹一幟,因為jsp技術是構建于java語言之上的,他的很多特性和應用都來自java語言,所以如果你要學好jsp,需要有java編程的基礎(關于java語言,我這里就不多介紹了,可以參看相應的書籍,向大家推薦:《java2程序設計》(清華大學出版社))
4) jsp從頭做起:
a) 從www.java.sun.com下載jdk(java開發工具包),并安裝,現假設為c:/jdk1.3 b) 組建jsp運行環境:要使jsp運行起來首先要建造jsp運行環境?,F在我們常用到的應用程序服務器軟件主要有weblogic application server,apache tomcat,allarie jrun。weblogic是現在市場上占有率最高的一種服務器軟件,功能強大,配置也很簡單,作為商業應用的服務器是很好的選擇,不過作為初學應用,建議還是不要的好,因為這是商業軟件需要購買。
jrun是由allarie公司開發的服務器軟件,也有比較高的聲譽,和weblogic一樣也是很好的選擇,也是商業軟件。初學,tomcat便是你最好的選擇,他是一個免費的服務器軟件,而且他的源代碼可以免費獲得,當你對它有深入的了解之后,可以自由的對他進行擴充,以適應你自己的需要,雖然配置麻煩了一點,但以上的這么多優點,它是我們當之無愧的最佳選擇。下面我們就以tomcat為實例,向大家介紹win2000下jsp環境的配置:
1) 首先,從apache網站(http://java.apache.org)上下載tomcat,下載的是一個.zip文件(jakarta-tomcat.zip),把它解壓到你的目錄下面,假設為c:/tomcat。
2) 進入tomcat的目錄里,找到startup.bat文件,打開編輯。在行call tomcat start的前面加上兩行: set tomcat_home=c:/tomcat 和 set java_home=c:/jdk1.3 注:c:/jdk1.3是jdk1.3安裝的位置。
3) 然后鼠標右鍵點擊"我的電腦",選擇屬性。在系統屬性中打開高級選項,點擊"環境變量",在"用戶變量"和"系統變量"中都加入兩個變量classpath和path,它們的值是:classpath的值 c:/jdk1.3/bin/tools.jar;c:/jdk1.3/lib/dt.jar path的值為 c:/jdk1.3/bin;c:/jdk1.3
4) 執行jakarta-tomcat/bin/startup.bat,會看到一個打開的tocmat啟動窗口,
5) 打開瀏覽器,輸入:http://localhost:8080,回車就可以看到tomcat的主頁面了
b) jsp的基本語法簡介:
i. 注釋語句:"< %-- comment --% >"在編譯的時候將跳過此標識;
ii. 插入一個有效的程序段 :< % code % >
iii. 定義jsp文件中的全局屬性:
< %@ page
[ language="java" ]
//聲明腳本語言的種類
[ extends="package.class" ]
//標明jsp編譯時需要加入的java class的全名,
但是得慎重的使用它,它會限制jsp的編譯能力.
[ import="{package.class / package.*}, ..." ]
//需要導入的java包的列表
[ session="true / false" ]
//設定客戶是否需要http session
[ buffer="none / 8kb / sizekb" ]
//buffer的大小被out對象用于處理
執行后的jsp對客戶瀏覽器的輸出
[ autoflush="true / false" ]
//設置如果buffer溢出,是否需要強制輸出,
如果其值被定義為true(缺省值),輸出正常,
如果它被設置為false,如果這個buffer溢出,
就會導致一個意外錯誤的發生.如果你把buffer設置為none,
那么你就不能把autoflush設置為false.
[ isthreadsafe="true / false" ] //設置jsp文件是否能多線程使用。缺省值是true,也就是說,
jsp能夠同時處理多個用戶的請求,如果設置為false,
一個jsp只能一次處理一個請求
[ info="text" ]
//一個文本在執行jsp將會被逐字加入jsp中,
你能夠使用servlet.getservletinfo方法取回。
[ errorpage="relativeurl" ]
//設置此頁是否為出錯頁,
如果被設置為true,你就能使用exception對象
[ contenttype="mimetype
[ ;charset=characterset ]"
/ "text/html ; charset=iso-8859-1" ]
//設置mime類型 。缺省mime 類型是: text/html,
缺省字符集為 iso-8859-1
[ iserrorpage="true / false" ] %>
iv. 包含一個文件:
"< %@ include file="relativeurl" %> "
在編譯的時候可以(靜態的)插入文件;
v. 包含一個表達式:
"< %= expression %>"
在運行的時候顯示的是表達式的值;
vi. 申明變量:
" < %! declaration;
[ declaration; ]+ .. % >";
如
"< %!int i;% >"
vii. 創建一個bean實例并設置其屬性:"";class屬性:從一個class中示例一個對象;id屬性:指示此class對象的引用名;scope屬性: bean存在的范圍以及id變量名的有效范圍,如果為page則只在此頁面類有效(下次調用該頁面時時將重新創建class對象);如為session則在session有效期類,此class對象只創建一次;如為application則class在整個程序運行工程中始終有效,并且只創建一次(相當于靜態量)
d) tomcat的jsp例程介紹:
< !-- copyright (c)
1999 the apache software
foundation. all rights
reserved.
number guess game
written by jason hunter
< [email protected]>,
cto, k&a software
http://www.servlets.com -->;
< %@ page import = "num.numberguessbean" %>
< ! -導入的java包- >
< jsp:usebean id="numguess"
class="num.numberguessbean"
scope="session"/ >
< ! -創建對象并設置其應用名為numguess
并申明此對象在session有效期內始終有效-->
< html>
< head>
< title>number guess< /title>
< /head>
< body bgcolor="white">
< font size=4>
< % if (numguess.getsuccess())
{
%>
//調用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是通過程序的邏輯來控制頁面的顯示的,通過程序來得到顯示的動態屬性。