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

首頁 > 編程 > JSP > 正文

JBuilder2005實戰JSP之特殊頁面(5)

2019-11-18 19:19:12
字體:
來源:轉載
供稿:網友

  歡迎頁面welcome.jsp

  當用戶錄入正確的密碼后,switch.jsp控制JSP頁面導向welcome.jsp歡迎頁面,在這節里,我們來開發這個welcome.jsp頁面。因為welcome.jsp需要使用到一個第三方的標簽庫,所以在開發welcome.jsp之前需要在JBuilder中作一些配置引入這個標簽庫。

  將第三方標簽庫配置到JBuilder中

  Apache開源組織提供了許多有用標簽庫,歡迎頁面welcome.jsp需要使用一個來源于Apache的datetime標簽庫,可以用這個標簽庫在JSP中提供各種時間的顯示,下載的地址是:http://apache.justdn.org/jakarta/taglibs/datetime/binaries/jakarta-taglibs-datetime-1.0.1.zip

  標簽庫一般包括兩個文件,其一是類包JAR文件,其二是以.tld為擴展名的標簽符描述文件。從下載的壓縮文檔中解壓后,我們將taglibs-datetime.jar和taglibs-datetime.tld文件放到<工程目錄>/datetimeTag目錄下。

  要在工程中使用第三方的標簽庫,必須事先在JBuilder中配置這個標簽庫,并在工程中引用它。配置標簽庫和配置類庫相似,也是通過Configure Libraries對話框來完成。JBuilder類庫及標簽庫都列在Configure Libraries對話框中左邊的樹中,類庫顯示為 圖標,而標簽庫顯示為 圖標。下面我們來將datetime標簽庫配置到JBuilder中。

  1.Tools->Configure->Libraries->Configure Libraries對話框。

  點擊Configure Libraries對話框的左下角的Add...按鈕,彈出New Library Wizard對話框,如下圖所示:


圖 17新庫向導對話框

  在Name中給這個庫取一個名字:datetimeTag,按OK返回Configure Libraries對話框。

  2.指定標簽庫文件。

  在返回Configure Libraries對話框后,datetimeTag節點出現在左邊的樹中,因為還沒有為其指定類庫文件,有別于其他節點顯示為顯目的紅色,點選datetimeTag并將Library Settings設置頁切換到Framework標簽頁中,如下圖所示:


圖 18 切換到Framework中

  在Framework下拉框中選擇User-Defined JSP Tag Library選項,點擊標簽頁右下方的Add...按鈕,彈出Define New Tag Library對話框,如下圖所示:


圖 19 指定標簽庫的描述文件

  在Define New Tag Library對話框中,點擊TLD file后的…按鈕,導航到<工程目錄>/datetimeTag/taglibs-datetime.tld文件中,確認后JBuilder自動填充其余的設置項,一般不需要更改JBuilder這些自動補充的設置。其中PRefix為這個標簽庫指定了一個引用前綴。點擊OK按鈕返回Configure Libraries對話框,datetimeTag節點顯示為正常的顏色如下圖所示:


圖 20 正確配置標簽庫后的效果

  點擊Configure Libraries對話框的OK按鈕完成datetime標簽庫的配置。

  3.在當前工程中引用這個新配置的標簽庫。

  Project->Project Properties...->Paths->切換到Required Libraries標簽頁中->點擊Add...按鈕從JBuilder類庫中選擇datetimeTag。配置成功后,Project Properties對話框如下所示:


圖 21 工程引用庫

  創建歡迎JSP頁面

  1.File->New…->Web->雙擊JSP圖標,啟動創建JSP向導,指定JSP文件名為welcome,點擊Next到下一步。

  2.在welcome.jsp頁面中引用datetimeTag標簽庫。

  在向導的第2步中允許你選擇JBuilder中的各種標簽庫,我們在上一節中配置的datetimeTag標簽庫也出現在Tag Libraries列表中,如下圖所示:


圖 22 引用標簽庫

  展開datetime Tag并勾選taglibs-datetime,按Next到一下步。

  3.引用在switch.jsp中放入session域的userBean對象。


圖 23 引用switch.jsp中放入session的userBean

  點擊Add Bean...選擇bookstore.User類,在ID欄中指定Bean的名字為ses_userBean,Scope欄中選擇session作用域。ses_userBean即是在switch.jsp為userBean所指定的名字,Web容器將根據這個名字到session中查找對象,如果找不到才創建bookstore.User對象,因為welcome.jsp在switch.jsp之后才被調用,所以除非session對期,否則都可以找到userBean對象。

  直接點擊Finish創建welcome.jsp文件,其代碼如下所示:

  代碼清單 15 welcome.jsp歡迎頁面

1. <%@ page contentType="text/html; charset=GBK" %>
2. <%@ taglib uri="http://jakarta.apache.org/taglibs/datetime-1.0" prefix="dt" %>
3. <html>
4. <head>
5. <title>
6. welcome
7. </title>
8. </head>
9. <jsp:useBean id="ses_userBean" scope="session" class="bookstore.User" />
10. <jsp:setProperty name="ses_userBean" property="*" />

