javavbean

一、什么是javabean
JavaBean是一個遵循特定寫法的Java類,它通常具有如下特點:
這個Java類必須具有一個無參的構造函數
屬性必須私有化。
私有化的屬性必須通過public類型的方法暴露給其它程序,并且方法的命名也必須遵守一定的命名規范。
JavaBean規范:
 JavaBean在J2EE開發中,通常用于封裝數據,對于遵循以上寫法的JavaBean組件,其它程序可以通過反射技術實例化JavaBean對象,并且通過反射那些遵守命名規范的方法,從而獲知JavaBean的屬性,進而調用其屬性保存數據。

一個JavaBean由3部分組成:
 
  (1) 屬性(properties)
  JavaBean提供了高層次的屬性概念,屬性在JavaBean中不只是傳統的面向對象的概念里的屬性,它同時還得到了屬性讀取和屬性寫入的API的支持。屬性值可以通過調用適當的bean方法進行。比如,可能bean有一個名字屬性,這個屬性的值可能需要調用String getName()方法讀取,而寫入屬性值可能要需要調用void setName(String str)的方法。

  每個JavaBean屬性通常都應該遵循簡單的方法命名規則,這樣應用程序構造器工具和最終用戶才能找到JavaBean提供的屬性,然后查詢或修改屬性值,對bean進行操作。JavaBean還可以對屬性值的改變作出及時的反應。比如一個顯示當前時間的JavaBean,如果改變時鐘的時區屬性,則時鐘會立即重畫,顯示當前指定時區的時間。

  (2) 方法(method)
  JavaBean中的方法就是通常的Java方法,它可以從其他組件或在腳本環境中調用。默認情況下,所有bean的公有方法都可以被外部調用,但bean一般只會引出其公有方法的一個子集。

  由于JavaBean本身是Java對象,調用這個對象的方法是與其交互作用的唯一途徑。JavaBean嚴格遵守面向對象的類設計邏輯,不讓外部世界訪問其任何字段(沒有public字段)。這樣,方法調用是接觸Bean的唯一途徑。

  但是和普通類不同的是,對有些Bean來說,采用調用實例方法的低級機制并不是操作和使用Bean的主要途徑。公開Bean方法在Bean操作中降為輔助地位,因為兩個高級Bean特性--屬性和事件是與Bean交互作用的更好方式。

  因此Bean可以提供要讓客戶使用的public方法,但應當認識到,Bean設計人員希望看到絕大部分Bean的功能反映在屬性和事件中,而不是在人工調用和各個方法中。

  (3) 事件(event)
  Bean與其他軟件組件交流信息的主要方式是發送和接受事件。我們可以將bean的事件支持功能看作是集成電路中的輸入輸出引腳:工程師將引腳連接在一起組成系統,讓組件進行通訊。有些引腳用于輸入,有些引腳用于輸出,相當于事件模型中的發送事件和接收事件。

  事件為JavaBean組件提供了一種發送通知給其他組件的方法。在AWT事件模型中,一個事件源可以注冊事件監聽器對象。當事件源檢測到發生了某種事件時,它將調用事件監聽器對象中的一個適當的事件處理方法來處理這個事件。
二、JavaBean的屬性
 JavaBean的屬性可以是任意類型,并且一個JavaBean可以有多個屬性。每個屬性通常都需要具有相應的setter、 getter方法,setter方法稱為屬性修改器,getter方法稱為屬性訪問器。
  屬性修改器必須以小寫的set前綴開始,后跟屬性名,且屬性名的第一個字母要改為大寫,例如,name屬性的修改器名稱為setName,password屬性的修改器名稱為setPassword。?
  屬性訪問器通常以小寫的get前綴開始,后跟屬性名,且屬性名的第一個字母也要改為大寫,例如,name屬性的訪問器名稱為getName,password屬性的訪問器名稱為getPassword。?
  一個JavaBean的某個屬性也可以只有set方法或get方法,這樣的屬性通常也稱之為只寫、只讀屬性。
三、在jsp中如何使用JavaBean
 JSP技術提供了三個關于JavaBean組件的動作元素,即JSP標簽,它們分別為:
.<jsp:useBean>標簽:用于在JSP頁面中查找或實例化一個JavaBean組件。
 <jsp:useBean>標簽用于在指定的域范圍內查找指定名稱的JavaBean對象,如果存在則直接返回該JavaBean對象的引用,如果不存在則實例化一個新的JavaBean對象并將它以指定的名稱存儲到指定的域范圍中。?
  常用語法:
