JSP:Javabean

?????? 起初,JavaBean的目的是為了將可以重復使用的代碼進行打包,在傳統的應用中,JavaBean主要用于實現一些可視化界面,如一個窗體、按鈕、文本框等,這樣的JavaBean稱之可視化的JavaBean

???? 隨著技術的不斷發展與項目的需求,目前JavaBean主要用于實現一此業務邏輯或封裝一些業務對象,由于這樣的JavaBean并沒有可視化的界面,所以又稱之為非可視化的JavaBean

????? 可視化的JavaBean一般應用于Swing的程序中,在Java Web開發中并不會采用,而是使用非可視化的JavaBean,實現一此業務邏輯或封裝一些業務對象,下面就通過實例來了解一下非可視化的JavaBean

JavaBean 有廣義的和狹義的兩種概念。

廣義的? JavaBean? 是指普通的? Java? 類;

狹義的JavaBean 是指嚴格按照 JavaBean 規范編寫的 Java 類

使用JavaBean的好處:

可以使得JSP頁面變得清晰;

節省軟件開發時間(可以直接使用已經測試和可信的已有組件,避免了重復開發);

降低系統維護的難度

為JSP應用帶來了更多的可伸縮性,使系統變得健壯和靈活。

JavaBean的分類

可視的JavaBean:傳統的JavaBean應用于可視化界面(如java圖形界面中使用的按鈕、文本框或列表框等)。

非可視化JavaBean:封裝邏輯、封裝數據,與JSP搭配使用。

JavaBean有以下特征(編寫規范):

JavaBean是一個public

一定使用了package語句進行打包,并且聲明的打包路徑非sun公司聲明使用的路徑。

有一個無參數的構造方法

屬性一般是私有的(即用private修飾),以保證數據的完整性和封裝性

對屬性值的獲取有相應的getXxx()方法,并且此方法是公有的(即用public修飾)若要獲取的屬性為boolean類型則可以使用isXxx()方法

對屬性值的設置有相應的setXxx()方法,并且此方法也是公有的(即用public修飾)

package bean;

public class SimpleBean{

? private String name;

? private int number;

? public SimpleBean(){?? }

? public void setName(String name){

this.name = name;

}

public void setNumber(int number){

this.number = number;

}

public String getName(){

return name;

}

public int getNumber(){

return number;

}

}

編寫JavaBean時,需要將其放入某個包中,這樣才能被JSP頁面訪問到

保存JavaBeanJavaB

1:一個JavaBean編寫完以后,需要將它編譯成“.class”文件。

第2:并將此“.class”文件放到本次應用的WEB-INF\classes目錄之下,并且需要根據Bean的包名,在classes下再建立相應的子目錄。

例如package ch7.test???? 則該bean.class文件需要放置在“WEB-INF\classes\ch7\test”

使用JavaBean

1步:在 JSP頁面中通過import指令引入bean

格式<%@ page import=”ch7.test.*”%>

2步:通過useBean標記來創建bean對象

格式

<jsp:useBean id=”bean_name” class=”創建bean的類” scope=”bean的有效范圍“> </jsp:useBean>

?<jsp:useBean id=”bean_name” class=”創建bean的類” scope=”bean的有效范圍” />

其中:1.創建bean的類要帶有完整的包名,如ch7.test.Circle

2.scope表示bean的取值范圍,可取page,session,requestapplication,代表不同的作用范圍。

m JavaBean 的范圍設為 page 時,表示這個 JavaBean 的生命周期只在一個 頁面內 有效。
m JavaBean 的范圍設為 request 時,這個 Bean 整個請求的范圍內 都有效。
m JavaBean 的范圍設為 session 時,表示 Bean 可以在當前 HTTP 會話的生命周期 內被所有頁面訪問。
m 設為 application 范圍內的 Bean 生命周期是 最長的 ,從創建了這個 Bean 開始,就可以在任何使用相同 application JSP 文件中使用這個 Bean

3步,在jsp頁面中,可以通過直接調用bean的方法來獲取和修改bean的屬性值,還可以通過jsp動作標記來獲取和修改bean的屬性。

