網域查詢: www.
返回首頁
當前位置: 首頁 > 站長學院 > 網站編程 > JSP教程 >

深入jsp:useBean

時間:2010-02-17 04:48來源: 作者: 點擊:
avaBean在JSP中的應用給我們帶來了很大的方便,使得我們能夠把功能較單純的代碼提取出來,增加了代碼重用率。$#@60;jsp:useBean /$#@62;這個命令大家在每個JSP文件的開頭一般都會用吧?下文
  avaBean在JSP中的應用給我們帶來了很大的方便,使得我們能夠把功能較單純的代碼提取出來,增加了代碼重用率。$#@60;jsp:useBean /$#@62;這個命令大家在每個JSP文件的開頭一般都會用吧?下文將要介紹的是useBean命令的一些特殊用法,包括怎樣為多個頁面共享的bean進行初始化,以及怎樣簡便的把request的數據傳遞到bean中去。
  大家都知道bean有一個scope屬性,指明bean的類型的實例建立的位置。默認的page就表示放在PageContext對象中,可以在本頁面內部使用;request表示放在ServletRequest對象中,在當前request的處理期間都能夠訪問,這個其實和page差不多;session表示放在HttpSession對象中,只要當前頁面的page.session設置為true就能夠訪問;application表示放在ServletContext對象中,當前服務器上面屬于一個application的servlet都能訪問。使用不同的scope屬性值就能在不同的範圍內共享bean內部的數據,但是當想為bean作一些初始化工作的時候,如果不能確定哪一個頁面先運行怎麼辦?
  解決的方法是有的。除了常見的$#@60;jsp:useBean ... /$#@62;這種創建bean的格式以外,還有下面這種方式︰
  $#@60;jsp:useBean ...$#@62;代碼$#@60;/jsp:useBean$#@62;中間的代碼就可以用來進行初始化工作,因為這些代碼只在一個bean創建的時候執行。新創建一個bean的條件是,在一個application的範圍內,沒有id和scope都相同的bean存在。所以,如果你有許多頁面上使用同一個bean,又想在初始化的時候設置一些bean的property,你可以把初始化代碼放在每一個申明中,然後系統運行的時候只有第一個被執行的頁面能夠執行到這些初始化代碼。
  舉個例子,你有一個網站有許多的入口頁面,現在你想跟蹤一個用戶在你的網站上逗留的時間,你可以用一個scope為session的bean來記錄用戶首次訪問的時間,在他離開的時候把總時間存到用戶數據庫里面。這里只看看怎樣記錄首次訪問時間。
  我們的bean中的關鍵部分是這個樣子︰
  /** a bean to record user browsing time
  * log-in time set by the first page visited
  */
  package myapp;
  public class TimeRecordBean {
  private long loginTime;
  private long logoutTime;
  ...
  public void setLoginTime(long time) {
  this.loginTime = time;
  }
  ...}//end of bean class然後,在所有可能的入口頁面 娑脊燦謎廡┐
頂一下
(0)
0%
踩一下
(0)
0%
------分隔線----------------------------
最新評論 查看所有評論
發表評論 查看所有評論
請自覺遵守互聯網相關的政策法規,嚴禁發佈色情、暴力、反動的言論。
評價:
表情:
用戶名: 密碼: 驗證碼:
推薦內容