版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、9.9.1 1 組件技術(shù)組件技術(shù)9.9.5 JavaBean5 JavaBean的基本概念的基本概念9.9.2 JavaBean2 JavaBean的任務(wù)的任務(wù)9.9.3 JavaBean3 JavaBean的主要設(shè)計(jì)目標(biāo)的主要設(shè)計(jì)目標(biāo)9.9.4 JavaBean4 JavaBean與與JavaJava9.9.6 6 在在JSPJSP中使用中使用JavaBeanJavaBean9.9.1 1 組件技術(shù)組件技術(shù) Java的Bean是一個(gè)可以復(fù)用的軟件模型。一般來(lái)說(shuō),Bean可以為簡(jiǎn)單的GUI,可以是按鈕組件、游標(biāo)、菜單等。這些是Bean的直觀方法。在JSP中所用的JavaBean,一般以不可見(jiàn)的
2、組件為主。9.9.2 JavaBean2 JavaBean的任務(wù)的任務(wù) JavaBean的任務(wù)是它能夠在包括應(yīng)用程序、其他組件、文檔、 Web站點(diǎn)和應(yīng)用程序構(gòu)造器工具的多種方案中再利用。9.3 JavaBean9.3 JavaBean的主要設(shè)計(jì)目標(biāo)JavaBean的主要設(shè)計(jì)目標(biāo):緊湊而方便地創(chuàng)建和使用;完全的可移植性;繼承Java的強(qiáng)大功能;支持可擴(kuò)展的設(shè)計(jì)過(guò)程組件編輯器;提高分布計(jì)算機(jī)制的強(qiáng)壯性;9.9.4 JavaBean4 JavaBean與與JavaJava Java能夠?yàn)橛脩魟?chuàng)建可重用的對(duì)象,但它卻沒(méi)有管理這些對(duì)象相互作用的規(guī)律或標(biāo)準(zhǔn)。 JavaBean通過(guò)指定定義對(duì)象之間交互作用的
3、機(jī)制,以及大部分對(duì)象需要支持的常用行為,如持久性和實(shí)際處理等,建立了自己需要的組件模型。9.9.5 JavaBean5 JavaBean的基本概念的基本概念9.5.1 什么是JavaBean9.5.2 屬性、 事件和方法9.5.3 JavaBean示例程序9.5.1 9.5.1 什么是什么是JavaBeanJavaBean JavaBean是可復(fù)用的平臺(tái)獨(dú)立的軟件組件,開(kāi)發(fā)者可以在軟件構(gòu)造器工具中對(duì)其直接進(jìn)行可視化操作。 JavaBean必須支持以下特征:支持自檢,這樣構(gòu)造器工具才能分析bean是如何工作的。支持定制,這樣用戶才能使用應(yīng)用程序構(gòu)造器工具定制bean的外觀和行為。支持事件,這樣b
4、ean才能與外部進(jìn)行通訊。支持屬性,這樣bean才能具有內(nèi)部的狀態(tài),以便定制應(yīng)用和編寫(xiě)應(yīng)用。支持持久性,這樣bean才能在應(yīng)用程序構(gòu)造器工具定制,并將定制的狀態(tài)存儲(chǔ)起來(lái)以便隨時(shí)使用。9.5.1 9.5.1 什么是什么是JavaBeanJavaBean 可視化的JavaBean必須繼承的類是java.awt.Component,這樣它們才能添加到可視化容器中去,非可視化JavaBean則不需要繼承這個(gè)類。 JavaBean比較適合于那些具有可視化操作和定制特性的軟件組件。9.5.2 9.5.2 屬性、事件和方法屬性、事件和方法 JavaBean可以看作是一個(gè)黑盒子,即只需要知道其功能而不必管其內(nèi)
5、部結(jié)構(gòu)的軟件設(shè)備。 作為一個(gè)黑盒子的模型, JavaBean有3個(gè)接口面,可以獨(dú)立進(jìn)行開(kāi)發(fā):1. JavaBean可以調(diào)用的方法。2. JavaBean提供的可讀寫(xiě)的屬性。3. JavaBean向外部發(fā)送的或從外部接收的事件。9.5.2 9.5.2 屬性、事件和方法屬性、事件和方法一.方法二.屬性三.事件一.方法 JavaBean中的方法就是通常的Java方法,它可以從其他組件或腳本環(huán)境中調(diào)用。默認(rèn)情況下,所有Bean的公有 (public)方法都可以被外部調(diào)用,但Bean一般只會(huì)引出其公有方法的一個(gè)子集。外界不可能訪問(wèn)類中的任何非公有字段。JavaBean的另外兩個(gè)更為高級(jí)的JavaBean
6、特征 屬性和事件,成為了與JavaBean進(jìn)行交互的更好手段。二.屬性 JavaBean提供了高層次的屬性(properties)概念。 JavaBean的屬性是與bean的內(nèi)部狀態(tài)有關(guān)的命名的性質(zhì),屬性的值可以通過(guò)調(diào)用適當(dāng)?shù)腷ean方法進(jìn)行讀寫(xiě)。 每個(gè)JavaBean屬性通常都應(yīng)該遵循一定的命名規(guī)則,這樣應(yīng)用程序構(gòu)造器工具和最終用戶才能找到JavaBean提供的屬性,然后查詢或修改屬性值,對(duì)JavaBean進(jìn)行操作。二.屬性 在JavaBean的設(shè)計(jì)中,按照屬性的不同作用細(xì)分為四類:Simple,Indexed,Bound與Constrained屬性。1.Simple屬性 一個(gè)簡(jiǎn)單屬性表示一
7、個(gè)伴隨有一對(duì)get/set方法的類變量。屬性名與和該屬性相關(guān)的get/set方法名對(duì)應(yīng)。例如,如果有setX()和getX()方法,則暗指有一個(gè)名為X的屬性。如果有一個(gè)方法名為isX,則通常暗指X是一個(gè)布爾屬性(即X的值為true或false)。 例:10.1二.屬性 public class alden1 extends Canvas string ourString= Hello; /屬性名為ourString,類型為字符串public alden1() /alden1()是alden1的構(gòu)造函數(shù),與C+中構(gòu)造函數(shù)的意義相同setBackground(Color.red);setForeg
8、round(Color.blue);/* set屬性*/public void setourString(String newString) ourString=newString;/* get屬性 */public String getourString() return ourString;二.屬性2.Indexed屬性 一個(gè)Indexed屬性表示一個(gè)數(shù)組值。使用與該屬性對(duì)應(yīng)的get/set方法可取得數(shù)組中的數(shù)值。該屬性也可以一次設(shè)置或取得整個(gè)數(shù)組的值。例:10.2二.屬性 public class alden2 extends Canvas int dataSet=1,2,3,4,5,6
9、; / dataSet是一個(gè)indexed屬性public alden2() setBackground(Color.red);setForeground(Color.blue);/* 設(shè)置整個(gè)數(shù)組*/public void setDataSet(int x)dataSet=x;/* 設(shè)置數(shù)組中的單個(gè)元素值 */ public void setDataSet(int index, int x)dataSetindex=x;二.屬性 /* 取得整個(gè)數(shù)組值 */public int getDataSet()return dataSet;/* 取得數(shù)組中的指定元素值 */public int get
10、DataSet(int x)return dataSetx;二.屬性3.Bound屬性 一個(gè)Bound屬性是指當(dāng)該種屬性的值發(fā)生變化時(shí),要通知其它的對(duì)象的屬性。每次屬性值改變時(shí),就觸發(fā)一個(gè)PropertyChange事件(在Java程序中,事件也是一個(gè)對(duì)象)。事件中封裝了屬性名、屬性的原值、屬性變化后的新值。這種事件通過(guò)JavaBeans的事件機(jī)制傳遞到其它的JavaBean,至于接收事件的Bean應(yīng)做什么動(dòng)作由其自己定義。 例:10.3二.屬性public class alden3 extends CanvasString ourString= Hello;/ourString是一個(gè)boun
11、d屬性private PropertyChangeSupport changes = new PropertyChangeSupport(this); public void setString(string newString) String oldString = ourString; ourString = newString; /* ourString的屬性值已發(fā)生變化,于是接著點(diǎn)火屬性改變事件 */ changes.firePropertyChange(ourString,oldString,newString);public String getString()return our
12、String;二.屬性 public void addPropertyChangeListener(PropertyChangeLisener l)changes.addPropertyChangeListener(l);public void removePropertyChangeListener(PropertyChangeListener l)changes.removePropertyChangeListener(l);二.屬性 /* 注:Java是純面向?qū)ο蟮恼Z(yǔ)言,如果要使用某種方法則必須指明是要使用哪個(gè)對(duì)象的方法,程序中要進(jìn)行點(diǎn)火事件的操作,這種操作所使用的方法是在Propert
13、yChangeSupport類中的。所以上面聲明并實(shí)例化了一個(gè)changes對(duì)象,在下面將使用changes的firePropertyChange方法來(lái)點(diǎn)火ourString的屬性改變事件。*/ /* 我們不能預(yù)知alden3將與哪些其它的Bean組合成為一個(gè)應(yīng)用,無(wú)法預(yù)知若alden3的ourString屬性發(fā)生變化時(shí)有哪些其它的組件與此變化有關(guān),因而alden3這個(gè)Bean要預(yù)留出一些接口給開(kāi)發(fā)工具,開(kāi)發(fā)工具使用這些接口,把其它的JavaBean對(duì)象與alden3掛接。*/ 二.屬性4.Constrained屬性 一個(gè)JavaBean的Constrained屬性,是指當(dāng)這個(gè)屬性的值發(fā)生變化
14、時(shí),與這個(gè)屬性已建立了某種連接的其它Java對(duì)象可否決屬性值的改變。 Constrained屬性的監(jiān)聽(tīng)者通過(guò)拋出PropertyVetoException異常來(lái)阻止該屬性的改變。 例:10.4二.屬性public class JellyBean extends Canvasp r i v a t e P r o p e r t y C h a n g e S u p p o r t c h a n g e s = n e w PropertyChangeSupport(this);p r i v a t e Ve t o a b l e C h a n g e S u p p o r t Ve
15、 t o s = n e w VetoableChangeSupport(this); public void setPriceInCents(int newPriceInCents) throws PropertyVetoException int oldPriceInCents=ourPriceInCents;vetos.fireVetoableChange(priceInCents,ne w Integer(OldPriceInCents), new Integer(newPriceInCents);ourPriceInCents=newPriceInCents;change s.fir
16、e Prope rtyCha nge (pric e InCe nts, ne w Integer(oldPriceInCents),new Integer(newPriceInCents);二.屬性public void addVetoableChangeListener(VetoableChangeListener l) vetos.addVetoableChangeListener(l);public void removeVetoableChangeListener(VetoableChangeListener l)vetos.removeVetoableChangeListener(
17、l); 二.屬性/*與前述changes相同,可使用VetoableChangeSupport對(duì)象的實(shí)例Vetos中的方法,在特定條件下來(lái)阻止PriceInCents值的改變。*/ /*方法名中throws PropertyVetoException的作用是當(dāng)有其它Java對(duì)象否決PriceInCents的改變時(shí),要拋出例外。*/ /* 先保存原來(lái)的屬性值*/ /*若有其它對(duì)象否決priceInCents的改變,則程序拋出例外,不再繼續(xù)執(zhí)行下面的兩條語(yǔ)句,方法結(jié)束。若無(wú)其它對(duì)象否決priceInCents的改變,則在下面的代碼中把ourPriceIncents賦予新值,并點(diǎn)火屬性改變事件*/
18、/*與前述changes相同,也要為PriceInCents屬性預(yù)留接口,使其它對(duì)象可注冊(cè)入PriceInCents否決改變監(jiān)聽(tīng)者隊(duì)列中,或把該對(duì)象從中注銷 */三.事件 事件處理是JavaBean體系結(jié)構(gòu)的核心之一。Bean與其他軟件組件交流信息的主要方式是發(fā)送和接受事件。 事件為JavaBean組件提供了一種發(fā)送通知給其他組件的方法。當(dāng)事件源檢測(cè)到發(fā)生了某種事件時(shí),它將調(diào)用事件監(jiān)聽(tīng)器對(duì)象中的一個(gè)適當(dāng)?shù)氖录幚矸椒▉?lái)處理這個(gè)事件。這樣,不同的組件就可在構(gòu)造工具內(nèi)組合在一起,組件之間通過(guò)事件的傳遞進(jìn)行通信,構(gòu)成一個(gè)應(yīng)用。 三.事件 從概念上講,事件是一種在“事件源對(duì)象”和“事件監(jiān)聽(tīng)者對(duì)象“之間
19、,某種狀態(tài)發(fā)生變化的傳遞機(jī)制。在Java和JavaBean中則是定義了一個(gè)一般的、可擴(kuò)充的事件機(jī)制,這種機(jī)制能夠: 三.事件對(duì)事件類型和傳遞的模型的定義和擴(kuò)充提供一個(gè)公共框架,并適合于廣泛的應(yīng)用。 與Java語(yǔ)言和環(huán)境有較高的集成度。 事件能被描述環(huán)境捕獲和觸發(fā)。 能使其它構(gòu)造工具采取某種技術(shù)在設(shè)計(jì)時(shí)直接控制事件,以及事件源和事件監(jiān)聽(tīng)者之間的聯(lián)系。 事件機(jī)制本身不依賴于復(fù)雜的開(kāi)發(fā)工具。能夠發(fā)現(xiàn)指定的對(duì)象類可以生成的事件。 能夠發(fā)現(xiàn)指定的對(duì)象類可以觀察(監(jiān)聽(tīng))到的事件。 三.事件提供一個(gè)常規(guī)的注冊(cè)機(jī)制,允許動(dòng)態(tài)操縱事件源與事件監(jiān)聽(tīng)者之間的關(guān)系。 不需要其它的虛擬機(jī)和語(yǔ)言即可實(shí)現(xiàn)。 事件源與監(jiān)聽(tīng)者
20、之間可進(jìn)行高效的事件傳遞。 能完成JavaBean事件模型與相關(guān)的其它組件體系結(jié)構(gòu)事件模型的中立映射。 三.事件1.概述 2.事件狀態(tài)對(duì)象(Event State Object) 3.事件監(jiān)聽(tīng)者接口(EventListener Interface)與事件監(jiān)聽(tīng)者 4.事件源類 5.事件監(jiān)聽(tīng)者的注冊(cè)與注銷 1.概述 事件從事件源到監(jiān)聽(tīng)者的傳遞是通過(guò)對(duì)目標(biāo)監(jiān)聽(tīng)者對(duì)象的Java方法調(diào)用進(jìn)行的。 對(duì)每個(gè)明確的事件的發(fā)生,都相應(yīng)地定義一個(gè)明確的Java方法。這些方法都集中定義在事件監(jiān)聽(tīng)者(EventListener)接口中,這個(gè)接口繼承了java.util.EventListener。 實(shí)現(xiàn)了事件監(jiān)聽(tīng)者接
21、口中一些或全部方法的類就是事件監(jiān)聽(tīng)者。伴隨著事件的發(fā)生,相應(yīng)的狀態(tài)通常都封裝在事件狀態(tài)對(duì)象中,該對(duì)象必須繼承自java.util.EventObject。 2.事件狀態(tài)對(duì)象(Event State Object) 與事件發(fā)生有關(guān)的狀態(tài)信息一般都封裝在一個(gè)事件狀態(tài)對(duì)象中,這種對(duì)象是java.util.EventObject的子類。在事件狀態(tài)對(duì)象中一般都包含有與事件相關(guān)的一些信息。按設(shè)計(jì)習(xí)慣,這種事件狀態(tài)對(duì)象類的名應(yīng)以Event結(jié)尾。 2.事件狀態(tài)對(duì)象(Event State Object) public class MouseMovedExampleEvent extends java.util
22、.EventObject protected int x, y; /鼠標(biāo)移動(dòng)時(shí)的坐標(biāo)位置/創(chuàng)建一個(gè)鼠標(biāo)移動(dòng)事件MouseMovedExampleEvent MouseMovedExampleEvent(java.awt.Component source, Point location) super(source); x = location.x; y = location.y; /獲取鼠標(biāo)位置 public Point getLocation() return new Point(x, y); 3.事件監(jiān)聽(tīng)者接口與事件監(jiān)聽(tīng)者 由于Java事件模型是基于方法調(diào)用,因而需要一個(gè)定義并組織事件操縱方
23、法的方式。JavaBean中,事件操縱方法都被定義在繼承了java.util.EventListener類的EventListener接口中,按規(guī)定,EventListener接口的命名要以Listener結(jié)尾。任何一個(gè)類如果想操縱在EventListener接口中定義的方法都必須以實(shí)現(xiàn)這個(gè)接口方式進(jìn)行。這個(gè)類也就是事件監(jiān)聽(tīng)者。 3.事件監(jiān)聽(tīng)者接口與事件監(jiān)聽(tīng)者 例如: /先定義了一個(gè)鼠標(biāo)移動(dòng)事件對(duì)象public class MouseMovedExampleEvent extends java.util.EventObject / 在此類中包含了與鼠標(biāo)移動(dòng)事件有關(guān)的狀態(tài)信息 . /定義了鼠標(biāo)移
24、動(dòng)事件的監(jiān)聽(tīng)者接口 interface MouseMovedExampleListener extends java.util.EventListener /在這個(gè)接口中定義了鼠標(biāo)移動(dòng)事件監(jiān)聽(tīng)者所應(yīng)支持的方法void mouseMoved(MouseMovedExampleEvent mme); 3.事件監(jiān)聽(tīng)者接口與事件監(jiān)聽(tīng)者 在接口中只定義方法名,方法的參數(shù)和返回值類型。如:上面接口中的mouseMoved方法的具體實(shí)現(xiàn)是在下面的EventListenerObject類中定義的。 class EventListenerObject implements MouseMovedExampleLi
25、stener public void mouseMoved(MouseMovedExampleEvent mme) . EventListenerObject就可以作為MouseMovedExampleEvent事件的監(jiān)聽(tīng)者。 4.事件源類 事件源也是一個(gè)JavaBean對(duì)象。它會(huì)在一定的條件下,觸發(fā)一些事件,當(dāng)有對(duì)它觸發(fā)的事件感興趣的監(jiān)聽(tīng)者時(shí),它就通過(guò)方法調(diào)用的方式通知它(它們)。這些監(jiān)聽(tīng)者就能感知有事件發(fā)生了。它們可以進(jìn)行一些相關(guān)的處理。一個(gè)事件源對(duì)象可以觸發(fā)一個(gè)或多個(gè)事件, 每個(gè)事件又可以有一個(gè)或多個(gè)監(jiān)聽(tīng)者。 5.事件監(jiān)聽(tīng)者的注冊(cè)與注銷 為了各種可能的事件監(jiān)聽(tīng)者把自己注冊(cè)入合適的事件源中
26、,建立事件源與事件監(jiān)聽(tīng)者間的事件流,事件源必須為事件監(jiān)聽(tīng)者提供注冊(cè)和注銷的方法。事件監(jiān)聽(tīng)者的注冊(cè)和注銷要使用標(biāo)準(zhǔn)的設(shè)計(jì)格式: public void add( listener); public void remove( listener);9.9.6 6 在在JSPJSP中使用中使用JavaBeanJavaBean 1. 語(yǔ)法jsp:useBean id=beanInstanceName scope=page | request | session | application class=package.class | type=package.class | class=package.c
27、lass type=package.class | beanName=package.class | type=package.class / | other elements 2. 例子例子 3. 描述描述 用于定位或示例一個(gè)JavaBeans組件。首先會(huì)試圖定位一個(gè)Bean實(shí)例,如果這個(gè)Bean不存在,那么就會(huì)從一個(gè)class或模版中進(jìn)行示例。 為了定位或示例一個(gè)Bean,會(huì)進(jìn)行以下步聚,順序如下: 3. 描述描述通過(guò)給定名字和范圍試圖定位一個(gè)Bean。 對(duì)這個(gè)Bean對(duì)象引用變量以你指定的名字命名。 如果發(fā)現(xiàn)了這個(gè)Bean,將會(huì)在這個(gè)變量中儲(chǔ)存這個(gè)引用。如果你也指定了類型,那么這個(gè)Bea
28、n也設(shè)置為相應(yīng)的類型。 如果沒(méi)有發(fā)現(xiàn)這個(gè)Bean,將會(huì)從你指定的class中示例,并將此引用儲(chǔ)存到一個(gè)新的變量中去。如果這個(gè)class的名字代表的是一個(gè)模版,那么這個(gè)Bean被java.beans.Beans.instantiate示例。 如果已經(jīng)示例(不是定位)了Bean,同時(shí)和中有元素,那么將會(huì)執(zhí)行其中的代碼。 3. 描述描述 元素的主體通常包含有元素,用于設(shè)置Bean的屬性值。正如上面第五步所說(shuō)的,的主體僅僅只有在示例Bean時(shí)才會(huì)被執(zhí)行,如果這個(gè)Bean已經(jīng)存在,能夠定位它,那么主體中的內(nèi)容將不會(huì)起作用。 4. 屬性以及用法 id=beanInstanceName“ 在你所定義的范圍中
29、確認(rèn)Bean的變量,你能在后面的程序中使用此變量名來(lái)分辨不同的Bean 這個(gè)變量名對(duì)大小寫(xiě)敏感,必須符合你所使用的腳本語(yǔ)言的規(guī)定。如果這個(gè)Bean已經(jīng)在別的中創(chuàng)建,那么這個(gè)id的值必須與原來(lái)的那個(gè)id值一致. 4. 屬性以及用法 scope=page | request | session | application Bean存在的范圍以及id變量名的有效范圍。缺省值是page,以下是詳細(xì)說(shuō)明: page - 你能在包含元素的JSP文件以及此文件中的所有靜態(tài)包含文件中使用Bean,直到頁(yè)面執(zhí)行完畢向客戶端發(fā)回響應(yīng)或轉(zhuǎn)到另一個(gè)文件為止。 request - 你在任何執(zhí)行相同請(qǐng)求的Jsp文件中使用
30、Bean,直到頁(yè)面執(zhí)行完畢向客戶端發(fā)回響應(yīng)或轉(zhuǎn)到另一個(gè)文件為止。你能夠使用Request對(duì)象訪問(wèn)Bean,比如request.getAttribute(beanInstanceName) session - 從創(chuàng)建Bean開(kāi)始,你就能在任何使用相同session的Jsp文件中使用Bean.這個(gè)Bean存在于整個(gè)Session生存周期內(nèi),任何在分享此Session的Jsp文件都能使用同一Bean.注意在你創(chuàng)建Bean的Jsp文件中指令中必須指定session=true application - 從創(chuàng)建Bean開(kāi)始,你就能在任何使用相同application的Jsp文件中使用Bean.這個(gè)Bean存在于整個(gè)application生存周期內(nèi),任何在分享此application的Jsp文件都能使用同一Bean. 4. 屬性以及用法 class=package.class 使用new關(guān)鍵字以及class構(gòu)造器從一個(gè)class中示例一個(gè)bean.這個(gè)class不能是抽象的,必須
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版委托貸款合同(購(gòu)車貸款)3篇
- 2025版民間借貸合同文本四種借款人法律義務(wù)解讀4篇
- 商鋪售后返租合同風(fēng)險(xiǎn)評(píng)估與法律建議(2025年版)2篇
- 2025年度龍山區(qū)中醫(yī)院醫(yī)療廢物處理技術(shù)改造合同4篇
- 二零二五年度實(shí)木復(fù)合地板品牌代理銷售合同4篇
- 2025年物業(yè)管理責(zé)任服務(wù)協(xié)議書(shū)(含物業(yè)合同續(xù)簽)3篇
- 體育場(chǎng)館體育賽事現(xiàn)場(chǎng)安全保衛(wèi)措施與體系建設(shè)改進(jìn)考核試卷
- 體育用品行業(yè)創(chuàng)新商業(yè)模式探索考核試卷
- 2025年農(nóng)村地房產(chǎn)租賃土地租賃協(xié)議
- 2025年度木材加工與木工安裝服務(wù)承包合同4篇
- 土地買賣合同參考模板
- 新能源行業(yè)市場(chǎng)分析報(bào)告
- 2025年天津市政建設(shè)集團(tuán)招聘筆試參考題庫(kù)含答案解析
- 房地產(chǎn)運(yùn)營(yíng)管理:提升項(xiàng)目品質(zhì)
- 自愿斷絕父子關(guān)系協(xié)議書(shū)電子版
- 你劃我猜游戲【共159張課件】
- 專升本英語(yǔ)閱讀理解50篇
- 中餐烹飪技法大全
- 新型電力系統(tǒng)研究
- 滋補(bǔ)類用藥的培訓(xùn)
- 北師大版高三數(shù)學(xué)選修4-6初等數(shù)論初步全冊(cè)課件【完整版】
評(píng)論
0/150
提交評(píng)論