亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JSP > 正文

新手入門:了解JSP動態網頁制作技術

2024-09-05 00:19:45
字體:
來源:轉載
供稿:網友

javaserver pages (jsp) 是一種結合了跨平臺與跨網站服務器機制,以 java為主的技術來產生動態網頁。 jsp與微軟的asp(active server pages )相容,但它是使用類似html的標簽以及java代碼片段而不是vbscript。當你所使用的網站服務器沒有提供本地asp支援,也就是apache或netscape服務器時,你可以考慮使用jsp。雖然你可以取得這些服務器的asp附加配備程序,但價格相當昂貴,而目前sun并沒有對你所要的jsp組件收取費用(雖然sun未來有可能會收費)。對於solaris與linux以及windows,這些組件也都很容易取得。

請不要將jsp與服務器端的javascript混為一談。網站服務器會自動將以jsp寫成的java代碼片段轉換成java servlets。而許多先前必須以perl手寫程式或服務器特定的api(如asp)控制的功能也都可透過jsp來自動化處理。

現在就讓我們開始動手幫助你建立一個可執行jsp范例網站。

一、如何安裝好你的機器來使用jsp

你將需要java 2軟件開發工具(jsdk),它原來的名稱是java開發工具(jdk)以及javaserver網站開發工具(jswdk),tomcat,或是其他支援jsp的網絡服務器。sun免費提供jsdk與jswdk來供windows,solaris,以及linux平臺使用。

如果你想要在你目前的網絡服務器上使用jsp,但服務器本身并不支援jsp與java servlets,你可以試試看allaire的jrun, 它的作用就像是針對netscape企業版與fasttrack服務器、微軟的網絡資訊服務器(iis)與個人網絡服務器(pws)、apache、以及其他服務器的網絡服務器附加設備。你也可以使用apache網絡服務器的java版本,最新的jswdk里有提供。

1、下載與安裝你需要的組件

目前發表的1.2.2-001,jsdk可下載的版本是以可安裝的壓縮文檔形式。下載的文件大約是20mb,可提供完整的java發展環境,讓你能建立利用標準api為核心的java解決之道。然而,你的網絡服務器需要應用到jsp的唯一一件事是java編譯器。要讓網絡服務器知道編譯器的位置,將環境參數java.home設到jsdk的安裝目錄。如果你是在windows上安裝并且接受預設目錄,將這行代碼set java.home=c:/1.2.2加到你的autoexec.bat文件并且重新開機。

在安裝好jsdk之後,下載并且安裝jswdk或beta版的tomcat,以java為主的apache網絡服務器。安裝在哪里并不重要,重要的是你可以找到它。一般而言,它會放在上層目錄,這種方式可以讓你取代jswdk或 jsdk的網絡服務器,不需要移動其他的網絡服務器。在你安裝好這個文件之後,你就可以準備使用jsp了。