直接調用bean的方法:girl.setradius(100)等。

動作標簽方法:<jsp:getProperty><jsp:setProperty>

m 一個 JavaBean 編寫完以后,需要將它編譯成“ .class” 文件,并將此“ .class” 文件 ( 連同其目錄 ) 放到本次應用的WEB-INF\classes目錄之下。 JSP 中使用 JavaBean的標簽
m JavaBean 的標簽主要有三個:
m
m < jsp:useBean > 標簽:在網頁中創建一個 Bean 對象
m
m < jsp:setProperty > 標簽:用于為 Bean 對象 中的屬性賦值
m
m < jsp:getProperty > 標簽:用于獲取 Bean 對象中 屬性的值
m < jsp:useBean > 標簽用來創建一個 Bean 對象,其語法為:

??? <jsp:useBean id=“beanname” class=“package.class” [scope=“page|request|session|application”] />

m 創建了“ package.class 類的一個對象,對象的名字是“ beanname
m scope 的值指定了 該對象 作用范圍,可能的取值有 4 個: page request session application
m
m 例: < jsp:useBean id=" myBean " scope="request" class=" bean.SampleBean"/>
m < jsp:setProperty > 標簽用來設置 Bean 對象的屬性。其語法有多種:

(1). <jsp:setProperty name=“beanName

? property=“propertyName

? value=“propertyValue” />

? 用來為bean的屬性賦值

??? 其中name指出是在操作哪個beanproperty指出對該bean的哪個屬性賦值,value用來指定給屬性賦的值。

?? 例:<jsp:setProperty name="myBean"?? property="sample" value="HelloJSP"/>

m (2). < jsp:setProperty name=“ beanName

??????? property=“propertyName

??????? param=“paramName” />

m form 表單中參數的名字和 Bean 中屬性名不相同時, 這種用法表示將一個傳入參數的值賦給 bean 的某個屬性。
m 其中 name 指出是在操作哪個 bean property 指出對該 bean 的哪個屬性賦值,而 param表示傳入參數的名字。
m < jsp:getProperty > 標簽用來獲取 Bean 對象的屬性值,并顯示在頁面上,其語法如下:

? <jsp:getProperty name=“beanname

? property=“propertyname” />

? name指出了要獲取哪個bean的屬性值,

?? property指出要獲取該bean的哪個屬性值

例:<jsp:getProperty name="myBean" property="sample"/>

m < jsp:useBean id=“ beanname ” class=“ package.class ” [scope=“ page|request|session|application ”] />

??? class的值要與bean的類名相同id作為對象名,可任取

m < jsp:getProperty name=“ beanname”property =“ propertyname ” />

? 中name的值要與useBean中的id的值相同propertyname要與bean的屬性名相同

m
m ? < jsp:setProperty name=“ beanName

??? property=“propertyName” value=“propertyValue” />中的name的值要與useBean中的id的值相同,propertyname要與bean的屬性名相同。

m < jsp:setProperty name=“ beanName

??? property=“propertyName”/>中,form表單中的參數名、 propertyNamebean中屬性名三者要相同

m < jsp:setProperty name=“ beanName ”, property=“ propertyName ” param=“ paramName ”/> propertyName bean 中屬性名要相同 , paramName 要和 form 表單中屬性名相同
m

mJavaBean的范圍
m 范圍有四種: page request session application
m 例: < jsp:useBean id=" logBean " scope="page" class=“ mypack.LogBean " />
m JavaBean 的范圍設為 page 時,表示這個 JavaBean 的生命周期只在一個頁面內有效。
m JavaBean 的范圍設為 request 時,這個 Bean 在整個請求的范圍內都有效。
m JavaBean 的范圍設為 session 時,表示 Bean 可以在當前 HTTP 會話的生命周期內被所有頁面訪問。
m 設為 application 范圍內的 Bean 生命周期是最長的,從創建了這個 Bean 開始,就可以在任何使用相同 application JSP 文件中使用這個 Bean