11. <body bgcolor="#ffffff">
12. <h1>
13. JBuilder Generated JSP
14. </h1>
15. </body>
16. </html>

  在向導第2步所引用的標簽庫設置對應第2行的引用標簽庫聲明代碼。而在第3步中設定的Bean對應第9~10行代碼,因為在welcome.jsp中無需填充Bean的值,所以應該手工去除第10行的代碼。

  下面我們在welcome.jsp文件中引用datetime標簽庫,用它生成一個當前時間格式化串。打開welcone.jsp文件并切換到Source視圖頁中。首先清除<body></body>中JBuilder所產生的代碼,在<body></body>中輸入"<dt:",JBuilder將使用TagInsight功能顯示出這個標簽庫中所有可用的標簽項,如下圖所示:

    
            圖 24 利用TagInsight錄入標簽庫

  使用TagInsight可以非常方便地錄入標簽庫中的可用標簽,大大加速標簽庫的代碼錄入并保證正確性。在welcome.jsp中我們使用標簽庫獲得一個當前的格式化時間串,此外我們還通過ses_userBean獲取用戶的名字。welcome.jsp的最終代碼如下所示:

  代碼清單 16 welcome.jsp 引用標簽庫和Session對象

1. <%@page contentType="text/html; charset=GBK" errorPage="error.jsp"%>
2. <%@taglib uri="http://jakarta.apache.org/taglibs/datetime-1.0" prefix="dt"%>
3. <html>
4. <head>
5. <title>welcome</title>
6. </head>
7. <jsp:useBean id="ses_userBean" scope="session" class="bookstore.User"/>
8. <body bgcolor="#ffffff">你是
9. <%=ses_userBean.getUserName()%>,歡迎登錄。<br>
10. 現在的時間是<dt:表單at pattern="MM/dd/yyyy hh:mm"><dt:currentTime/></dt:表單at>
11. <br>點擊<a href="quit.jsp">這兒</a>退出系統

12. </body>
13. </html>

  此外,JBuilder將datetime標簽庫描述文件taglibs-datetime.tld拷貝到WEB-INF下,并對web.xml文件動了手腳,聲明taglibs-datetime.tld所在的地址:

  代碼清單 17 web.xml中聲明標簽描述文件

1. <?xml version="1.0" encoding="UTF-8"?>
2. …
3. <web-app>
4. <taglib>
5. <taglib-uri>http://jakarta.apache.org/taglibs/datetime-1.0</taglib-uri>
6. <taglib-location>/WEB-INF/taglibs-datetime.tld</taglib-location>
7. </taglib>

8. </web-app>

  如上所示,web.xml的第4~7行,JBuilder自動加入了datetime標簽庫的描述文件,以便Web容器正確找到所需的信息。

  在編譯工程生成Web目錄時,JBuilder會將datetime標簽庫的JAR文件taglibs-datetime.jar拷貝到WEB-INF/lib目錄下。

  當用戶登錄成功后,將轉向welcome.jsp頁面,其頁面效果如下圖所示:


圖 25 welcome.jsp效果頁面

  當用戶點擊"這兒"的鏈接時,將鏈接到quit.jsp,quit.jsp頁面負責清除session,清除session后,將引用session中的對象解綁并釋放資源。
 
  quit.jsp退出處理頁面

  由于HTTP協議以請求/響應的方式工作,所以客戶端退出系統時需要主動往Web服務器發送一個請求,通知Web服務器及時銷毀會話,否則Web服務器只會等到會話過期時才會銷毀它。

  我們用一個quit.jsp來處理用戶退出系統的操作,quit.jsp負責注銷session,及時釋放資源。

  ·注銷session。

  ·關閉瀏覽器窗口。

  其代碼如下所示:

1. <%@ page contentType="text/html; charset=GBK" %>
2. <%
3.  session.invalidate();
4. %>
5. <script language="javaScript" >
6.  window.opener = null;
7.  window.close();
8. </script>

  其中第3行負責注銷session,原先放入session的對象將解綁定,等待垃圾回收以釋放資源。對于本例而言,session中有一個名為ses_userBean的userBean對象(它是在switch.jsp中放入session的),調用session.invalidate()后,userBean從session中解綁定,它的valueUnbound()方法會被觸發調用,然后再等待垃圾回收。

  第5~8行是一段Javascript腳本程序,負責關閉窗口,如果網頁不是通過腳本程序打開的(window.open()),調用window.close()腳本關閉窗口前,必須先將window.opener對象置為null,如第6行所示,否則瀏覽器會彈出一個確定關閉的對話框,筆者發現這個問題困擾了不少的Web程序員,故特別指出。

  實戰經驗:

  在用戶退出系統時,需要注銷session,否則只有等到session在服務器中過期后,session對象才會被清除。假設一個session的不活動最大時間為30分鐘(默認的時間),如果不手工清除session對象,則當一個用戶退出系統后再過30分鐘,這些對象所占用的系統資源才會被釋放。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
