2007-02-07 17:33:58逸&瑩
JSP簡單介紹
JSP簡單介紹
JSP(JavaServer Pages)是由Sun Microsystems公司倡導、許多公司參與一起建立的一種動態網頁技術標準,其在動態網頁的建設中有其強大且特別的功能,現在介紹如下:
一、JSP的優點:
1‧將內容的生成和顯示進行分離:
使用JSP技術,Web頁面開發人員可以使用HTML或者XML標識來設計和格式化最終頁面。使用JSP標識或者小腳本來生成頁面上的動態內容(內容是根據請求來變化的,例如請求帳戶資訊或者特定的一瓶酒的價格)。生成內容的邏輯被封裝在標識和JavaBeans元件中,並且捆綁在小腳本中,所有的腳本在伺服器端運行。如果核心邏輯被封裝在標識和Beans中,那?其他人,如Web管理人員和頁面設計者,能夠編輯和使用JSP頁面,而不影響內容的生成。在伺服器端,JSP引擎解釋JSP標識和小腳本,生成所請求的內容(例如,通過連結JavaBeans元件,使用JDBC技術連結資料庫,或者包含文件),並且將結果以HTML(或者XML)頁面的形式發送回瀏覽器。這有助於作者保護自己的程式,而又保證任何基於HTML的Web瀏覽器的完全可用性。
2‧生成可重用的元件:
絕大多數JSP頁面依賴於可重用的,跨平臺的元件(JavaBeans或者Enterprise JavaBeansTM元件)來執行應用程式所要求的更?複雜的處理。開發人員能夠共用和交換執行普通操作的元件,或者使得這些元件?更多的使用者或者客戶團體所使用。基於元件的方法加速了總體開發過程,並且使得各種組織在他們現有的技能和優化結果的開發努力中得到平衡。
3‧採用標識簡化頁面開發
Web頁面開發人員不會都是熟悉腳本語言的編程人員。JavaServer Page技術封裝了許多功能,這些功能是在易用的、與JSP相關的XML標識中進行動態內容生成所需要的。標準的JSP標識能夠連結和實例化JavaBeans元件,設置或者檢索元件屬性,下載Applet,以及執行用其他方法更難於編碼和耗時的功能。
通過開發定制化標識庫,JSP技術是可以擴展的。今後,第三方開發人員和其他人員可以?常用功能創建自己的標識庫。這使得Web頁面開發人員能夠使用熟悉的工具和如同標識一樣的執行特定功能的構件來工作。
JSP(JavaServer Pages)是由Sun Microsystems公司倡導、許多公司參與一起建立的一種動態網頁技術標準,其在動態網頁的建設中有其強大且特別的功能,現在介紹如下:
一、JSP的優點:
1‧將內容的生成和顯示進行分離:
使用JSP技術,Web頁面開發人員可以使用HTML或者XML標識來設計和格式化最終頁面。使用JSP標識或者小腳本來生成頁面上的動態內容(內容是根據請求來變化的,例如請求帳戶資訊或者特定的一瓶酒的價格)。生成內容的邏輯被封裝在標識和JavaBeans元件中,並且捆綁在小腳本中,所有的腳本在伺服器端運行。如果核心邏輯被封裝在標識和Beans中,那?其他人,如Web管理人員和頁面設計者,能夠編輯和使用JSP頁面,而不影響內容的生成。在伺服器端,JSP引擎解釋JSP標識和小腳本,生成所請求的內容(例如,通過連結JavaBeans元件,使用JDBC技術連結資料庫,或者包含文件),並且將結果以HTML(或者XML)頁面的形式發送回瀏覽器。這有助於作者保護自己的程式,而又保證任何基於HTML的Web瀏覽器的完全可用性。
2‧生成可重用的元件:
絕大多數JSP頁面依賴於可重用的,跨平臺的元件(JavaBeans或者Enterprise JavaBeansTM元件)來執行應用程式所要求的更?複雜的處理。開發人員能夠共用和交換執行普通操作的元件,或者使得這些元件?更多的使用者或者客戶團體所使用。基於元件的方法加速了總體開發過程,並且使得各種組織在他們現有的技能和優化結果的開發努力中得到平衡。
3‧採用標識簡化頁面開發
Web頁面開發人員不會都是熟悉腳本語言的編程人員。JavaServer Page技術封裝了許多功能,這些功能是在易用的、與JSP相關的XML標識中進行動態內容生成所需要的。標準的JSP標識能夠連結和實例化JavaBeans元件,設置或者檢索元件屬性,下載Applet,以及執行用其他方法更難於編碼和耗時的功能。
通過開發定制化標識庫,JSP技術是可以擴展的。今後,第三方開發人員和其他人員可以?常用功能創建自己的標識庫。這使得Web頁面開發人員能夠使用熟悉的工具和如同標識一樣的執行特定功能的構件來工作。
4‧將內容的生成和顯示進行分離:
與SERVLETS相比,JSP能提供所有SERVLETS功能,但它比用println書寫和修改HTML更方便。此外,你可以更明確的進行分工,WEB頁面設計人員編寫HTML,只需要留出地方讓SERVLETS程式師插入動態部分即可。
5‧由於JSP頁面的內置腳本語言是基於Java編程語言的,而且所有的JSP頁面都被編譯成Java Servlet,JSP頁面就具有Java技術的所有好處,包括存儲管理和安全性。
6‧作Java平臺的一部分,JSP擁有Java編程語言"一次編寫,各處運行"的特點。隨著越來越多的供應商將JSP支援添加到他們的?品中,您可以使用自己所選擇的伺服器和工具,更改工具或伺服器並不影響當前的應用。
二、JSP指令和腳本元素:
1‧JSP指令是?JSP引擎而設計的。他們並不直接?生任何可見輸出,而只是告訴引擎如何處理其餘JSP頁面。這些指令始終被括在 "<%@ ?%>"標記中。兩個最重要的指令是"pagePage"和"Include"。幾乎在所有JSP頁面頂部都會看到"Page"指令。儘管不是必須的,但它可以讓你指定:到何處查找起支援作用的Java類別:
<%@ page import="java.util.Date" %>,
出現Java運行問題時,將網上衝浪者引向何處:
<%@ page errorPage="errorPage.jsp" %>,
還有你是否需要管理用戶的會話級資訊,這些資訊可能來自多個網頁述:
<%@ page session="true" %>.
"Include"指令可以把你的內容分成更多可管理的元素,比如包括一個普通頁面頁眉或頁腳的元素。包含的網頁可以是一個固定的HTML 頁面或更多的JSP內容:
<%@ include file="filename.jsp" %>
2‧JSP宣告用來讓你定義頁面級變數,以保存資訊或定義JSP頁面的其餘部分可能需要的支援方法。如果你發現程式太多,通常最好把它們寫成一個獨立的Java類別。宣告一般都在"<%! …… %>"標記中。一定要以分號(;)結束變數宣告,因?任何內容都必須是有效的Java語句:
<%! int i=0; %>。
3‧有了JSP運算式,運算式計算結果會被轉換成一個字串,並且被直接包括在輸出頁面之內。JSP 運算式包含在"<%= …… %>" 標記中,沒有分號,除非在加引號的字串部分使用分號。
<%= i %>
<%= "Hello" %> .
4‧程式片段/腳本片段(Scriptlets) JSP程式片段或腳本片段是嵌在"<% … %>"標記中的。這種Java程式在Web伺服器回應請求時就會運行。在腳本片段周圍可能是原始的HTML或XML語句,在這些地方,程式片段可以使你創建條件執行程式,或要用到另外一段程式的程式。例如,以下的程式組合使用運算式和程式片段,顯示H1、H2、H3和H4標記中的字串"Hello"。程式片段並不局限於一行程式碼:
<% for (int i=1; i<=4; i++) { %>
<H<%=i%>>Hello</H<%=i%>>
<% } %>.
5‧在JSP中嵌入式注釋。儘管你始終可以在文件中加入HTML注釋,但用戶在查看頁面程式碼時會看到這些注釋。如果你不想讓用戶看到它,你就應該將其嵌入"<%-- ?--%>" 標記中:
<%-- comment for server side only --%>.
JSP還有三類主要的元素:Scripting elements、Directives和Actions。使用Scripting elements您可以定義最終轉換?Servlet的部分,Directives 使您可以控制這個Servlet的整體結構,而Actions使您可以指定可重用的已有元件,另外,還可控制JSP引擎的運行。
三、簡單應用:
現在以幾個簡單的例子來應用以上所介如的:
例一:hello.jsp在瀏覽器上輸出"hello world"
<HTML>
<HEAD>
<TITLE>Simple Example</TITLE>
</HEAD>
<BODY>
<% out.println("Hello, world!"); %>
</BODY>
</HTML>
例二、dates.jsp在瀏覽器上輸出伺服器端取出的時間:
<HTML>
<HEAD>
<TITLE>JSP Date Demo Page</TITLE>
</HEAD>
<BODY>
<H1>JSP Date Demo Page</H1>
The current date is
<%
java.util.Date date = new java.util.Date();
out.println(date);
%>.
<br>expression syle
<%=date%>
</BODY>
</HTML>
把hello.jsp和dates.jsp放入resin的doc目錄下,然後在瀏覽器中運行:http://localhost:8080/hello.jsp 和 http://localhost:8080/dates.jsp即可見結果。好了這次就介紹到這裏了,通過上面的介紹相信大家對jsp有了一個整體的認識吧。
在JSP中包含有一些隱含了的物件,利用這些隱含物件與JSP頁面的程式片段執行環境?生互動。以下?這些隱含物件的集合。
request 用戶端請求,包括從GET/POST請求傳遞過來的參數
response 網頁傳回用戶端的反應
pageContext 在此管理網頁屬性
session 與請求關聯的會話
application 程式片段的運行環境
out 傳送回應的輸出流
config 程式片段配置物件
page JSP網頁本身
exception 錯誤網頁的例外處理
這些都是用來做什?的,又如何來使用它們呢?基本上說,在你的腳本片段裏,你可以用它們進入執行JSP程式的程式片段。用不著深入瞭解太多的Servlet API細節,我們來看看能用它們來做到的某些事情:
可以不用運算式,直接進入"Out"隱含物件,將某些內容輸出到瀏覽器中:
<% out.println("Hello"); %>。
可以從請求物件獲取參數值:
<%
String name=request.getParameter("name");
out.println(name);
%>
現以一個表單應用來說明隱含物件應用。其完成的功能是從一個表單中提取表單中的欄位值,並輸出到瀏覽器上。
example1.html 文件如下:
<title>表單應用例子</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body bgcolor="#FFFFFF">
<form method="post" action="example1.jsp">
<p>姓名:
<input type="text" name="name">
</p>
<p> Email:
<input type="text" name="email">
</p>
<p>意見:
<textarea name="yj"></textarea>
</p>
<p>
<input type="submit" name="Submit" value="發送">
</p>
</form>
</body>
</html>
example1.jsp
<html>
<head>
<title>表單應用例子</title>
</head>
<body>姓名:
<%out.println(request.getParameter("name"));%>
Email:
<%out.println(request.getParameter("email"));%>
意見:
<%out.println(request.getParameter("yj"));%>
</body>
</html>
把example1.html和example1.jsp放到resin的doc目錄下,在瀏覽器的地址樣輸入:http://localhost:8080/example1.html 。在表單中輸入內容,然後按發送按紐,即可見表單中的內容輸出到了瀏覽器上。
request 用戶端請求,包括從GET/POST請求傳遞過來的參數
response 網頁傳回用戶端的反應
pageContext 在此管理網頁屬性
session 與請求關聯的會話
application 程式片段的運行環境
out 傳送回應的輸出流
config 程式片段配置物件
page JSP網頁本身
exception 錯誤網頁的例外處理
這些都是用來做什?的,又如何來使用它們呢?基本上說,在你的腳本片段裏,你可以用它們進入執行JSP程式的程式片段。用不著深入瞭解太多的Servlet API細節,我們來看看能用它們來做到的某些事情:
可以不用運算式,直接進入"Out"隱含物件,將某些內容輸出到瀏覽器中:
<% out.println("Hello"); %>。
可以從請求物件獲取參數值:
<%
String name=request.getParameter("name");
out.println(name);
%>
現以一個表單應用來說明隱含物件應用。其完成的功能是從一個表單中提取表單中的欄位值,並輸出到瀏覽器上。
example1.html 文件如下:
<title>表單應用例子</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body bgcolor="#FFFFFF">
<form method="post" action="example1.jsp">
<p>姓名:
<input type="text" name="name">
</p>
<p> Email:
<input type="text" name="email">
</p>
<p>意見:
<textarea name="yj"></textarea>
</p>
<p>
<input type="submit" name="Submit" value="發送">
</p>
</form>
</body>
</html>
example1.jsp
<html>
<head>
<title>表單應用例子</title>
</head>
<body>姓名:
<%out.println(request.getParameter("name"));%>
Email:
<%out.println(request.getParameter("email"));%>
意見:
<%out.println(request.getParameter("yj"));%>
</body>
</html>
把example1.html和example1.jsp放到resin的doc目錄下,在瀏覽器的地址樣輸入:http://localhost:8080/example1.html 。在表單中輸入內容,然後按發送按紐,即可見表單中的內容輸出到了瀏覽器上。
下一篇:幾個常用基礎函數(JSP)