偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Dreamweaver開發(fā)JSP頁面

開發(fā) 后端
本文介紹Dreamweaver下使用JSP進(jìn)行Web開發(fā)的一些基礎(chǔ)。使用Dreamweaver開發(fā)JSP頁面是一個很好的環(huán)境

Macromedia Dreamweaver 為 HTML 提供了豐富的可視化編輯環(huán)境,這些功能是所有的 Web 開發(fā)環(huán)境中都需要的。與其他工具相比,Dreamweaver 提供了更好的代碼編輯功能,包括為 Web 站點(diǎn)使用的宏,它們可以使用某種頁面語言,例如 ASP、ASP.Net、JSP、ColdFusion 和 PHP。擴(kuò)展宏讓您可以自動進(jìn)行登錄,實(shí)現(xiàn)類似何時隱藏的功能,自動顯示結(jié)果集,創(chuàng)建客戶結(jié)果集等等。您可以編輯并添加自己的代碼宏。在不同的頁面之間可能存在一些可以共享的代碼(HTML 或腳本)。對于 JSP 的支持來說,Dreamweaver 為 JavaBeans 和 JSP 定制標(biāo)簽庫提供了完整的方法/標(biāo)簽。

Dreamweaver開發(fā)JSP:視圖

讓我們開始創(chuàng)建一個視圖來顯示所有的書籍。首先在 Server Behaviors 中為 JSP 添加一個 RecordSet,并選擇希望在該表中顯示哪個表以及該表中的哪些列:

Recordset 對話框 
圖 2. Recordset 對話框

您可以看到我們已經(jīng)選擇從數(shù)據(jù)庫的 Books 表中顯示 Title、Authors 和 Publisher 字段;我們還會根據(jù) Title 字段,對結(jié)果進(jìn)行排序。在完成這個步驟之后,就可以將這些字段從 Bindings 窗口拖動到 Web 頁面上:

Bindings 窗口 
圖 3. Bindings 窗口

由于我們正在創(chuàng)建一個視圖,應(yīng)該創(chuàng)建一個表來顯示文檔中的每一行的內(nèi)容:

Categories 視圖 
圖 4. Categories 視圖

注意,該視圖中有幾個“Repeat”指示器,并且高亮顯示了表中的某一行,指出這是一個 Repeating Region。這就是 Dreamweaver 的顯示 RecordSet 的方式,它通過循環(huán)遍歷記錄并重復(fù) HTML 部分的內(nèi)容來顯示 RecordSet。您也可以指定在 Repeat Region 對話框中顯示多少條記錄:

Repeat Region 對話框 
圖 5. Repeat Region 對話框

最后,您可以在該頁面中為結(jié)果添加一個導(dǎo)航條。雖然我們可以使用一個文本或圖形形式的導(dǎo)航條,但是為了簡便起見,此處我們將使用一個文本導(dǎo)航條:

導(dǎo)航條 
圖 6. 導(dǎo)航條

現(xiàn)在我們可以看到在 Web 瀏覽器中顯示這個頁面時的樣子:

Web 頁面 
圖 7. Web 頁面

注意,如果您現(xiàn)在在第一個頁面中,那么導(dǎo)航條隱藏 Prev/First 部分。這個導(dǎo)航條還知道如何根據(jù)結(jié)果進(jìn)行分頁。由于您的重復(fù)字段被設(shè)置為一次只顯示 10 個結(jié)果,因此當(dāng)您單擊 Next 時,這個導(dǎo)航條就會顯示下 10 條結(jié)果。當(dāng)您在最后一個頁面中時,它還會隱藏導(dǎo)航條中的 Next/Last 部分。

Dreamweaver開發(fā)JSP:用戶身份驗(yàn)證

要支持 Notes 中那種對書籍進(jìn)行編輯或分類的功能,還需要提供一個單獨(dú)的 Web UI。然而,首先需要創(chuàng)建一個登錄頁面,因?yàn)槲覀儾⒉幌M總€用戶都可以修改書籍的類別??梢栽陧撁嬷蟹派蠋讉€登錄字段來實(shí)現(xiàn)這種功能,如果登錄失效,就顯示一條錯誤消息:

無效的登錄界面
圖 8. 無效的登錄界面

您可以通過創(chuàng)建一個表單區(qū)域來實(shí)現(xiàn)這種功能,然后添加一個包含字段和字段標(biāo)簽的表。矩形的紅色區(qū)域是表單的邊界。表單操作被設(shè)置為跳回這個登錄頁面,因此必須添加一些代碼來處理實(shí)際的登錄操作。我們已經(jīng)添加了一條消息( JSP 圖標(biāo)邊上的文本)來顯示登錄失敗的用戶信息。