7.2 JavaBean的應用

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/160537.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/160537.shtml
英文地址,請注明出處:http://en.pswp.cn/news/160537.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

防火墻部署模式 -- 鏡像流量(旁路模式)

鏡像流量&#xff08;旁路模式&#xff09; 如圖&#xff0c;與單臂路由模式不同&#xff0c;旁路模式中&#xff0c;PC的流量不會流經防火墻&#xff0c;就算防火墻宕機也不會影他們之間的數據傳輸。 鏡像的原理是交換機把被鏡像端口的流量復制一份&#xff0c;發到監聽端口&…

尋找二叉樹最近公共祖先

二叉樹為BST LCR 193. 二叉搜索樹的最近公共祖先 1.1 遞歸 利用BST的性質 p root 或者 q root ,顯然根為公共祖先p < root < q 或者 p > root > q,顯然p&#xff0c;q分別位于root的一顆子樹上&#xff0c;故根為公共祖先max{p,q} < root ,顯然 p 和q 均在…

基于單片機聲光控智能路燈系統仿真設計

**單片機設計介紹&#xff0c; 基于單片機聲光控智能路燈系統仿真設計 文章目錄 一 概要二、功能設計設計思路 三、 軟件設計原理圖 五、 程序六、 文章目錄 一 概要 基于單片機的聲光控智能路燈系統是一種利用單片機技術實現智能控制的路燈系統。它通過感知環境音量和光照強度…

Axios 請求響應結果的結構

