程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> JSP編程 >> 關於JSP >> JSP與JavaBeans

JSP與JavaBeans

編輯:關於JSP

1. 使用 beans

為了在JSP 頁面中使用benas,我們必須使用JSP 動作標簽:useBean

useBean 格式:

<jsp:useBean id= “給bean 起的名字” class= “創建beans 的類”scope= “bean 有效范圍”></jsp:useBean>

當服務器上某個含有 useBean 動作標簽的JSP 頁面被加載執行時,JSP 引擎將首先根據id 的名字,在一個同步塊中,查找JSP 引擎內置pageContent 對象中是否含有名字id 和作用域scope 的對象,如果這個對象存在,JSP 引擎就分配一個這樣的對象給客戶,如果在pageContent 中沒有查找到指定作用域、名字是id 的對象,就根據class指定的類創建一個名字是id 對象,即創建了一個名字是id 的beans,並添加到pageContent 內置對象中,並指定該beans 的作用域是scope,同時JSP 引擎分配給客戶一個作用域是scope、名字是id 的beans。

useBean 標簽中scope 取值的不同情況闡述如下:

scope 取值page

JSP 引擎分配給每個客戶的beans 是互不相同的,也就是說,盡管每個客戶的beans 的功能相同,但它們占有不同的內存空間。該beans的有效范圍是當前頁面,當客戶離開這個頁面時,JSP 引擎取消分配給該客戶的beans。

scope 取值session

JSP 引擎分配給每個客戶的beans 是互不相同的,該beans 的有效范圍是客戶的會話期間,也就是說,如果客戶在多個頁面中相互連接,每個頁面都含有一個useBeans 標簽,這些useBean 標簽中id 的值相同,並且scope 的值都是session,那麼,該客戶在這些頁面得到的beans 是相同的一個。如果客戶在某個頁面更改了這個beans 的屬性,其它頁面的這個beans 的屬性也將發生同樣的變化。當客戶關閉浏覽器時,JSP 引擎取消分配給客戶的beans。

scope 取值request

JSP 引擎分配給每個客戶的beans 是互不相同的,該beans 的有效范圍是request 期間。客戶在網站的訪問期間可能請求過多個頁面,如果這些頁面含有socope 取值是request 的useBeans 標簽,那麼pageCotent 對象在每個頁面分配給客戶的beans 也是互不相同的。JSP引擎對請求作出響應之後,取消分配給客戶的這個beans。

scope 取值application

JSP 引擎為每個客戶分配一個共享的beans,也就是說,所有客戶共享這個beans,如果一個客戶改變這個beans 的某個屬性的值,那麼所有客戶的這個beans 的屬性值都發生了變化。這個beans 直到服務器關閉才被取消。

注:當使用作用域是session 的beans 時,要保證客戶端支持Cookie.

為了使服務器的所有web 服務目錄下的JSP 頁面文件都能使用我們的beans,我們必須將上面編譯通過生成的字節碼類文件:Circle.class 拷貝到JSP 引擎的classes 文件夾下, 即D:tomcat\Jakarta-tomcat-4.0\classes 下,另外,在使用 beans 的JSP 頁面中,必須有如下的import 指令:<@page import= “Circle”> 如果想讓某個 beans 只對examples 目錄下的JSP 頁面可用,那麼創建該beans 的字節碼文件需存放在webapps/example/Web-inf/classes目錄中,

2.獲取和修改 beans 的屬性

當我們使用useBean 動作標簽創建一個beans 後,在java 程序片中這個beans 就可以調用方法產生行為,比如修改屬性。獲取或修改beans 的屬性還可以使用動作標簽getProperty、setProperty

2.1getProperty 動作標簽

使用該標簽可以獲得beans 的屬性值,並將這個值用串的形式顯示給客戶

getProperty 動作標簽:

<jsp:getProperty name= “beans 的名字” property= “beans 的屬性” /></jsp:getProperty>

其中,name 取值是beans 的名字,用來指定要獲取哪個beans 的屬性的值;property 取值是該beans 的一個屬性的名字。該指令的作用相當於在程序片中使用beans 調用getXxx()方法。

2.2 setProperty 動作標簽

使用該標簽可以設置beans 的屬性值。

setProperty 動作標簽可以通過3 種方式設置beans 屬性的值。

(1)將benas 屬性的值設置為一個表達式的值或字符串。

本欄目

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved