天天看點

javaBean和jsp應用

JavaBean是一種可複用,跨平台的元件。共有兩種JavaBean:一種無使用者界面,這種一般用于處理資料運算,操作資料庫等。另一種是有使用者界面(User Interface)的JavaBean. 在Jsp中一般通路無使用者界面的JavaBean。

       Jsp中通路JavaBean文法:

1. 使用page指令導入 JavaBean 類:

    <%@page import="包名 . 類名" %>

2. 使用<jsp:useBean>标簽聲明JavaBean對象:

    <jsp:useBean id="執行個體名" class="包名 . 類名" scope="作用範圍"/>

注意:要給出完整的(包名 . 類名),否則報ClassNotFoundException

    例:<jsp:useBean id="bean" class="com.CountBean" scope="session"/>

    上面的代碼相當于:

                 CountBean bean = new CountBean();

                 session.setAttribute( "bean" , bean );

注意:如果在scope指定範圍内,該JavaBean已存在,則<jsp:useBean>不會生成新的JavaBean對象,而是直接獲得已經存在的 JavaBean 對象的引用.

3.使用<jsp:getProperty>和<jsp:setProerty>标簽通路JavaBean屬性:

<jsp:getProperty name="執行個體名" property="Bean中的屬性名">

    調用Bean中的get方法得到某屬性的值

<jsp:setProperty name="執行個體名" property="Bean中的屬性名">

      調用Bean中的set方法給某屬性指派

1.JavaBean在page作用域中:

    在這種情況下,客戶每次通路Jsp頁面時,都會建立一個JavaBean對象,僅在目前Jsp頁面中有效。

    例子的結果:

                    count values is: 0

                    scope = page

    此時JavaBean在将以下兩種情況下結束生命周期

      (1)當客戶通路目前Jsp頁面通過forword轉發請求到另一檔案時

    (2) 當客戶通路目前Jsp頁面執行完畢并向用戶端發回響應時

2.JavaBean在request作用域中:

    與page一樣,客戶每次通路Jsp頁面時,都會建立一個JavaBean對象。

                    scope = request

   此時 , 當客戶通路目前Jsp頁面執行完畢并向用戶端發回響應時 ,JavaBean結束生命周期

3 JavaBean在session作用域中:

    JavaBean對象被建立後,一直存在于目前回話中,在同一會話中,共享同一JavaBean

    例子結果:

( 每重新整理一次,增長1,當打開另一浏覽器視窗重新送出請求時,就不在同一會話中了,将建立一個新的會話,從0開始重新增長。 )

                    scope = session

4.JavaBean在application作用域中

     JavaBean對象被建立後,一直存在于目前Web應用程式的生命周期中,在此應用程式中,共享同一JavaBean

例子結果:

( 每重新整理一次,增長1,當打開另一浏覽器視窗重新送出請求時,此時還在同一Web應用程式中了,從原有基礎上)

注意:預設的情況下,jsp中session的屬性是true

例如:javaBean作用範圍是session的情況!

a.jsp

.................

<jsp:useBean id="dbMsg" class="com.bean.SQLBean" scope="session"/>

<%

    //初始化

           dbMsg.getConncetion("org.gjt.mm.mysql.Driver","jdbc:mysql://localhost/ss", "lala", "haha");

           dbMsg.getStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);

%>

<jsp:include page="b.jsp"/>

.............

b.jsp

................

dbMsg.doing();