??? <jsp:useBean id="beanName" class="package.class" scope="page|request|session|application"/>
  "id"屬性用于指定JavaBean實例對象的引用名稱和其存儲在域范圍中的名稱。
  "class"屬性用于指定JavaBean的完整類名(即必須帶有包名)。
  "scope"屬性用于指定JavaBean實例對象所存儲的域范圍,其取值只能是page、request、session和application等四個值中的一個,其默認值是page。

四、三大構件

Session bean:會話構件,是短暫的對象,運行在服務器上,并執行一些應用邏輯處理,它由客戶端應用程序建立,其數據需要自己來管理。分為無狀態和有狀態兩種。
Entity bean:實體構件,是持久對象,可以被其他對象調用。在建立時指定一個唯一標示的標識,并允許客戶程序,根據實體bean標識來定位beans實例。多個實體可以并發訪問實體bean,事務間的協調由容器來完成。
MessageDriven Bean:消息構件,是專門用來處理JMS(Java Message System)消息的規范(EIB2.0)。JMS是一種與廠商無關的API,用來訪問消息收發系統,并提供了與廠商無關的訪問方法,以此來訪問消息收發 服務。JMS客戶機可以用來發送消息而不必等待回應。

轉載于:https://www.cnblogs.com/lr1402585172/p/10772672.html

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

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

相關文章

Centos7下搭建LAMP環境,安裝wordpress(不會生產博客,只是一名博客搬運工)(菜鳥)

1.搭建MySQL數據庫 安裝MariaDB yum install mariadb-server -y 啟動MySQL服務 emctl start mariadb #啟動服務 emtcl enable marriadb#設置開機服務 設置MySQL賬戶和root密碼 mysqladmin -u root password ******* 2.安裝Apache服務 安裝Apache yum install httpd -y 啟動A…

(C語言版)棧和隊列(二)——實現順序存儲棧和順序存儲隊列的相關操作

http://blog.csdn.net/fisherwan/article/details/21479649 棧和隊列都有兩種實現方式&#xff0c;一種在之前已經寫過了&#xff0c;是鏈式存儲形式&#xff0c;另一種是順序存儲形式。也就是這里所寫的用數組的形式實現&#xff0c;和鏈式存儲形式相比&#xff0c;有幾個不同…

算法學習——貪心篇

貪心選擇是指應用同一規則&#xff0c;將原問題變為一個相似但是規模更小的問題&#xff0c;而后的每一步都是當前看起來最佳的選擇&#xff0c;且這種選擇只依賴于已做出的選擇&#xff0c;不依賴于未作出的選擇。 貪心算法說起來容易&#xff0c;操作起來卻經常有點玄學。&am…

使用基本MVC2模式創建新聞網站

轉載于:https://www.cnblogs.com/lr1402585172/p/10885084.html

棧(Stack),輕松解決數制轉換和括號匹配問題!

http://data.biancheng.net/view/9.html 棧&#xff0c;線性表的一種特殊的存儲結構。與學習過的線性表的不同之處在于棧只能從表的固定一端對數據進行插入和刪除操作&#xff0c;另一端是封死的。 圖1 棧結構示意圖由于棧只有一邊開口存取數據&#xff0c;稱開口的那一端為“…

第一章 TCP/IP協議族

一、協議族體系結構 TCP/IP協議族分為四層協議系統&#xff0c;自底向下分別為數據鏈路層、網絡層、傳輸層、應用層。 數據鏈路層常用ARP&#xff08;地址解析協議&#xff09;和RARP&#xff08;逆地址解析協議&#xff09;。在網絡層使用IP尋址&#xff0c;而在數據鏈路層使用…

二分(三分)+快速冪

之前學習的二分&#xff0c;現在感覺突然理解許多&#xff0c;補一下總結 首先&#xff0c;二分能夠解決什么樣的問題呢&#xff0c;個人認為&#xff0c;二分能夠快速解決已經知道答案范圍&#xff08;線性&#xff09;但是不知道確切答案的問題&#xff0c;例如在一個有序序列…

pthread_cleanup_push與pthread_cleanup_pop的目的 作用

http://blog.csdn.net/slj_win/article/details/7267483 首先你必須知道pthread_cleanup_push與pthread_cleanup_pop的目的(作用)是什么。 比如thread1: 執行 pthread_mutex_lock(&mutex); //一些會阻塞程序運行的調用&#xff0c;比如套接字的accept&#xff0c;等待客…

動態規劃淺談

