JSP與JavaBean

來源:互聯網
上載者:User

標籤:

JavaBean的概念

JavaBean是一種可重複使用、且跨平台的軟體組件。JavaBean可分為兩種:一種是有使用者介面(UI,User Interface)的JavaBean;還有一種是沒有使用者介面,主要負責處理事務(如資料運算,操縱資料庫)的JavaBean。JSP通常訪問的是後一種JavaBean。

JavaBean的優點

?使得HTML與Java程式分離,這樣便於維護代碼。如果把所有的程式碼都寫到JSP網頁中,會使得代碼繁雜,難以維護

?可以降低開發JSP網頁人員對Java編程能力的要求

?JSP側重於產生動態網頁,交易處理由JavaBean來完成,這樣可以充分利用JavaBean組件的可重用性特點,提高開發網站的效率 編寫一個JavaBean

一個標準的javaBean編寫規則如下

1.JavaBean是一個公用的(public)類

2.JavaBean有一個不帶參數的構造方法

3.JavaBean通過setXXX方法設定屬性,通過getXXX方法擷取屬性,可以用IDE工具的Generate Getters and Setters自動產生。

例如:myeclipse可以右擊編輯區->source->Generate Getters and Setters->Select All->OK,就可以自動產生成員變數的getter and setter方法

下面是一個JavaBean的樣本:

package com.bean;public class Person {    private int IDcard;    private String name;    public int getIDcard() {        return IDcard;    }    public void setIDcard(int iDcard) {        IDcard = iDcard;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }}
在JSP頁面匯入JavaBean類

通過<%@ page import>指令匯入JavaBean類,例如:

<%@ page import="com.bean.*" %> 
聲明JavaBean對象

<jsp:useBean>標籤用來聲明JavaBean對象,例如:

<jsp:useBean id="person1" class="com.bean.Person" scope="request" /> 
<jsp:useBean id="person2" class="com.bean.Person" scope="session" /> 

1.id就是Person類的執行個體的名字,換這個寫法一看就明白

Person person1=new Person(); 

2.scope是範圍,取值為JSP的內建對象,詳細參見JSP內建對象。範圍從小到大如下:

>page(預設值)

客戶每次請求訪問JSP頁面時,都會建立一個JavaBean對象。JavaBean對象的有效範圍是客戶請求訪問的當前JSP網頁。JavaBean對象在以下兩種情況下都會結束生命期:

–客戶請求訪問的當前JSP網頁通過<forward>標記將請求轉寄到另一個檔案

–客戶請求訪問的當前JSP頁面執行完畢並向用戶端發迴響應。

>request

客戶每次請求訪問JSP頁面時,都會建立新的JavaBean對象。JavaBean對象的有效範圍為:

–客戶請求訪問的當前JSP網頁

–和當前JSP網頁共用同一個客戶請求的網頁,即當前JSP網頁中<%@ include>指令以及<forward>標記包含的其他JSP檔案

–當所有共用同一個客戶請求的JSP頁面執行完畢並向用戶端發迴響應時,JavaBean對象結束生命週期。

可以通過JavaBean的id在<JSP:getProperty>和<jsp:setProperty>直接引用JavaBean對象,例如:

<jsp:getProperty property="IDcard" name="person1"/> 

JavaBean對象作為屬性儲存在HttpRequest對象中,屬性名稱為JavaBean的id,屬性值為JavaBean對象,因此也可以通過HttpRequest.getAttribute()方法取得JavaBean對象,例如:

Person personObj1=(Person)request.getAttribute(“person1”); 

>session

JavaBean對象被建立後,它存在於整個Session的生存周期內,同一個Session中的JSP檔案分享權限設定這個JavaBean對象。

可以通過JavaBean的id在<JSP:getProperty>和<jsp:setProperty>直接引用JavaBean對象,例如:

<jsp:getProperty property="IDcard" name="person2"/>

JavaBean對象作為屬性儲存在HttpSession對象中,屬性名稱為JavaBean的id,屬性值為JavaBean對象。除了可以通過JavaBean的id直接引用JavaBean對象外,也可以通過HttpSession.getAttribute()方法取得JavaBean對象,例如:

Person personObj2=(Person)session.getAttribute(“person2”); 

>application

JavaBean對象被建立後,它存在於整個Web應用的生命週期內,Web應用中的所有JSP檔案都能共用同一個JavaBean對象。

JavaBean對象作為屬性儲存在application對象中,屬性名稱為JavaBean的id,屬性值為JavaBean對象,除了可以通過JavaBean的id直接引用JavaBean對象外,也可以通過application.getAttribute()方法取得JavaBean對象,例如:

Person personObj3=(Person)application.getAttribute(“person3”); 
訪問JavaBean屬性

1.JSP提供了訪問JavaBean屬性的標籤,如果要將JavaBean的某個屬性輸出到網頁上,可以用<jsp:getProperty>標籤,例如:

<jsp:getProperty property="IDcard" name="person1"/> 

屬性:

name就是bean的名字,由<jsp:useBean>中的id指定。

property所指定的Bean的屬性名稱。

2.如果要給JavaBean的某個屬性賦值,可以用<jsp:setProperty>標籤:

name:<jsp:useBean>標籤中的id屬性

property:Bean執行個體的屬性。

value:Bean執行個體屬性的值。

param:表單參數

文法:

1)將bean的屬性設定為某個字串或者運算式。如果是字串,這個字串會自動轉化為bean的屬性的類型。如果是運算式,那麼值的類型必須和bean屬性的類型一致。

<jsp:setProperty name="bean的名字" property="bean的屬性" value=<%=expression%>/> <jsp:setProperty name="bean的名字" property="bean的屬性" value=字串/> <jsp:setProperty property="IDcard" name="person1" value="20130001"/> 

2)通過表單的參數來設定bean的相應屬性的值。

<jsp:setProperty name="bean的名字" property="*" /> <jsp:setProperty name="bean的名字" property="屬性名稱" param=“參數名”/> 

表單中的屬性和javaBean的屬性應該同名。

注意表單中文參數亂碼,可以在Jsp頁面頂部加入

<% request.setCharacterEncoding("UTF-8"); response.setCharacterEncoding("UTF-8"); %> 

JSP與JavaBean

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.