接下來我們要向這個頁面中添加一個 Login Server Behavior:

Log In User 對話框 
圖 9. Log In User 對話框

正如您可以看到的,允許您指定使用數(shù)據(jù)庫中的哪個表來進(jìn)行身份驗(yàn)證,并允許您指定登錄用戶的訪問級別(AccessLevel 字段)。您還可以指定用戶登錄成功或失敗之后將轉(zhuǎn)向哪個頁面。在登錄失敗時,我們添加了一個查詢字符串參數(shù) “l(fā)f”。我們還添加了一些定制的代碼(這就是 JSP 圖標(biāo)指示的內(nèi)容)來處理這種功能:

  1. < % if (request.getParameter("lf") != null) { %>      
  2. < p align="center">Invalid Login!< /p>      
  3. < % } /* end request.getParameter(lf) != null */ %>  

不幸的是,并不存在這種內(nèi)嵌的 Dreamweaver Server Behavior,這與視圖的導(dǎo)航條的隱藏功能不同。由于這個原因,您需要使用一個很好的 Java 工具來實(shí)現(xiàn)這種等效的自動隱藏功能,除非您使用的是一個具有這種自動隱藏功能支持的 JSP 定制標(biāo)簽庫。

Dreamweaver開發(fā)JSP:訪問控制

Dreamweaver 有一種顯示對特定頁面的訪問的方便方法,除非用戶具有特定的訪問權(quán)限,否則將不能訪問特定頁面。Dreamweaver 對特定頁面的訪問是通過向頁面中添加一個 Restrict Access Server Behavior 實(shí)現(xiàn)的:

Restrict Access to Page 對話框 
圖 10. Restrict Access to Page 對話框

在這種情況中,只有哪些在自己的登錄中具有管理員權(quán)限的用戶可以訪問這個頁面。真正實(shí)現(xiàn)這種功能的代碼(在該頁面的可視化表示中,您看不到這些代碼)如下所示:

  1. < %  
  2. // *** Restrict Access To Page: Grant or deny access to this page  
  3. String MM_authorizedUsers="Administrator";  
  4. String MM_authFailedURL="accessdenied.jsp";  
  5. boolean MM_grantAccess=false;  
  6. if (session.getValue("MM_Username") != null && !session.getValue  
  7. ("MM_Username").equals("")) {      
  8. if (false || (session.getValue("MM_UserAuthorization")=="") ||   
  9. (MM_authorizedUsers.indexOf((String)session.getValue("MM_UserAuthorization"))   
  10. >=0)) {   
  11. MM_grantAccess = true;  
  12. }  
  13. }  
  14. if (!MM_grantAccess) {  
  15. String MM_qsChar = "?";  
  16. if (MM_authFailedURL.indexOf("?") >= 0) MM_qsChar = "&";  
  17. String MM_referrer = request.getRequestURI();  
  18. if (request.getQueryString() != null) MM_referrerMM_referrer   
  19. = MM_referrer + "?" + request.getQueryString();  
  20. MM_authFailedURLMM_authFailedURL = MM_authFailedURL + MM_qsChar   
  21. + "accessdenied=" + java.net.URLEncoder.encode(MM_referrer);  
  22. response.sendRedirect(response.encodeRedirectURL(MM_authFailedURL));  
  23. return;  
  24. }  
  25. %>  

正如您可以看到的,它是與 Login Server Behavior 緊密地綁定在一起的。

Dreamweaver開發(fā)JSP的缺點(diǎn)

Dreamweaver 為編輯頁面語言 Web 頁面提供了很好的環(huán)境(盡管它不能生成部署描述符)。不幸的是,異常行為會違反良好的 Web 架構(gòu)的一條規(guī)則:保持 UI 和邏輯分離。對于簡單的站點(diǎn),可以這樣做,但是對于復(fù)雜而健壯的站點(diǎn)來說,必須保持二者是分離的。因?yàn)橐獙?shù)據(jù)庫訪問操作和代碼直接加入 JSP 中,這使得對 Web 站點(diǎn)的管理變得更加困難,除非您嚴(yán)格使用 Dreamweaver 開發(fā)環(huán)境,或編寫自己的操作。即使您繼續(xù)使用 Dreamweaver 環(huán)境,也會有很多問題,因?yàn)槟赡軙?Dreamweaver 的版本, Server Behaviors 可能會發(fā)生變化,因此可能無法與以前的代碼匹配,這樣您就需要直接修改 JSP 代碼。

