㈠ JSP腳本元素包括—、—、—、—。
1.JSP聲明
聲明(declaration)用來在JSP頁面中聲明變數和定義方法。聲明是以<%!開頭,以%>結束的標簽
,其中可以包含任意數量的合法的Java聲明語句。下面是JSP聲明的一個例子:
<%! int count = 0; %>
2.JSP小腳本
小腳本(scriptles)是嵌入在JSP頁面中的Java代碼段。小腳本是以<%開頭,以%>結束的標簽。例如<% count++; %>
3.JSP表達式
表達式(expressiong)是以<%=開頭,以%>結束的標簽,它作為Java語言表達式的佔位符。
如<%= count%>
㈡ 一個關於JSP腳本程序的案例
首先都是動態網頁製作腳本,php現在最流行,引起源代碼開放,且寫起來隨意!
其次是asp.net
編程語言可選的有vb.net,c#.net,j#等
資料庫推薦使用sql server
php
編程語言使用php語言
資料庫使用mysql
jsp
編程語言自然是java
資料庫可選的有sql server, mysql等
最後ASP全名Active Server Pages,是一個WEB伺服器端的開發環境,利用它可以產生和執行動態的、互動的、高性能的WEB服務應用程序。ASP採用腳本語言VBScript(Java script)作為自己的開發語言。
PHP是一種跨平台的伺服器端的嵌入式腳本語言。它大量地借用C,Java和Perl語言的語法, 並耦合PHP自己的特性,使WEB開發者能夠快速地寫出動態產生頁面。它支持目前絕大多數資料庫。還有一點,PHP是完全免費的,不用花錢,你可以從PHP官方站點(http: //)自由下載。而且你可以不受限制地獲得源碼,甚至可以從中加進你自己需要的特色。
JSP是Sun公司推出的新一代網站開發語言,Sun公司藉助自己在Java上的不凡造詣,將Java從Java應用程序和Java Applet之外,又有新的碩果,就是JSP,Java Server Page。JSP可以在Serverlet和JavaBean的支持下,完成功能強大的站點程序。
三者都提供在 HTML代碼中混合某種程序代碼、由語言引擎解釋執行程序代碼的能力。但JSP代碼被編譯成 Servlet並由Java虛擬機解釋執行,這種編譯操作僅在對JSP頁面的第一次請求時發生。在ASP 、PHP、JSP環境下,HTML代碼主要負責描述信息的顯示樣式,而程序代碼則用來描述處理邏輯。普通的 HTML頁面只依賴於Web伺服器,而ASP 、PHP、JSP頁面需要附加的語言引擎分析和執行程序代碼。程序代碼的執行結果被重新嵌入到HTML代碼中,然後一起發送給瀏覽器。ASP 、PHP、JSP三者都是面向Web伺服器的技術,客戶端瀏覽器不需要任何附加的軟體支持。
技術特點
ASP:
1. 使用VBScript 、 JScript等簡單易懂的腳本語言,結合HTML代碼,即可快速地完成網站的應用程序。
2. 無須compile編譯,容易編寫,可在伺服器端直接執行。
3. 使用普通的文本編輯器,如Windows的記事本,即可進行編輯設計。
4. 與瀏覽器無關(Browser Independence), 客戶端只要使用可執行HTML碼的瀏覽器,即可瀏覽Active Server Pages所設計的網頁內容。Active ServerPages 所使用的腳本語言(VBScript 、 Jscript)均在WEB伺服器端執行,客戶端的瀏覽器不需要能夠執行這些腳本語言。
5.Active Server Pages能與任何ActiveX scripting語言兼容。除了可使用VB Script或JScript語言來設計外,還通過plug-in的方式,使用由第三方所提供的其它腳本語言,譬如REXX 、Perl 、Tcl等。腳本引擎是處理腳本程序的COM(Component Object Model) 對象。
6. 可使用伺服器端的腳本來產生客戶端的腳本。
7. ActiveX Server Components(ActiveX 伺服器組件 )具有無限可擴充性。可以使用Visual Basic 、Java 、Visual C++ 、COBOL等程序設計語言來編寫你所需要的ActiveX Server Component 。
PHP:
1?資料庫連接
PHP可以編譯成具有與許多資料庫相連接的函數。PHP與MySQL是現在絕佳的群組合。你還可以自己編寫外圍的函數去間接存取資料庫。通過這樣的途徑當你更換使用的資料庫時,可以輕松地修改編碼以適應這樣的變化。PHPLIB就是最常用的可以提供一般事務需要的一系列基庫。但PHP提供的資料庫介面支持彼此不統一,比如對Oracle, MySQL,Sybase的介面,彼此都不一樣。這也是PHP的一個弱點。
JSP:
1?將內容的產生和顯示進行分離
使用JSP技術,Web頁面開發人員可以使用HTML或者XML標識來設計和格式化最終頁面。使用JSP標識或者小腳本來產生頁面上的動態內容。產生內容的邏輯被封裝在標識和JavaBeans群組件中,並且捆綁在小腳本中,所有的腳本在伺服器端執行。如果核心邏輯被封裝在標識和Beans中,那麼其它人,如Web管理人員和頁面設計者,能夠編輯和使用JSP頁面,而不影響內容的產生。在伺服器端,JSP引擎解釋JSP標識,產生所請求的內容(例如,通過存取JavaBeans群組件,使用JDBC技術存取資料庫),並且將結果以HTML(或者XML)頁面的形式發送回瀏覽器。這有助於作者保護自己的代碼,而又保證任何基於HTML的Web瀏覽器的完全可用性。
2?強調可重用的群組件
絕大多數JSP頁面依賴於可重用且跨平台的組件(如:JavaBeans或者Enterprise JavaBeans)來執行應用程序所要求的更為復雜的處理。開發人員能夠共享和交換執行普通操作的組件,或者使得這些組件為更多的使用者或者用戶團體所使用。基於組件的方法加速了總體開發過程,並且使得各種群組織在他們現有的技能和優化結果的開發努力中得到平衡。
3?採用標識簡化頁面開發
Web頁面開發人員不會都是熟悉腳本語言的程序設計人員。JavaServer Page技術封裝了許多功能,這些功能是在易用的、與JSP相關的XML標識中進行動態內容產生所需要的。標準的JSP標識能夠存取和實例化 JavaBeans組件,設定或者檢索群組件屬性,下載Applet,以及執行用其它方法更難於編碼和耗時的功能。
通過開發定製化標識庫,JSP技術是可以擴展的。今後,第三方開發人員和其它人員可以為常用功能建立自己的標識庫。這使得Web頁面開發人員能夠使用熟悉的工具和如同標識一樣的執行特定功能的構件來工作。
JSP技術很容易整合到多種應用體系結構中,以利用現存的工具和技巧,並且擴展到能夠支持企業級的分布式應用。作為採用Java技術家族的一部分,以及Java 2EE的一個成員,JSP技術能夠支持高度復雜的基於Web的應用。
由於JSP頁面的內置腳本語言是基於Java程序設計語言的,而且所有的JSP頁面都被編譯成為Java Servlet,JSP頁面就具有Java技術的所有好處,包括健壯的存儲管理和安全性。
作為Java平台的一部分,JSP擁有Java程序設計語言「一次編寫,各處執行」的特點。隨著越來越多的供貨商將JSP支持加入到他們的產品中,您可以使用自己所選擇的伺服器和工具,修改工具或伺服器並不影響目前的應用。
應用范圍
ASP是Microsoft開發的動態網頁語言,也繼承了微軟產品的一貫傳統,只能執行於微軟的伺服器產品,IIS(Internet Information Server) (windows NT)和PWS(Personal Web Server)(windows 98)上。Unix下也有ChiliSoft的組件來支持ASP,但是ASP本身的功能有限,必須通過ASP+COM的群組合來擴充,Unix下的COM實現起來非常困難。
PHP3可在Windows,Unix,Linux的Web伺服器上正常執行,還支持IIS,Apache等一般的Web伺服器,用戶更換平台時,無需變換PHP3代碼,可即拿即用。
JSP同PHP3類似,幾乎可以執行於所有平台。如Win NT,Linux,Unix。在NT下IIS通過一個外加伺服器,例如JRUN或者ServletExec,就能支持JSP。知名的Web伺服器Apache已經能夠支持JSP。由於Apache廣泛應用在NT、Unix和Linux上,因此JSP有更廣泛的執行平台。雖然現在NT操作系統佔了很大的市場份額,但是在伺服器方面Unix的優勢仍然很大,而新崛起的Linux更是來勢不小。從一個平台移植到另外一個平台,JSP和JavaBean甚至不用重新編譯,因為Java位元組碼都是標準的與平台無關的。
性能比較
有人做過試驗,對這三種語言分別做迴圈性能測試及存取Oracle資料庫測試。
在循環性能測試中,JSP只用了令人吃驚的四秒鍾就結束了20000*20000的迴圈。而ASP、PHP測試的是2000*2000循環(少一個數量級),卻分別用了63秒和84秒。(參考PHPLIB)。
資料庫測試中,三者分別對 Oracle 8 進行 1000 次 Insert,Update,Select和Delete: JSP 需要 13 秒,PHP 需要 69 秒,ASP則 需要 73 秒。
前景分析
目前在國內PHP與ASP應用最為廣泛。而JSP由於是一種較新的技術,國內採用的較少。但在國外,JSP已經是比較流行的一種技術,尤其是電子商務類的網站,多採用JSP。
採用PHP的網站如新浪網(sina)、中國人(Chinaren)等,但由於PHP本身存在的一些缺點,使得它不適合應用於大型電子商務站點,而更適合一些小型的商業站點。首先,PHP缺乏規模支持。其次,缺乏多層結構支持。對於大負荷站點,解決方法只有一個:分布計算。資料庫、應用邏輯層、表示邏輯層彼此分開,而且同層也可以根據流量分開,群組成二維數組。而PHP則缺乏這種支持。還有上面提到過的一點,PHP提供的資料庫介面支持不統一,這就使得它不適合運用在電子商務中。
ASP和JSP則沒有以上缺陷,ASP可以通過Microsoft Windowsd的COM/DCOM獲得ActiveX規模支持,通過DCOM和Transcation Server獲得結構支持;JSP可以通過SUN Java的Java Class和EJB獲得規模支持,通過EJB/CORBA以及眾多廠商的Application Server獲得結構支持。
三者中,JSP應該是未來發展的趨勢。世界上一些大的電子商務解決方案提供商都採用JSP/Servlet。比較出名的如IBM的E-business,它的核心是採用JSP/Servlet的Web Sphere。它們都是通過CGI來提供支持的。但去年10月後它推出了Enfinity,一個採用JSP/Servlet的電子商務Application Server,而且聲言不再開發傳統軟體。
總之,ASP,PHP,JSP三者都有相當數量的支持者,由此也可以看出三者各有所長。正在學習或使用動態頁面的朋友可根據三者的特點選擇一種適合自己的語言。
個人心得:如果做個人網站,可以用ASP,方便管理和修改代碼,如果說是想數千人同時瀏覽網站,最好是用PHP,只有PHP才是最穩定的!
㈢ 我寫了一個jsp頁面和小腳本一起怎麼才能讓它先執行jsp頁面再執行小腳本
不管怎麼弄 都是先伺服器端執行JSP/SERVLET的然後客戶端執行JS腳本
所以你這個邏輯不成立,處理完SERVLET後轉到另外一個頁面再執行JS腳本好了
㈣ JSP腳本元素的JSP小腳本
小腳本(scriptles)是嵌入在JSP頁面中的Java代碼段。小腳本是以<%開頭,以%>結束的標簽。例如<% count++; %>
小腳本在每次訪問頁面時都被執行,因此count變數在每次請求時都增1.由於小腳本可以包含任何Java代碼,所以它通常用來在JSP頁面嵌入計算邏輯。同時還可以使用小腳本列印HTML模板文本。
㈤ JSP虛擬主機的腳本元件
JSP頁面可以在頁面中包含小的腳本,稱之為小腳本(scriptlets)。小腳本是一個代碼片段,在請求的處理過程中被執行。小腳本可以和頁面中的靜態元件組合(正如上面的例子一樣)起來創建動態生成的頁面。
腳本在<%和%>標志中被描述。在這對標志中的所有東西都會被腳本描述語言引擎執行,在我們的例子中是主機上的Java虛擬機。
JSP規范支持所有常用的腳本元件,包括表達式和聲明。
JSP頁面的應用模型
JSP頁面由JSP引擎執行,引擎安裝在Web伺服器或者使用JSP的應用伺服器上。JSP引擎接受客戶端對JSP頁面的請求,並且生成JSP頁面給客戶端的響應。
JSP頁面通常被編譯成為Java Servlet。後者是一個標準的Java擴展,在www.java.站點有更詳細的描述。頁面開發人員能夠訪問全部的Java應用環境,以利用Java技術的擴展性和可移植性。
當JSP頁面第一次被調用時,如果它還不存在,就會被編譯成為一個Java Servlet類,並且存儲在伺服器的內存中。這使得在接下來的對該頁面的調用有非常快的響應。(這避免了CGI-BIN為每個HTTP請求生成一個新的進程的問題,或是伺服器端引用所引起的運行時語法分析。)
JSP頁面可以包含在多種不同的應用體系結構或者模型中。JSP頁面可以用於由不同協議、組件和格式所組成的聯合體中。下面的小節描述了一些可能發生的情況。
㈥ 關於jsp中的問題
其實它們都是JSP的語法,剛學的話可以先看看JSP的語法,看得多了見的多了就明白了。
在通常的jsp代碼中,腳本標識使用的比較頻繁,包括以下三種元素:聲明標識,JSP表達式和腳本程序。
<%=a.getId()%>中的<%= %>是jsp的表達式腳本標識,用於向頁面輸出信息
<%=a.getId()%>將輸出 a.getId()的結果
再舉個例子:
<% String name ="樓主" %>
用戶名:<%=name%>
以上代碼運行結果為如下:
用戶名:樓主
下面是部分的JSP語法,樓主可以在網上找到更多的資料來學習
1.page指令
page指令的設置語法格式是:<%@ page attribute1=」value1」 attribute2=」value2」…%>
下面介紹指令中包括的幾個常用屬性,並作簡要說明。
l import
import指令是所有page指令中,唯一可以多次設置的指令,而且累加每個設置。它用來指定jsp網頁中所需要使用到的一些類。例如:
<%@ page import=」java.io.*,java.util.Date」%>
l session
定義當前頁面是否參與http會話。當設置為」true」時,可以獲得隱含名為session的對象,為」false」時,則不能。默認設置為」true」。
l contentType
設置jsp網頁輸出時數據時,所使用的字元壓縮方式,以及所使用的字元集,當編寫中文網頁時,設置如下:
<%@page contentType=」text/html;charset=Gb2312」%>
此屬性的默認值為」text/html;charset=ISO-8859-1」。
l buffer
設置jsp網頁的緩沖區大小,默認為」8k」,如果設置為」none」,則表示不使用緩沖,所有的響應輸出都將被PrintWriter直接寫到ServletResponse中。
l isTreadSafe
定義當前頁面是否支持線程安全。如果為」true」,則該頁面可能同時收到jsp引擎發出的多個請求,反之,jsp引擎會對收到的請求進行排隊,當前頁面在同一時刻只能處理一個請求。默認為」true」。
l info
設置頁面的文本信息,可以通過Servlet.getServletInfo()的方法獲得該字元串。
l errorPage
定義指向另一個jsp頁面的URL。當頁面出現一個沒有被捕獲的異常時,錯誤信息將以throw語句拋出,而被設置為錯誤信息網頁的jsp頁面,將利用exception隱含對象,取得錯誤信息。
默認沒有錯誤處理頁面。
l isErrorPage
設置此jsp網頁是否為錯誤處理頁面。默認值為」false」。當設置為」true」時,jsp頁面將可存取隱含的exception對象,並通過該對象取得從發生錯誤之網頁所傳出的錯誤信息。取得錯誤信息的語法如下:
<% =exception.getMessage()%>
² 一個頁面錯誤處理的例子
產生錯誤的頁面文件為MakeError.jsp,處理錯誤的頁面文件為ErrorPage.jsp,它們的源程序如下:
MakeError.jsp
<%@ page errorPage="ErrorPage.jsp"%>
<html>
<head>
<title>產生錯誤頁面</title>
</head>
<body>
<%
int i=8,j=0;
out.println(ij);
%>
</body>
</html>
ErrorPage.jsp
<%@ page isErrorPage="true"%>
<html>
<head>
<title>錯誤處理頁面</title>
</head>
<body>
<font color=red>
錯誤原因:<%=exception.getMessage()%>
</font>
</body>
</html>
2.include指令
使用include指令可以把其他的文本文件加入到當前的jsp頁面,格式如下:
<%@ include file=」header.inc」%>
如此,則在當前頁面中加入header.inc源代碼然後再編譯整個文件。
可以使用include指令把一個頁面分成不同的部分,最後合成一個完整的文件,使用jsp的include指令有助於實現jsp頁面的模塊化。
3.taglib指令
該指令主要是在JSP頁面插入插件!具體的用法尚不熟悉~
接下來說說JSP頁面中的標准動作吧!
標准動作元素用於執行一些常用的JSP頁面動作,例如:將頁面轉向、使用JavaBean、設置JavaBean的屬性等。在JSP中,標准動作元素共有以下幾種:
l <jsp:param>
l <jsp:include>
l <jsp:forward>
l <jsp:plugin>
l <jsp:useBean>
l <jsp:setProperty>
l <jsp:getProperty>
其中<jsp:useBean>、<jsp:setProperty>、<jsp:getProperty>這三個是專門用來操作JavaBeans的。
下面分別介紹它們。
1. <jsp:param>
<jsp:param>動作用於傳遞參數,必須配合<jsp:include>、<jsp:forward>、<jsp:plugin>動作一起使用。
語法格式:
<jsp:param name = 「name1」 value = 「value1」/>
2. <jsp:include>
<jsp:include>動作用於動態載入HTML頁面或者JSP頁面。
語法格式:
<jsp:include page = 「網頁路徑」>
<jsp:param name = 「name1」 value = 「value1」/>
<jsp:param name = 「name2」 value = 「value2」/>
<jsp:include/>
在jsp頁面中,可以利用下面的語法取得返回的參數:
request.getParameter(「name1」);
若不傳遞參數時,則語法格式如下:
<jsp:include page = 「網頁路徑」/>
舉例:
a.jsp頁面代碼如下:
<jsp:include page = "b.jsp">
<jsp:param name = "name1" value = "value1"/>
<jsp:param name = "name2" value = "value2"/>
</jsp:include>
b.jsp頁面代碼如下:
名字1、;<%=request.getParameter("name1")%>
<hr color=red>
名字2、;<%=request.getParameter("name2")%>
執行結果如下:
「include標准動作」和「include指令」的差別在於:「include標准動作」包含的頁面在運行時被加入,而「include指令」在編譯時就被加入了。
3. <jsp:forward>
<jsp:forward>動作用於將瀏覽器顯示的頁面導向到另一個HTML頁面或者jsp頁面。
語法格式:
<jsp:forward page = 「網頁路徑」/>
當然,<jsp:forward>動作中也可以加入<jsp:param>參數,其設置和獲得參數的方法與<jsp:include>類似。
4. <jsp:plugin>
<jsp:plugin>動作用於載入applet,用途與HTML語法中的<Applet>及<Object>標記相同。該動作是在客戶端執行的,這里就不作介紹了。
5. <jsp:useBean>
(見後文的「JavaBeans」的使用)
6. <jsp:setProperty>
(見後文的「JavaBeans」的使用)
7. <jsp:getProperty>
(見後文的「JavaBeans」的使用)
另外,附加的講一下JSP中的內置對象
內置對象
在jsp頁面中有一些已經完成定義的對象,稱之為內置對象。這些對象可以不經過定義就直接使用,因為它們是由jsp頁面自己定義的。
jsp程序常用的內建對象有如下幾個:request、response、out、session、pageContext、application、config、page、exception。你可以在jsp頁面中直接使用它們,用以加強jsp程序的功能。
下面分別介紹它們。
1. request
與request相聯系的是HttpServletRequest類。通過getParameter方法可以獲得相應的參數值。
2. response
與response相聯系的是HttpServletResponse類。表示Web頁面針對請求的應答。
3. out
與out相聯系的是PrintWrite類。可以使用此對象將內容輸出到頁面中。
4. session
與session相聯系的是HttpSession類。用來傳遞客戶的會話內容。
5. pageContext
與pageContext相聯系的是pageContext類。用它能方便的訪問本頁面中設置的共享數據。
6. application
與application相聯系的是ServletContext類。用它能夠實現應用程序級別的數據共享。
7. config
與config相聯系的是ServletConfig類。用來在jsp頁面范圍內處理jsp配置。
8. page
代表jsp頁面編譯成的Servlet實例,一般不用。
9. exception
與exception相聯系的是Throwable類。用來捕獲jsp執行時拋出的異常。