接觸動態規劃這么久了&#xff0c;簡單談一下自己對動態規劃的理解。 動態規劃名字聽起來好像比比較高大上&#xff0c;可是事實上&#xff0c;人家就是比較高大上。&#xff08;抖個機靈&#xff09; 剛開始接觸動態規劃的時候覺得好可怕&#xff0c;這么復雜的問題我怎么能想…

Linux多線程——使用信號量同步線程

http://blog.csdn.net/ljianhui/article/details/10813469/ 信號量、同步這些名詞在進程間通信時就已經說過&#xff0c;在這里它們的意思是相同的&#xff0c;只不過是同步的對象不同而已。但是下面介紹的信號量的接口是用于線程的信號量&#xff0c;注意不要跟用于進程間通信…

linux下安裝erlang

1.安裝Erlang編譯依賴: yum -y install gcc glibc-devel make ncurses-devel openssl-devel xmlto perl wget 2.下載Erlang&#xff1a; wget http://www.erlang.org/download/otp_src_19.3.tar.gz 3.解壓并安裝 tar -xzvf otp_src_19.3.tar.gz cd otp_src_19.3 ./configure --…

Linux 線程同步的三種方法

http://blog.csdn.net/zsf8701/article/details/7844316 線程的最大特點是資源的共享性&#xff0c;但資源共享中的同步問題是多線程編程的難點。linux下提供了多種方式來處理線程同步&#xff0c;最常用的是互斥鎖、條件變量和信號量。 一、互斥鎖(mutex) 通過鎖機制實現線程…

Elixir特性

iex 退出&#xff1a;Ctrl-C 或Ctrl-G再輸入q 回車。 幫助文檔&#xff1a;h 查看輔函數列表 h IO 查看IO模塊幫助 h IO.puts 查看IO模塊中的puts函數的文檔 編譯和運行&#xff1a;創建一個hello.exs的文件。IO.puts "hello world"    //輸出hello world 使用el…

Elixir基礎

值類型 整數&#xff0c;包括十進制&#xff08;1234&#xff09;、十六進制&#xff08;0xcafe&#xff09;、八進制&#xff08;0o765&#xff09;和二進制&#xff08;0b1010&#xff09; 浮點數 原子&#xff0c;原子是常量&#xff0c;用于表現某些東西的名字&#xff0c;…

C++11新特性之八——函數對象function

http://www.cnblogs.com/yyxt/p/3987717.html 詳細請看《C Primer plus》(第六版中文版) http://www.cnblogs.com/lvpengms/archive/2011/02/21/1960078.html 備注&#xff1a; 函數對象&#xff1a; 盡管函數指針被廣泛用于實現函數回調&#xff0c;但C還提供了一個重要的實現…

分塊思想

今天學習了一個算法&#xff08;這個應該叫做算法吧&#xff1f;&#xff09;叫做分塊&#xff08;和莫隊&#xff0c;但是莫隊還沒有搞懂&#xff0c;搞懂再來寫吧&#xff09; 聽起來很高級&#xff0c;蒟蒻表示瑟瑟發抖。但是學完發現怎么那么像是一種變相的暴力呢。 分塊思…

從零開始學C++之STL(八):函數對象、 函數對象與容器、函數對象與算法

http://blog.csdn.net/jnu_simba/article/details/9500219 一、函數對象 1、函數對象&#xff08;function object&#xff09;也稱為仿函數&#xff08;functor&#xff09; 2、一個行為類似函數的對象&#xff0c;它可以沒有參數&#xff0c;也可以帶有若干參數。 3、任何重載…

樹狀數組初步理解

學習樹狀數組已經兩周了&#xff0c;之前偷懶一直沒有寫&#xff0c;趕緊補上防止自己忘記&#xff08;雖然好像已經忘得差不多了&#xff09;。 作為一種經常處理區間問題的數據結構&#xff0c;它和線段樹、分塊一樣&#xff0c;核心就是將區間分成許多個小區間然后通過對大區…

命名函數

函數體是代碼塊 代碼塊do...end是一種表達式的組織方式。 # ./times.exs下defmodule Times dodef doule(n) don * 2end end 函數調用與模式匹配 代碼如下&#xff1a; # ./factorial.exs    計算階層 defmodule Factorial dodef of(0), do: 1          #終止條件…

STL運用的C++技術(6)——函數對象

http://blog.csdn.net/wuzhekai1985/article/details/6658940?_t_t_t0.20427969420870595 STL是C標準庫的重要組成部分之一&#xff0c;它不僅是一個可復用的組件庫&#xff0c;更是一個包含算法與數據結構的軟件框架&#xff0c;同時也是C泛型編程的很好例子。STL中運用了許多…