1. 程式人生 > >jsp調用javaBean的簡單例子

jsp調用javaBean的簡單例子

val tle 得到 函數 ssi 獲取 quest 構造 有一個

 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的簡單例子