發送請求 this.$axios.get(https://apis.jxcxin.cn/api/title?urlhttps://apis.jxcxin.cn/,{params: {id: 10}}).then(res > {console.log(res)})輸出返回結果 confing 請求時的配置對象&#xff0c;如果請求的url&#xff0c;請求的方法&#xff0c;請求的參數&#xff0c…

深入理解Java注解的實現原理以及前世今生

深入理解Java注解的實現原理以及前世今生 小雪初寒&#xff0c;請添衣&#xff0c;冬棋如意&#xff0c;待良人&#xff0c;望歸期。 1.Java注解的前世今生 Java注解是一種元數據標記&#xff0c;它提供了一種在Java代碼中添加元數據&#xff08;注釋&#xff09;的方式。注解…

Linux文件

目錄 一、基本概念 二、研究進程和被打開文件的關系 &#xff08;一&#xff09;w方式 &#xff08;二&#xff09;a方式 三、認識系統接口&#xff0c;操作文件 &#xff08;一&#xff09;認識文件描述符 &#xff08;二&#xff09;舉例 &#xff08;三&#xff09;…

2023年中國油墨樹脂主要環節、產量及市場規模分析[圖]

油墨樹脂是指用于油墨制造中的一種高分子材料&#xff0c;主要用于改善油墨的粘性、流動性、光澤度和耐磨性等性能。其主要成分為合成樹脂&#xff0c;如聚酯、聚酰胺、聚丙烯酸酯等。油墨樹脂在油墨制造中的應用非常廣泛&#xff0c;可以用于各種類型的油墨&#xff0c;包括印…

github訪問不了問題

git clone github上的項目的時候&#xff0c;不是訪問不了&#xff0c;就是克隆過程被中斷了 最近找到一個代理&#xff0c;從代理那里clone而不是github上 GitHub代理 – 初果編程

python BDD 的相關概念

在Python 語言中進行BDD的規格和測試文件的編寫的時候&#xff0c;常常會遇到下面的概念&#xff1a; Fixture : 測試設施。設定測試環境的預設狀態或值的機制。Background&#xff1a; 背景。所有場景的公共部分。Scenario&#xff1a; 場景。Given &#xff1a; 前置條件Whe…

centos7 安裝node.js,不用wget也不用解壓文件

更新系統&#xff1a;首先&#xff0c;更新系統的軟件包列表和已安裝的軟件包。在終端中以root用戶或具有sudo權限的用戶身份運行以下命令&#xff1a; sudo yum update添加Node.js源&#xff1a;CentOS 7默認的軟件倉庫中可能不包含最新的Node.js版本。因此&#xff0c;我們需…

[leetcode 數位運算] 2939. 最大異或乘積 M

給你三個整數 a &#xff0c;b 和 n &#xff0c;請你返回 (a XOR x) * (b XOR x) 的 最大值 且 x 需要滿足 0 < x < 2n。 由于答案可能會很大&#xff0c;返回它對 109 7 取余 后的結果。 注意&#xff0c;XOR 是按位異或操作。 示例 1&#xff1a; 輸入&#xff1…

git中的分支管理:git branch,git checkout,解決git中的分支沖突的方法【Git學習三】

&#x1f601; 作者簡介&#xff1a;一名大四的學生&#xff0c;致力學習前端開發技術 ??個人主頁&#xff1a;夜宵餑餑的主頁 ? 系列專欄&#xff1a;Git等軟件工具技術的使用 &#x1f450;學習格言&#xff1a;成功不是終點&#xff0c;失敗也并非末日&#xff0c;最重要…

vue2 識別頁面參數中的html

在Vue 2中&#xff0c;你可以使用v-html指令來識別頁面參數中的HTML內容。v-html指令允許你將HTML代碼作為Vue模板的一部分進行渲染。 以下是一個示例&#xff0c;演示了如何在Vue 2中使用v-html指令來識別頁面參數中的HTML內容&#xff1a; <template><div v-html&…

C語言計算一個數的 n 次方

1、要求 計算一個數的 n 次方&#xff0c;例如: 2 3&#xff0c;其中 2 為基數&#xff0c;3 為指數。 2、使用for循環 #include <stdio.h> int main(){int i,j,k,l1;printf("請輸入基數和指數&#xff1a;");scanf("%d %d",&i,&j);for(k…

雙流網絡論文精讀筆記

精讀視頻&#xff1a;雙流網絡論文逐段精讀【論文精讀】_嗶哩嗶哩_bilibili Two-Stream Convolutional Networks for Action Recognition in Videos 傳統的神經網絡難以學習到物體的運動信息&#xff0c;雙流網絡則通過光流將物體運動信息抽取出來再傳遞給神經網絡 給模型提供…

Golang 中的良好代碼與糟糕代碼

最近&#xff0c;有人要求我詳細解釋在 Golang 中什么是好的代碼和壞的代碼。我覺得這個練習非常有趣。實際上&#xff0c;足夠有趣以至于我寫了一篇關于這個話題的文章。為了說明我的回答&#xff0c;我選擇了我在空中交通管理&#xff08;ATM&#xff09;領域遇到的一個具體用…

linux部署jar 常見問題

1.java -jar xxx.jar no main manifest attribute, in xxx.jar 一.no main manifest attribute, in xxx.jar 在pom.xml文件中加入&#xff1a; <plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifac…

C語言每日一題(35)有效的括號

力扣網 20 有效的括號 題目描述 給定一個只包括 (&#xff0c;)&#xff0c;{&#xff0c;}&#xff0c;[&#xff0c;] 的字符串 s &#xff0c;判斷字符串是否有效。 有效字符串需滿足&#xff1a; 左括號必須用相同類型的右括號閉合。左括號必須以正確的順序閉合。每個右…

CountDownLatch和CyclicBarrier

JUC&#xff08;Java.util.concurrent&#xff09;是Java 5中引入的一個并發編程庫&#xff0c;它包含了許多用于多線程處理的工具類和接口。JUC主要提供了以下特性&#xff1a; 線程池&#xff1a;線程池可以提高線程的使用效率&#xff0c;避免頻繁地創建和銷毀線程&#xff…

Kotlin學習——hello kotlin 函數function 變量 類 + 泛型 + 繼承

Kotlin 是一門現代但已成熟的編程語言&#xff0c;旨在讓開發人員更幸福快樂。 它簡潔、安全、可與 Java 及其他語言互操作&#xff0c;并提供了多種方式在多個平臺間復用代碼&#xff0c;以實現高效編程。 https://play.kotlinlang.org/byExample/01_introduction/02_Functio…