JSP 標(biāo)簽

JSP 定制標(biāo)簽和 JavaBeans 使得將用戶界面和業(yè)務(wù)邏輯分離成為可能。JSP 定制標(biāo)簽對于 Web 開發(fā)人員來說就像是定制的 HTML 標(biāo)簽。JavaServer Page Standard Tag Library(JSTL)是 JSP 1.3 中必不可少的一部分。JSTL 包含可以用來循環(huán)遍歷結(jié)果集并實(shí)現(xiàn) Hide-When 功能使用的標(biāo)簽。它還提供了 XML 處理和轉(zhuǎn)換標(biāo)簽的功能,并且可以引用與 JavaScript 類似的對象。最后,它還提供了對 JDBC 源的 SQL 訪問功能,不過如果您試圖將 UI 和業(yè)務(wù)邏輯分隔開,就應(yīng)該避免使用這些標(biāo)簽。

舉例來說,如果登錄失敗,那么登錄頁面將顯示一條“invalid login”消息。然而,這需要知道如何編寫一個 Java if 表達(dá)式,以及要從什么對象中獲取查詢字符串參數(shù):

  1. < % if (request.getParameter("lf") != null) { %>      
  2. < p align="center">Invalid Login!< /p>      
  3. < % } /* end request.getParameter(lf) != null */ %>  

使用 JSP 定制標(biāo)簽重新編寫這段應(yīng)用程序,代碼如下:

  1. < c:if test="${!empty param.lf}">      
  2. < p align="center">Invalid Login!< /p>      
  3. < /c:if>  

這就簡單多了,也不必要求 Web 頁面的設(shè)計者必須了解 Java 的語法了。

所有的數(shù)據(jù)庫訪問都應(yīng)該隱藏在 JavaBeans 中,以防止將 Web 站點(diǎn)的 UI 限制在數(shù)據(jù)庫中的數(shù)據(jù)上。降低數(shù)據(jù)的耦合度可以防止數(shù)據(jù)庫模式的變化,這會導(dǎo)致業(yè)務(wù)邏輯和用戶界面發(fā)生巨大的變化。如果處理適當(dāng),那么 JSP Web 頁面的設(shè)計者需要知道的惟一一件事情就是如何讀取 JavaBean 的值(這樣就可以在頁面中的適當(dāng)部分顯示)和要將頁面中的 POST 部分發(fā)往哪個 URL(通常是一個 servlet)。

【編輯推薦】

  1. JSP動態(tài)網(wǎng)站開發(fā)技術(shù)全面介紹
  2. JSP開發(fā)電子商務(wù)網(wǎng)站前景一覽
  3. JSP網(wǎng)站開發(fā)中微軟驅(qū)動引發(fā)的ResultSet相關(guān)問題
  4. JSP的優(yōu)勢與劣勢淺析
  5. JSP的優(yōu)勢:應(yīng)用范圍與性能比較
責(zé)任編輯:yangsai 來源: IBMDW
相關(guān)推薦

2009-07-03 11:36:47

JSP教程

2009-07-14 15:42:38

MyEclipse開發(fā)

2011-08-29 17:18:14

Dreamweaver移動Web

2009-07-14 16:25:04

MyEclipse開發(fā)

2009-07-14 16:07:46

MyEclipse開發(fā)

2009-07-03 18:12:49

JSP頁面

2009-07-06 09:34:19

JSP頁面

2009-01-18 10:56:27

JSTLEL表達(dá)式JSP標(biāo)準(zhǔn)標(biāo)記庫

2009-07-06 10:00:31

JSP頁面?zhèn)髦?/a>

2012-03-07 14:29:01

DreamweaverjQueryPhoneGap

2009-03-16 15:07:20

JSP分頁window.openJSP表單

2009-07-02 10:13:47

ASP和JSPJSP頁面

2009-07-06 18:23:56

Struts和JSPJSP頁面

2009-07-03 17:48:34

JSP頁面翻譯

2009-07-07 13:42:57

Servlet JSP

2009-02-25 10:55:29

FCKeditor控件JSP

2010-05-24 08:53:33

HTML 5開發(fā)工具Adobe HTML5

2009-07-02 09:25:41

JSP實(shí)現(xiàn)頁面跳轉(zhuǎn)

2009-07-07 18:20:54

JSP頁面顯示亂碼

2009-07-02 11:34:42

JSP指令JSP開發(fā)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號