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之間的差別以及它們的生命周期。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM