jsp調用javaBean的簡單例子
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的簡單例子