JavaBean在Jsp中的作用范圍(page,request,session,application)

JavaBean在Jsp中的作用范圍(page,request,session,application)
JavaBean是一種可復(fù)用,跨平臺的組件。共有兩種JavaBean:一種無用戶界面,這種一般用于處理數(shù)據(jù)運算,操作數(shù)據(jù)庫等。另一種是有用戶界面(User Interface)的JavaBean. 在Jsp中一般訪問無用戶界面的JavaBean。
Jsp中訪問JavaBean語法:

  1. 使用page指令導(dǎo)入 JavaBean 類: <%@page import="包名 . 類名" %>
  2. 使用<jsp:useBean>標簽聲明JavaBean對象: <jsp:useBean id="實例名" class="包名 . 類名" scope="作用范圍"/>
    注意:要給出完整的(包名 . 類名),否則報ClassNotFoundException 例:<jsp:useBean id="bean" class="com.CountBean" scope="session"/> 上面的代碼相當(dāng)于: CountBean bean = new CountBean(); session.setAttribute( "bean" , bean );
    注意:如果在scope指定范圍內(nèi),該JavaBean已存在,則<jap:useBean>不會生成新的JavaBean對象,而是直接獲得已經(jīng)存在的 JavaBean 對象的引用.
    3.使用<jsp:getProperty>和<jsp:setProerty>標簽訪問JavaBean屬性:
    <jsp:getProperty name="實例名" property="Bean中的屬性名"> 調(diào)用Bean中的get方法得到某屬性的值
    <jsp:setProperty name="實例名" property="Bean中的屬性名"> 調(diào)用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作用域中: 表示JavaBean有效范圍僅為其所在的JSP頁面,如果用戶關(guān)閉該JSP頁面,處理響應(yīng)該用戶請求的JavaBean也會消失。在這種情況下,服務(wù)器分配給每個客戶的JavaBean是不同的。 例子的結(jié)果: count values is: 0 scope = page
    此時JavaBean在將以下兩種情況下結(jié)束生命周期 (1)當(dāng)客戶訪問當(dāng)前Jsp頁面通過forword轉(zhuǎn)發(fā)請求到另一文件時 (2) 當(dāng)客戶訪問當(dāng)前Jsp頁面執(zhí)行完畢并向客戶端發(fā)回響應(yīng)時
    2.JavaBean在request作用域中: 表示分配給每個客戶的JavaBean不同,且有效范圍在request請求期間,即在請求與被請求頁面之間共享JavaBean。當(dāng)對請求作出響應(yīng)后,JavaBean就會被取消。 例子的結(jié)果: count values is: 0 scope = request 此時 , 當(dāng)客戶訪問當(dāng)前Jsp頁面執(zhí)行完畢并向客戶端發(fā)回響應(yīng)時 ,JavaBean結(jié)束生命周期
    3 JavaBean在session作用域中: 表示分配給每個客戶的JavaBean不同,但在同一客戶打開的多個JSP頁面,即一次會話期間,用的是同一個JavaBean。如果在同一客戶的不同JSP頁面中,聲明了相同id的JavaBean且范圍仍為session,更改JavaBean的成員變量值,則其它頁面中id名相同的Bean的成員變量也會被改變。當(dāng)客戶從服務(wù)器端請求的所有網(wǎng)頁都被關(guān)閉時,與該客戶這一次會話對應(yīng)的JavaBean也會被取消。
    JavaBean對象被創(chuàng)建后,一直存在于當(dāng)前回話中,在同一會話中,共享同一JavaBean 例子結(jié)果: count values is: 0( 每刷新一次,增長1,當(dāng)打開另一瀏覽器窗口重新發(fā)出請求時,就不在同一會話中了,將創(chuàng)建一個新的會話,從0開始重新增長。 ) scope = session
    4.JavaBean在application作用域中 表示在這種情況下服務(wù)器端所有客戶之間共享JavaBean。如果其中一個客戶改變了JavaBean成員變量值,其它客戶使用的這個JavaBean的相應(yīng)變量值也會發(fā)生改變。當(dāng)服務(wù)器關(guān)閉時,JavaBean才會被取消。 JavaBean對象被創(chuàng)建后,一直存在于當(dāng)前Web應(yīng)用程序的生命周期中,在此應(yīng)用程序中,共享同一JavaBean例子結(jié)果: count values is: 0( 每刷新一次,增長1,當(dāng)打開另一瀏覽器窗口重新發(fā)出請求時,此時還在同一Web應(yīng)用程序中了,從原有基礎(chǔ)上增長。 ) scope = application
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,644評論 18 399
  • 前面講了servlet入門實踐現(xiàn)在開始介紹jsp入門實踐,開發(fā)環(huán)境的搭建請參考我前面的tomcat的文章,jsp入...
    伊豚wall閱讀 3,428評論 2 56
  • 什么是jsp? 很久之前,我們的網(wǎng)頁都是靜態(tài)的,就是我們所看到的頁面在編寫好之后總是唯一的。后來有人便提出動態(tài)頁面...
    ezsync小智閱讀 1,666評論 0 13
  • JSP 基本結(jié)構(gòu)JSP 頁面組成:模板文本(HTML,XML,純文本),JSP 元素;JSP 元素:腳本元素,指令...
    jslancer閱讀 1,077評論 0 11
  • JSP(Java Server Pages),其根本是一個簡化的 Servlet 設(shè)計,實現(xiàn)了在 Java 當(dāng)中使...
    靜候那一米陽光閱讀 1,016評論 0 1

友情鏈接更多精彩內(nèi)容