在你正確的安裝jswdk之後,執行startserver指令來啟動網絡服務器,預設通訊口為8080。要看你在啟動服務器之後是否有正確的安裝工具,你可以載入范例jsp文件中的任何一個(http://localhost:8080/examples/jsp/)。如果你能夠成功的執行一個范例文件,你可以知道你已經正確的設定好軟件了。如果你在啟動服務器的控制臺視窗看到錯誤訊息,那麼你需要解決這個問題。最常發生的問題是沒有設定(或者不正確設定)環境參數java.home。 要檢查目前的環境設定,在dos模式下鍵入set。

2、開始解釋jsp語法 之前,先建立一個顯示目前日期與時間的快速網頁并且將它儲存成sample.jsp:

<html>
<head>
<title>first page</title>
</head>
<body>
<h3>today is:
<%= new java.util.date() %>
</h3>
</body>
</html>.

將這個文件與你所有的html與jsp網頁放在你jswdk安裝目錄下的網頁目錄里. 你可以在http://localhost:8080/sample.jsp下載此頁.當你第一次參觀這個網頁時,網站服務器會將jsp翻譯成java servlet代碼,那你就會看到目前的日期與時間.

現在你已經下載,安裝,并且架構好環境,你已經準備好要了解jsp語法與建立你自己的jsp為主的解決之道.

二、jsp語法的基本原理

安裝之後,接下來我們要討論jsp的語法.如果要偷懶,你可以下載語法卡,如果你不熟悉 java的程序設計,你可能會想要參考sun的使用手冊;然而,網站建立者不應該做太多的java使用程序,除了幾個函數式之外,出現在你jsp網頁上的java程序碼應該將它減到最少。

記住這點之後,現在讓我們先來看看jsp的編譯器指引與指令元件,之後我們將解釋javabeans與內部物件. jsp編譯器指引與指令元件有五種型態.jsp 1.0之後,大部分的jsp是包含在以<% 作為開始%>作為結束的單一標簽里,新的 jsp 1.1規格已經發表了,它同時也與xml相容。

1、jsp的編譯器指引與指令元件

編譯器指引 <%@ 編譯器指引 %>

預定義 <%! 預定義 %>

運算式 <%= 運算式 %>

程序碼片段/小型指令 <% 程序碼片段 %>

注解 <%-- 注解 --%>

2、編譯器指引

jsp的編譯器指引是針對jsp引擎。它們并不會直接產生任何看得見的輸出;相反的,它們是在告訴引擎如何處理其他的jsp網頁。它們永遠包含在 <%@ ?%>標簽里。兩個主要的指引是 page與include。我們不會討論taglib編譯器指引但它可以在jsp1.1里用來建立自訂標簽。

你幾乎可以在你所有的jsp網頁最上面找到page編譯器指引。雖然這不是必須的,但它可以讓你指定到那里可以找到支持的java類別: <%@ page import="java.util.date" %>, 當發生java問題的事件時應該將信息傳送到那里: <%@ page errorpage="errorpage.jsp" %>, 以及你是否要為使用者管理通話期的通信,可能存取多個網頁(稍後在javabeans里會有更多通話期的討論): <%@ page session="true" %>。

include編譯器指引讓你將你的內容分成幾個可管理的元件,就像那些有表頭或注腳的網頁。所包含的網頁可以是固定格式的html網頁或者是jsp內容的網頁:

<%@ include file="filename.jsp" %>。

3、jsp預定義讓你定義網頁層的參數,來儲存信息或定義支持的函數式,讓jsp網頁的其余部分能夠使用。如果你發現自己有太多的程序碼,你最好將它們放在不同的java類別里。你可以在 <%! ?%>標簽里找到預定義。記住要在參數預定義的後面加上分號,就跟任何有效的java敘述的形式一樣: <%! int i=0; %>。

4、jsp里有運算式,評估運算式的結果可以轉換成字串并且直接使用在輸出網頁上。jsp運算是屬於 <%= ?%> 標簽里,并不包含分號,加引號字串的無用部分:

<%= i %>
<%= "hello" %>

5、jsp程序碼片段或小型指令文件是包含在<% ?%> 標簽里。當網絡服務器接受這段請求時,這段java程序碼會執行。小型指令文件可以是原始的html或xml,其內部的程序碼片段可以讓你建立有條件的執行程序碼,或者只是一些使用另一塊程序碼的東西。舉例來說,下列的程序碼結合了運算式與小型指令文件,在h1,h2,h3,以及h4標簽里顯示字串"hello"。小型指令文件不限於一行的原始程序碼 :

<% for (int i=1; i<=4; i++) { %>
<h<%=i%>>hello</h<%=i%>>
<% } %>。

注解.

最後一個主要jsp元件是嵌入式注解。雖然你可以在你的文件里包含html注解,如果使用者檢視網頁的原始碼,他們也會看到這些注解。如果你不要讓使用者看到你的注解,你可以將它放在<%-- ?--%>標簽里:

<%-- 針對服務器端的注解 --%>。

三、jsp與javabean

雖然你可以在小型指令檔里放入一大塊的代碼,但是大多數的java代碼是屬於可以重復使用的元件,稱為javabean。javabean就跟activex控制項一樣:它們提供已知的功能,并且是為了可隨時重復使用的目的而設計的。

javabean的¤值在於它可以經由一組特性來使用,而這些特性則提供對javabean設定的存取。以人來作范例,此人就是javabean,而他的姓名,社會福利安全號碼,以及住址可以是特性。對於jsp網站,基本上你是將'javabean'動態的連接到你的網站。

假設javabean是在建立網站之前建好的,你要做的第一件事是告訴jsp網頁它所需要使用javabean,這工作可以用<jsp:usebean>標簽來完成:

<jsp:usebean id="localname" class="com.jjj.person" scope="application" />.

<jsp:usebean>標簽需要你以id 屬性來辨識usebean.在這里,你提供一個名稱讓jsp網頁來辨識usebean,除了id 屬性之外,你也必須告訴網頁要到哪里去找這個usebean,或者是它的java類別名稱。類別屬性提供如何在各式方法之中找到它,最後一個需要的元件是scope 屬性。有了范圍屬性的幫助,你可以告訴usebean,要它為單一網頁(預設)[scope="page"];為一個被請求的網頁[scope="request"];為通話期[scope="session"]; 或為整個應用程式[scope="application"]來維護它自己的資源。對於通話期范圍,你可以很容易的維護jsp網頁里的項目,例如購物車: 一旦你宣告了javabean之後,你就可以存取它的特性來訂購它。要取得一特性的值,使用<jsp:getproperty>標簽。有了<jsp:getproperty>標簽,你可以指定要使用的usebean名稱(從usebean的id欄位),以及你要取得值的特性。接著,真正的值就會放在輸出里:

<jsp:getproperty id="localname" property="name" />.

要更改javabean的特性,你需要使用<jsp:setproperty>標簽.對這個標簽,你也需要辨認usebean以及要修正的特性,除此之外,你還需要提供新值。如果命名正確,這些可以直接經由規定的格式取得:

<jsp:setproperty id="localname" property="*" />;

要從一參數取得,你必須直接命名此特性以及參數:

<jsp:setproperty id="localname" property="address" param="parametername" />;

或是直接以名稱與值來設定:

<jsp:setproperty id="localname" property="serialnumber" value="string" /> or <jsp:setproperty id="localname" property="serialnumber" value= <%= expression %> />.

有關javabean的最後一點:要讓網絡服務器可以找到javabean,你 要將它們的類別文件放在特別位置。對jswdk而言,最簡單的地方是在安裝目錄里的類別目錄,例如 /jswdk-1.0.1/classes.

四、jsp的內部物件

最後一個與jsp語法有關的元件叫做內部物件.在jsp小型指令檔內,你可以存取這些內部物件來與執行jsp網頁的servlet環境相互作用。許多對內部物件的存取應該要簡化。然而,這些是范例,它們的存取都是可接受的,要完整的利用內部物件設定則 要對最新的java servlet api有所了解。

有關內部物件說明:

request 用戶端請求,此請求會包含來自get/post請求的參數

response 網頁傳回用戶端的回應

pagecontext 網頁的屬性是在這里管理

session 與請求有關的通話期

application servlet正在執行的內容

out 用來傳送回應的輸出資料流

config servlet的架構物件

page jsp網頁本身

exception 針對錯誤網頁,未捕捉的例外

那麼,這些是做什麼的,而你應該如何使用它們呢?基本上,在你的小型指令檔里,你可以使用它們來存取執行jsp代碼的servlet。 為了避免談論到太多servlet api 的細節,讓我們來檢驗一些你可以利用它們來做的事: 不必使用運算式,你可以直接存取內部out物件來列印一些東西到response:

<% out.println("hello"); %>.

不必直接傳送參數到javabean,你可以藉由請求物件來取得參數的值:

<% string name=request.getparameter("name"); out.println(name); %>。

當你以jsp寫了許多的應用程式之後,如果你建立了javabeans或者發現你自己將太多的java原始碼放入你的jsp檔案,你需要建立支援的java類別,這樣可以鼓勵重復使用并且降低jsp網頁轉換時所需要的時間。當你需要建立java類別時,你必須: 將jdswk的安裝目錄/bin目錄加到你的path。在你的autoexec.bat檔案的path行的最後,加入c:/1.2.2/bin; 。

以下面的指令將jar檔案復制到/jre/lib/ext目錄:

copy c:/jswdk-1.0.1/lib/servlet.jar c:/jdk1.2.2/jre/lib/ext.

五、 建立一jsp網站

現在到了將所有的jsp語法放在一起使用的時候了。我們將會建立一個具有輸入格式的網站,讓使用者來輸入股票代號并且獲得目前股票的價格(大約延遲20分鐘)。如果有錯誤,則錯誤網頁會顯示。

quote.jsp

首先,以這段代碼建立quote.jsp并且將它儲存在jswdk安裝目錄的網頁目錄里。網頁的大部分內容是標準的html格式,而jsp代碼分散各處。第6行是網頁編輯器指引,指示將任何錯誤傳送到errorpage.jsp檔案。第13行到15行是小型指示碼,基本上是說只有當"symbol"參數存在時才顯示表格。這個if區段包含了第32行到34行的代碼。第17行定義要使用的 javabean,而第18行從參數載入它的符號特性。第27行到29行指示顯示usebean的特性。除了if區段之外,并沒有其他的java代碼。

errorpage.jsp

接著,將下列的jsp原始碼儲存到網頁目錄下的文件errorpage.jsp.這是一個錯誤網頁的暗示是在第一行,此行將網頁編譯器指引iserrorpage屬性設為真。雖然前一頁說明了錯誤網頁在哪里,這頁是說它是一個錯誤網頁。jsp文件里其他特定的jsp代碼是對內部例外物件的存取。此頁只是顯示它的值而已:

<%@ page iserrorpage="true" %>
<html>
<head>
<title>error page</title>
</head>
<body>
<h1>our error page</h1></font>
<!-- print exception -->
we got ourselves an exception:
<%= exception %>
<a href="quote.jsp">restart</a>
</body>
</html>.

quotes.java

quotes javabean使用雅虎的資源來取得股票。其原始碼 要儲存於 jswdk安裝目錄下classes/com/jguru目錄里的quotes.java檔案。從那里你可以使用jsdk的編譯器來編譯它。 一旦你建好兩個jsp文件,建立了javabean原始文件并且編譯好之後,你就可以由http://localhost:8080/quote.jsp載入quote.jsp文件來查看結果,假設你沒有更改 jswdk安裝,使用不同的通訊口> 此網頁可以再加強,但它所呈現的功能,是jsp功能的良好示范。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲精品久久久久国产| 国产精品夜间视频香蕉| 久久久久久国产| 欧洲成人在线视频| 色综合五月天导航| 久久综合免费视频| 日韩欧美大尺度| 国产精品成人一区二区| 日韩精品视频在线免费观看| 久久最新资源网| 亚洲成人精品在线| 国产在线拍偷自揄拍精品| 欧美一级在线播放| 日韩精品在线观看网站| 8090理伦午夜在线电影| 欧美成人精品三级在线观看| 国产精品第三页| 91国语精品自产拍在线观看性色| 波霸ol色综合久久| 亚洲视频综合网| 欧美www视频在线观看| 精品日韩中文字幕| 狠狠躁18三区二区一区| 国产精品视频地址| 国产欧美日韩综合精品| 国产国语刺激对白av不卡| 91在线无精精品一区二区| 亚洲人成电影在线| 欧美成人精品在线播放| 欧美午夜电影在线| 一区二区亚洲欧洲国产日韩| 亚洲国产高潮在线观看| 91国内产香蕉| 中国日韩欧美久久久久久久久| 亚洲日本aⅴ片在线观看香蕉| 国产免费一区视频观看免费| 亚洲自拍偷拍第一页| 国产精品永久免费观看| 揄拍成人国产精品视频| 日韩精品中文字| 亚洲无av在线中文字幕| 欧美与黑人午夜性猛交久久久| 欧美日韩另类在线| 成人国内精品久久久久一区| 亚洲精品午夜精品| 97国产成人精品视频| 91精品综合视频| 国产美女精品视频免费观看| 久久亚洲精品小早川怜子66| 亚洲大胆美女视频| 欧美一级高清免费播放| 欧美视频一二三| 国产精品成人在线| 亚洲精品98久久久久久中文字幕| 91亚洲国产成人久久精品网站| 91精品国产91久久久久久| 精品精品国产国产自在线| 亚洲日韩欧美视频一区| 亚洲影院色在线观看免费| 国产精品扒开腿做爽爽爽男男| 亚洲国产精品专区久久| 91精品国产高清久久久久久久久| 国产精品丝袜久久久久久不卡| 一区二区三区亚洲| 欧美在线性爱视频| 国产一区玩具在线观看| 亚洲欧美www| 国精产品一区一区三区有限在线| 9.1国产丝袜在线观看| 久久国产天堂福利天堂| 欧美一级片久久久久久久| 久久久久久久久久国产精品| 亚洲一区二区三区毛片| 亚洲性视频网址| 欧美日韩高清区| 欧美性xxxx在线播放| 国产在线精品一区免费香蕉| 午夜精品理论片| 久久久久久尹人网香蕉| 91精品久久久久久久久青青| 国产一区二区三区丝袜| 综合网中文字幕| 国产成人精品电影久久久| 亚洲欧美日韩一区二区三区在线| 91国产在线精品| 日韩欧美在线播放| 国产精品爱啪在线线免费观看| 国产精品美女久久久久久免费| 国产精品人成电影在线观看| 亚洲成av人影院在线观看| 国产精品高清免费在线观看| 久久99热精品这里久久精品| 欧美夫妻性视频| 久久久久五月天| 亚洲精品自产拍| 色偷偷亚洲男人天堂| 久久久国产91| 国产精品偷伦一区二区| 精品伊人久久97| 久久久久久久国产精品视频| 国产精品伦子伦免费视频| 亚洲成年网站在线观看| 亚洲精品中文字幕有码专区| 91精品国产综合久久香蕉最新版| 亚洲丝袜av一区| 成人av在线网址| 日韩最新中文字幕电影免费看| 国产精品视频久久| 欧美最顶级的aⅴ艳星| 国内外成人免费激情在线视频网站| 91免费在线视频网站| 亚洲精品国偷自产在线99热| 亚洲福利在线看| 成人免费视频网址| 亚洲精品91美女久久久久久久| 欧美日韩精品在线观看| 国产精品久久999| 欧美综合国产精品久久丁香| 久久精品国产亚洲精品| 亚洲国产毛片完整版| 日韩av中文字幕在线免费观看| 精品国产精品自拍| 欧美精品在线免费观看| 久久久精品国产一区二区| 中文字幕av一区二区三区谷原希美| 亚洲综合日韩中文字幕v在线| 韩国精品美女www爽爽爽视频| 国产一区深夜福利| 午夜精品视频网站| 久久久精品中文字幕| 91免费人成网站在线观看18| 亚洲www永久成人夜色| 国产午夜精品免费一区二区三区| 亚洲永久在线观看| 欧美精品电影在线| 亚洲另类欧美自拍| 青青久久av北条麻妃海外网| 一本色道久久88综合亚洲精品ⅰ| 中文字幕亚洲一区二区三区五十路| 亚洲肉体裸体xxxx137| 欧美激情综合色| 欧美激情亚洲自拍| 国产精品丝袜白浆摸在线| 国产精品视频在线播放| 日本欧美中文字幕| 欧美大片大片在线播放| 美女撒尿一区二区三区| 亚洲国产高清福利视频| 97**国产露脸精品国产| 91在线视频精品| 欧美自拍视频在线| 亚洲精品91美女久久久久久久| 久久久精品久久久久| 在线国产精品播放| 神马久久桃色视频| 777国产偷窥盗摄精品视频| 成人国产精品av| 成人有码视频在线播放| 欧美一级片在线播放| 国产一区二区黑人欧美xxxx| 国产精品一区二区三区久久久| 精品综合久久久久久97| 亚洲精品成人av| 欧美在线免费看|