標籤:一個 attribute w3c span print padding repo 表示 cell
1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 7 <title>主函數</title> 8 </head> 9 <body>10 <!-- 匯入javaBean類 -->11 <%@ page import="com.weeklyreport.www.TsetBean" %>12 <h2>include 動作執行個體</h2>13 <jsp:include page="date.jsp" flush="flush"></jsp:include>14 <!-- 聲明javaBean對象 -->15 <jsp:useBean id="test" class="com.weeklyreport.www.TsetBean"></jsp:useBean>16 <!--訪問javaBean屬性 -->17 <jsp:setProperty property="message" name="test" value="陳潔娜" />18 19 <p>輸出資訊</p>20 <jsp:getProperty name="test" property="message" />21 </body>22 </html>
一個標準的javaBean有以下幾個特性:
1.javaBean是一個公用的類
2.javaBean有一個不帶參數的構造方法
3.javaBean通過setXXX方法設定屬性,通過getXXX方法擷取屬性。
設定bean的屬性值
1.可以在<jsp:setProperty>中通過param參數為bean的屬性動態賦值。
<jsp:setProperty property="age" name="person" param="sage"/><br> |
sage表示參數名,而不是屬性
在瀏覽器地址欄中輸入
http://localhost:8080/test/javabean.jsp?sage=30
則可以得到age屬性的值30
Javabean的存活範圍
Scope屬性決定了javabean對象的存在的範圍。可選值有:
1.page(預設值)
2.request
3.session
4.application
<jsp:useBean id="person" class="com.anllin.bean.Person" scope="page"></jsp:useBean> |
Javabean在page範圍內時
客戶每次請求訪問jsp頁面時,都會建立一個javabean對象。Javabean對象的有效範圍是客戶請求訪問的當前jsp網頁。Javabean對象的以下兩種情況下都會結束生命期:
1.客戶請求訪問的是當前jsp網頁通過<forward>標記將請求轉寄到另一個檔案
2.客戶請求訪問的是當前jsp頁面執行完畢並向用戶端發迴響應。
Javabean在request範圍內
客戶每次請求訪問jsp頁面時,都會建立新的javabean對象。Javabean對象的有效範圍為:
1.客戶請求訪問的當前jsp網頁。
2.和當前網頁共用一個客戶請求的網頁,即當前jsp網頁中<%@include %>指令以及<forward>標記包含的其他jsp檔案
3.當所有共用同一個客戶請求的jsp頁面執行完畢並向用戶端發加響應時,javabean對象結束生命週期。
4.javabean對象作為屬性儲存在httpRequest對象中,屬性名稱javabean的id,屬性值為javabean對象,因此可以通過HttpRequest.getAttribute()方法取得javabean對象,例如:
Jvabean.jsp
<jsp:useBean id="person" class="com.anllin.bean.Person"scope="request"></jsp:useBean> <jsp:forward page="javabean2.jsp"></jsp:forward> |
Javabean2.jsp
<%@ page import="com.anllin.bean.Person" %> <% Person person = (Person)request.getAttribute("person"); out.print(person.getName()); %> |
Javabean在session範圍內
1.Javabean對象被建立後,它存在於整個session的生命週期內,現個session中的jsp檔案分享權限設定這個javabean對象。
2.javabean對象作為屬性儲存在HttpSession對象中,屬性名稱為javabean的id,屬性值為javabean對象。除了可以通過javabean的id直接引用javabean對象外,也可以通過HttpSession.getAttribute()方法取得javabean對象,例如:
<jsp:useBean id="person" class="com.anllin.bean.Person"scope="session"></jsp:useBean> |
Person person = (Person)session.getAttribute("person"); out.print(person.getName()); |
Javabean在application範圍內
1.javabean對象被建立後,它存在於整個web應用的生命週期內,web應用中的所有jsp檔案都能共用同一個javabean對象。
2.javabean對象作為屬性儲存在application對象中,屬性名稱為javabean的id,屬性值為javabean對象,除了可以通過javabean的id直接引用對象外,也可以通過javabean的application.getAttribute()方法取得javabean對象,例如:
<jsp:useBean id="person" class="com.anllin.bean.Person"scope="application"></jsp:useBean> |
Person person = (Person)application.getAttribute("person"); out.print(person.getName()); |
假如有一個Person類,有一個屬性name
為什麼我們要提供一個getName()方法和setName()方法,而不是getCCNma之類的?
因為只有遵守這個規範,才能通過反射去調用這兩個方法。
重點:
區分page,request,session,application之間的差別以及它們的生命週期。
jsp調用javaBean的簡單例子