精品亚洲永久免费精品| 日韩av综合网站| 97福利一区二区| 日韩欧美一区二区三区久久| 米奇精品一区二区三区在线观看| 国产一区二区av| 久久久久久午夜| 全球成人中文在线| 国产欧美在线看| 日韩在线观看成人| 欧美在线观看一区二区三区| 中国日韩欧美久久久久久久久| 精品亚洲一区二区| 欧美精品videos另类日本| 91色精品视频在线| 亚洲美女中文字幕| 精品国产成人av| 91国产一区在线| 亚洲在线观看视频| 欧美在线亚洲在线| 国产精品国产三级国产专播精品人| 欧美精品在线免费观看| 韩国精品久久久999| 92福利视频午夜1000合集在线观看| 国产999精品视频| 日韩av影视综合网| www.99久久热国产日韩欧美.com| 亚洲综合中文字幕68页| 国产午夜精品视频| 狠狠色香婷婷久久亚洲精品| 亚洲精品国产电影| 国产欧美在线观看| 精品久久久久久久久久ntr影视| 日韩av在线网页| 欧美情侣性视频| 日韩理论片久久| 久久久免费av| 欧美激情视频一区二区三区不卡| 久久久精品日本| 日韩欧美一区二区三区久久| 亚洲精品短视频| 国产精品视频大全| 狠狠色噜噜狠狠狠狠97| 亚洲第一页中文字幕| 91中文字幕一区| 高清欧美性猛交| 91人成网站www| 日韩黄色高清视频| 91香蕉国产在线观看| 亚洲成人动漫在线播放| 成人av在线网址| 精品福利在线看| 91精品国产综合久久香蕉| 欧美另类第一页| 国产精品私拍pans大尺度在线| 欧美日产国产成人免费图片| 国产精品99免视看9| 国产精品电影观看| 国产精品久久久91| 亚洲欧美另类在线观看| 日韩av在线不卡| 九九精品在线播放| 日韩av中文字幕在线| 超在线视频97| 国产精品久久久久久av下载红粉| 亚洲偷欧美偷国内偷| 成人精品视频在线| 欧美一区深夜视频| 久久久精品视频在线观看| 91精品久久久久久久久不口人| 欧美国产日韩一区二区在线观看| 青草热久免费精品视频| 亚洲最大福利网站| 夜夜嗨av一区二区三区免费区| 日韩美女主播视频| 91久久精品一区| 欧美日韩中文在线| 欧美最顶级丰满的aⅴ艳星| 亚洲少妇中文在线| 色琪琪综合男人的天堂aⅴ视频| 成人在线一区二区| 欧美性猛交99久久久久99按摩| 欧美日韩国内自拍| 国产精品嫩草视频| 久久久久久欧美| 一区二区在线免费视频| 日韩欧美综合在线视频| 亚洲国模精品私拍| 日韩美女视频免费在线观看| 在线视频一区二区| 欧美日韩国产精品专区| 亚洲视频在线看| 欧洲美女7788成人免费视频| 亚洲综合中文字幕68页| 欧美在线xxx| 欧美性猛交xxxxx免费看| 欧美日韩国产第一页| 永久免费精品影视网站| 国产精品成人国产乱一区| 日本欧美在线视频| 国产精品老女人视频| 亚洲福利视频免费观看| 欧美xxxx综合视频| 精品视频www| 大胆人体色综合| 亚洲第一精品电影| 国产精品专区h在线观看| 亚洲第一中文字幕在线观看| 大荫蒂欧美视频另类xxxx| 久久久人成影片一区二区三区| 国产视频精品va久久久久久| 欧美在线视频一区二区| 国产精品免费在线免费| 久久精品国产2020观看福利| 久久免费精品日本久久中文字幕| 亚洲福利视频专区| 亚洲精品视频免费在线观看| 日韩一区二区三区xxxx| 欧美成人免费全部观看天天性色| 欧美片一区二区三区| 北条麻妃一区二区在线观看| yellow中文字幕久久| 91精品啪aⅴ在线观看国产| 尤物精品国产第一福利三区| 97精品一区二区三区| 国产小视频91| 国产精品视频网站| 久热国产精品视频| 国产精品白丝jk喷水视频一区| 欧美福利小视频| 精品国产福利在线| 伊人伊成久久人综合网站| 国产91亚洲精品| 欧洲成人性视频| 亚洲一区999| 日韩成人性视频| 欧美高清视频在线观看| 日韩精品日韩在线观看| 国产精品久久久久久久久影视| 亚洲人成亚洲人成在线观看| 欧美一级大片视频| 777精品视频| 亚洲专区国产精品| 日韩一级黄色av| 亚洲一区久久久| www.xxxx精品| 亚洲深夜福利在线| 91探花福利精品国产自产在线| 欧美日韩一区二区免费视频| 欧美成人激情视频免费观看| 成人美女免费网站视频| 久久精品男人天堂| 日韩精品日韩在线观看| 国产精品爽爽爽爽爽爽在线观看| 国产精品扒开腿做爽爽爽的视频| 欧美日在线观看| 在线观看欧美成人| 国产精品视频专区| 国产亚洲精品综合一区91| 欧美国产一区二区三区| 国产suv精品一区二区三区88区| 国外色69视频在线观看| 国产成+人+综合+亚洲欧洲| 欧美激情女人20p|