JavaBean是一種可複用,跨平臺的組件。共有兩種JavaBean:一種無用戶界面,這種一般用於處理數據運算,操作數據庫等。另一種是有用戶界面(User Interface)的JavaBean. 在Jsp中一般訪問無用戶界面的JavaBean。
Jsp中訪問JavaBean語法:
1. 使用page指令導入 JavaBean 類:
<%@page import="包名 . 類名" %>
2. 使用<jsp:useBean>標籤聲明JavaBean對象:
<jsp:useBean id="實例名" class="包名 . 類名" scope="作用範圍"/>
注意:要給出完整的(包名 . 類名),否則報ClassNotFoundException
例:<jsp:useBean id="bean" class="com.CountBean" scope="session"/>
上面的代碼相當於:
CountBean bean = new CountBean();
session.setAttribute( "bean" , bean );
注意:如果在scope指定範圍內,該JavaBean已存在,則<jap:useBean>不會生成新的JavaBean對象,而是直接獲得已經存在的 JavaBean 對象的引用.
3.使用<jsp:getProperty>和<jsp:setProerty>標籤訪問JavaBean屬性:
<jsp:getProperty name="實例名" property="Bean中的屬性名">
調用Bean中的get方法得到某屬性的值
<jsp:setProperty name="實例名" property="Bean中的屬性名">
調用Bean中的set方法給某屬性賦值
例子:
<%@ page language="java" pageEncoding="ISO-8859-1"%>
<%@page import="com.CountBean;"%>
<jsp:useBean id="bean" class="com.CountBean" scope="[page][request][session][application]" />
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Count.jsp'</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
</head>
<body>
count values is:<jsp:getProperty name="bean" property="num" />
<jsp:setProperty name="bean" property="num" value="<%=bean.getNum()+1 %>"/>
<%
CountBean obj = null;
String scope = null;
obj = (CountBean)request.getAttribute("bean");
if( obj != null ) scope = "request";
obj = ( CountBean )session.getAttribute("bean");
if( obj != null ) scope = "session";
obj = ( CountBean )application.getAttribute("bean");
if( obj != null ) scope = "application";
if( scope == null ) scope = "page";
%>
<p> scope = <%=scope %> </p>
</body>
</html>
補充:
1.JavaBean在page作用域中:
在這種情況下,客戶每次訪問Jsp頁面時,都會創建一個JavaBean對象,僅在當前Jsp頁面中有效。
例子的結果:
count values is: 0
scope = page
此時JavaBean在將以下兩種情況下結束生命週期
(1)當客戶訪問當前Jsp頁面通過forword轉發請求到另一文件時
(2) 當客戶訪問當前Jsp頁面執行完畢並向客戶端發回響應時
2.JavaBean在request作用域中:
與pgae一樣,客戶每次訪問Jsp頁面時,都會創建一個JavaBean對象。
例子的結果:
count values is: 0
scope = request
此時 , 當客戶訪問當前Jsp頁面執行完畢並向客戶端發回響應時 ,JavaBean結束生命週期
3 JavaBean在session作用域中:
JavaBean對象被創建後,一直存在於當前回話中,在同一會話中,共享同一JavaBean
例子結果:
count values is: 0
( 每刷新一次,增長1,當打開另一瀏覽器窗口重新發出請求時,就不在同一會話中了,將創建一個新的會話,從0開始重新增長。 )
scope = session
4.JavaBean在application作用域中
JavaBean對象被創建後,一直存在於當前Web應用程序的生命週期中,在此應用程序中,共享同一JavaBean
例子結果:
count values is: 0
( 每刷新一次,增長1,當打開另一瀏覽器窗口重新發出請求時,此時還在同一Web應用程序中了,從原有基礎上增長。 )
scope = application
JAVABean在Jsp中的作用範圍(page,request,session,application)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
認識ruquest對象
Nirvana8921
2020-06-27 23:11:51
Jsp中Forward和Redirect的區別
jenhy
2020-02-25 03:01:18
Filter:JSP系統設置編碼過濾器
seedingly
2020-02-23 04:05:38
Filter:JSP系統設置多個過濾器
seedingly
2020-02-23 04:05:38
轉發和重定向 區別 (二)
iteye_19657
2020-02-22 19:06:06
mysql連接池連接JSP
lujibiao
2020-02-22 06:24:50
有效防止Java程序源碼被人偷窺
lujibiao
2020-02-22 06:24:50
JSP簡介以及各種內置對象的用法
Nirvana8921
2020-02-22 00:32:00
cookie存值和取值
xiangjunhua
2020-02-21 14:46:51
jsp中如何使用FCK編輯器
lpz283929516
2020-07-08 07:40:38
CKEditor+CKFinder+jsp的整理
lpz283929516
2020-07-08 07:40:37
認識ruquest對象
Nirvana8921
2020-06-27 23:11:51
Jsp表單測試-checkbox獲取,radio獲取
leafseelight
2020-06-20 09:11:59
使用pull解析xml
leafseelight
2020-06-20 08:03:59
Jsp中Forward和Redirect的區別
jenhy
2020-02-25 03:01:18
24小時熱門文章