javabean的规范,java中bean为什么要get、set那么麻烦?不可以用一种机制省略吗?
javabean的规范,java中bean为什么要get、set那么麻烦?不可以用一种机制省略吗?详细介绍
本文目录一览: 编写JavaBean时注意哪几个方面
? 编写JavaBean时,必须满足一些要求:
1.JavaBean必须放在一个包中,即必须包含package
2. JavaBean必须声明成public的类,则文件名与类名也应一致
3.属性应该封装起来,即声明为private
对于属性的访问通过get、set方法实现,这些方法应为public的,并且一定要符合命名规范。
例如:若属性名为 userName ,
则get、set方法名应为 getUserName和setUserName
4使用
去调用JavaBean时,需要创建其对象,故JavaBean必须有一个无参的构造方法
5.JSP中使用JavaBean:
<jsp:usebean
id=”bean的名称” //bean:即由JavaBean类实例化出来的对象
class=”用包名结构表示的bean所属类的类名”
scope=”bean的使用范围” //4种之一:page、request、session、application
/>
sssssss
来做个任务
</jsp:usebean
什么是J2EE标准?
在java语言平台2.0基础上用于开发企业应用的标准
引言
J2EE(即Java 2 平台企业版)是由Sun公司发起多个业界厂商参加的共同推出的一项中间件技术。从CORBA、IDL到面向消息的系统,中间件技术已经走过了很长的一段路程,如今J2EE作为中间件技术史上的一块具有决定意义的里程碑,正受到业界越来越广泛的重视和采纳。
J2EE,一方面有着一套相当庞大的标准体系和数个不同版本,另一方面,由于市场上应用服务器品种多样,各家开发商使用的术语又不尽相同,因此,围绕着J2EE,常常有不少被人误解的地方。本文将深入探讨J2EE究竟是什么,它到底能做什么。
什么是J2EE?
在试图给J2EE 下一个明确的定义之前,我们首先要了解J2EE 并不简单地只是一门语言、一种工具或一套服务。
· J2EE——Java 2 平台企业版
简单地说,J2EE是一个标准中间件体系结构,旨在简化和规范多层分布式企业应用系统的开发和部署。J2EE方案的实施可显著地提高系统的可移植性、安全性、可伸缩性、负载平衡和可重用性。
J2EE技术出现之前,几家主要的中间件开发商的产品各自为阵,彼此之间缺乏兼容性,可移植性差,难以实现互操作,没有一个被普遍认可的行业标准。J2EE的出现标志着中间件技术在经历了多年的不断摸索和经验总结后,正逐步走向成熟。
J2EE的核心是一组规范和指南,定义了一个使用Java语言开发多层分布式企业应用系统的标准平台。开发人员在这些规范和指南的基础上开发企业级应用,同时由J2EE供应商确保不同的J2EE平台之间的兼容性。由于基于规范的各J2EE平台之间具有良好的兼容性, 因此J2EE应用系统可以部署在不同的应用服务器上,无需或只需进行少量的代码修改。
· J2EE视点
下面我们将从几个不同的侧面来考察J2EE,以期读者能对J2EE有个更全面清晰的印象。
(1)J2EE:多层、分布式中间件语法
采用多层分布式应用模型,J2EE将应用开发划分为多个不同的层,并在每一个层上定义组件。各个应用组件根据他们所在的层分布在同一个或不同的服务器上,共同组成基于组件的多层分布式系统。典型的J2EE四层结构包括客户层、表示逻辑层(Web层)、商业逻辑层和企业信息系统层。
有了J2EE,分布式系统的开发变得简单了,部署的速度也可以加快。J2EE组件的分布与服务器环境无关,所有的资源都可通过分布式目录进行访问。这意味着开发人员不再需要为组件和资源的分布问题耗费精力,从而可以有更多的时间专注于业务逻辑的实现,提高开发效率。
(2)J2EE:企业级应用系统开发平台
J2EE本身是一个标准,一个为企业分布式应用的开发提供的标准平台。而J2EE的实施,则具体表现为诸如BEA Web logic或IBM Web sphere之类的特定Web服务器产品。利用J2EE应用-编程模型开发的企业应用系统,可以部署在不同厂商生产的、但相互兼容的J2EE 应用服务器上。
目前,市场上基于J2EE的Web服务器品种繁多,性能特点各有千秋,每家厂商的产品都有精心设计的独到之处。但与产品个性无关的是,所有的J2EE应用服务器都为企业级应用系统的开发和部署提供了一个共同的基础。
(3)J2EE:电子化应用开发模型
J2EE应用很容易发布到Web、掌上电脑或移动电话等手持设备上。换言之,应用组件可以很轻松地实现电子化。J2EE的应用-编程模型保证组件在向不同类型的客户端移植过程中,商业逻辑和后端系统保持不变。
此外,J2EE平台的其他主要优点还有:自动负载平衡、可伸缩、容错和具有故障排除等功能。部署在J2EE环境中的组件将自动获得上述特性,而不必增加额外的代码开销。
J2EE所有这些特性对于需要构建全天候网络门户的企业来说显得尤为重要。
(4)J2EE:Web应用服务器上广泛采用的标准
可以说,J2EE是首个获得业界广泛认可和采纳的中间件标准。目前几乎所有的一流Web应用服务器,如BEA的Web logic、IBM的Web sphere、HP的应用服务器、Sun的iPlanet和Macromedia的Jrun等,都是基于J2EE的。迄今为止,还没有哪个其他标准能获得如此众多的中间件供应商的一致支持。
而且,有了J2EE,企业的应用开发对于某个特定的开发商或应用服务供应商的依赖性更小。应用组件只要符合J2EE规范,完全可以部署在不同的应用服务器上。为了确保不同厂商的J2EE应用服务器的兼容性和一致性,Sun公司发布了J2EE兼容性测试包。
· J2EE究竟是什么
至此,我们可以试着用一句话来概括J2EE,那就是:J2EE是一个中间件基础架构,有了它,开发者只需要集中精力编写代码来表达企业应用的商业逻辑和表示逻辑,至于其他系统问题,如内存管理,多线程,资源分布和垃圾收集等,都将由J2EE自动完成。
J2EE (Java 2 Platform, Enterprise
Edition)是一个为大企业主机级的计算类型而设计的Java平台。Sun微系统(与其工业伙伴一起,例如IBM)设计了J2EE,以此来简化在瘦客户级环境下的应用开发。由于创造了标准的可重用模块组件以及由于构建出能自动处理编程中多方面问题的等级结构,J2EE简化了应用程序的开发,也降低了对编程和对受训的程序员的要求。
J2EE包含了Java2平台标准版(J2SE)的许多组件:
Java开发包(JDK)被作为其核心语言包。
Write Once Run Anywhere(只需写一次便可以在任何环境中运行)技术被包含其中以保证其可移植性。
它支持公共对象请求代理体系结构(CORBA),这是Enterprise
JavaBeans(EJB)的前身,所以Java的对象可以和CORBA的对象在本地或是通过接口代理跨越网络实现通信。
Java数据库连接2.0(JDBC)被作为Java数据库的标准接口,它是开放数据库连接(ODBC)的Java等价物。
包含一个安全模块来保护本地的数据,或是网络应用的数据。
J2EE还包含了许多添加于J2SE之上的组件,如下:
对Enterprise
JavaBeans全面的支持。EJB是一种服务器技术,它用于企业环境中完成程序组件的传输。它支持可扩展标记语言(XML),并且增强了调度和安全特性。
Java Servlet API(应用编程接口)不需要图形用户界面(GUI),从而为开发者提高了一致性。
Java服务器网页(JSP)是微软的动态服务器网页(ASP)的Java等价物,它用于动态网络数据的访问和操作。
J2EE由四个元素组成:
J2EE应用编程模型是标准的编程模型,它用于简化多层瘦客户端应用程序的开发。
J2EE平台包含了必要的策略和API,例如:Java servlet和Java消息服务(JMS)。
J2EE兼容性测试组件保证了J2EE的产品是与平台标准兼容的。
J2EE参考实现解释了J2EE的能力,并提供了它的可操作定义
印象。JTS事务管理器为应用程序服务器,资源管理器,独立的应用以及同学资源管理器提供了事务服务。
12、JavaMail
JavaMail是用于存取邮件服务器的API,它提供了一套邮件服务器的抽象类,不仅支持SMTP服务器,也支持IMAP服务器。提供给开发者处理电子邮件相关的编程接口。它是Sun发布的用来处理email的API,它可以方便地执行一些常用的邮件传输。
13、JAF(JavaBean Activation FrameWork)
JAF是一个专用的数据处理框架,它用于封装数据,并为应用程序提供访问和操作数据的接口。JAF的主要作用在于让java应用程序知道如何对一个数据源进行查看、编辑和打印等操作。JavaMail利用JAF来处理MIME编码的邮件附件,MIME的字节流可以被转换成java对象,大多数应用都可以不需要直接使用JAF。
简单介绍一下j2ee的13个规范,以下来自于网络。
1、JDBC(java Database Connectivity):
JDBC API为访问不同的数据库提供了一种统一的途径,就像ODBC一样,JDBC对开发者屏蔽了一些细节问题,同时,JDBC对数据库的访问也具有平台无关性。
2、JNDI(Java Name and Directory Interface):
JNDI API 被用于执行名字和目录服务。它提供了一致的模型用来存取和操作企业级的资源如DNS和LDAP,本地文件系统,或应用服务器中的对象。
3、EJB(Enterprise JavaBean):
J2ee技术之所以赢得全体广泛重视的原因之一就是EJB,他们提供了一个框架开发和实施分布式商务逻辑,由此很显著简化了具有可伸缩性和高度复杂的企业级应用开发。EJB规范定义了EJB组件何时如何与他们的容器继续拧交互作用。容器负责提供公用的服务,例如目录服务、事务管理、安全性、资源缓冲池以及容错性。但是注意的是,EJB并不是J2EE的唯一途径。正是由于EJB的开放性,使得有的厂商能够以一种和EJB平行的方式来达到同样的目的。
4、RMI(RemoteMethod Invoke):remote(遥远的) invoke(调用):
正如其名字所表示的那样,RMI协议调用远程对象上方法。它使用了序列化方式在客户端和服务器端传递数据。RMI是一种被EJB使用的更底层的协议。
5、Java IDL(接口定义语言)/CORBA:公共对象请求代理结构(Common Object Request Breaker Architecture):
在java IDL的支持下,开发人员可以将Java和CORBA集成在一起。他们可以创建Java对象并使之可以在CORBA ORB中展开,或者他们还可以创建Java类并做为和其他ORB一起展开的CORBA对象客户。后一种方法提供了另外一种途径,通过它可以被用于你的新的应用和旧系统相集成。
6、JSP(Java Server Pages):
Jsp页面由html代码和嵌入其中的Java新代码所组成。服务器在页面被客户端所请求以后对这些java代码进行处理,然后将生成的html页面返回给客户端的浏览器。
7、Java Servlet:
servlet是一种小型的java程序,它扩展了web服务器的功能。作为一种服务器端的应用,当被请求时开始执行,这和CGI Perl脚本很相似。Servlet提供的功能大多和jsp类似,不过实现方式不同。JSP通过大多数的html代码中嵌入少量的java代码,而servlet全部由java写成并生成相应的html。
8、XML(Extensible Markup Language):
XML是一种可以用来定义其他标记语言的语言。它被用来在不同的商务过程中共享数据。XML的发展和Java是互相独立的,但是,它和java具有相同目标正是平台独立。通过java和xml的组合,我们可以得到一个完美的具有平台独立性的解决方案。
9、JMS(Java Message Service):
Ms是用于和面向消息的中间件相互通信的应用程序接口(API)。它既支持点对点的域,有支持发布/订阅类型的域,并且提供对下列类型的支持:经认可的消息传递,事务性消息传递,一致性消息和具有持久性的订阅者的支持。JMS还提供了另一种方式对您的应用与旧的后台系统相集成。
10、JTA(Java Transaction Architecture):
JTA定义了一种标准API,应用系统由此可以访问各种事务监控。
11、JTS(Java Transaction Service):
JTS是CORBA OTS事务监控的基本实现。JTS规定了事务管理器的实现方式。该事务管理器是在高层支持Java Transaction API(JTA)规范,并且在较底层实现OMG OTS specification 的java映像。JTS事务管理器为应用服务器、资源管理器、独立的应用以及通信资源管理器提供了事务服务。
12、JavaMail:
JavaMail是用于存取邮件服务的API,它提供了一套邮件服务器的抽象类。不仅支持SMTP服务器,也支持IMAP服务器。
13、JAF(JavaBeans Activation Framework):
JavaMail利用JAF来处理MIME编码的邮件附件。MIME的字节流可以被转换成java对象,或者转换自Java对象。大多数应用都可以不需要直接使用JAF。
以下哪个不是JavaBean编写规范 ( )
如果我们想在JSP页面中利用标签操作Java类(利用
,
和
标签),我们所写的Java类就应该遵循JavaBean规范。一个JavaBean是由其属性和方法组成的。
1.首先,JavaBean中的属性我们应该设置为private类型,这样子是为了防止外部对其直接的调用,提高对属性值的保护。并且JavaBean是封装一些处理某种业务逻辑的类,为了体现出它的封装性,对属性的取值以及赋值的操作我们应该是通过对应的方法获得的。
2.正因为属性值都设置成了private类型,所以getXXX()和setXXX()的方法我们都应该要设置为public(公共类型
标签获取JavaBean中的值,其内部是通过调用特定的属性的getXXX()方法获得的。)
3.
标签获取类的实例其内部都是通过实例化类的默认构造方法进行获取的,所以JavaBean需要一个无参的构造方法,当然我们也可以不写,因为当我们不写的时候,默认的还是无参的构造方法。并且我们也可以不止只写一个构造方法,还可以写多个,但是必须保证的是其中有一个无参的构造方法。
什么是JAVABean
广义:一切java类都是JavaBean(封装数据,封装业务)
狭义:封装数据的java类(set get)
一般说JavaBean指的是狭义上的java类(封装数据)
它不是一个标准,但是一个企业规范
规范:
(1)、实现implements Serializable
(2)、必须显示提供无参构造方法
(3)、提供私有属性,有GET SET方法
JavaBean是java类,属于某些特定的译码指导方针,并且扩展了适应性和范围,允许用户访问内部的属性和方法。通过这些,JavaBean类可以用于下列方法: 1. 在IDE中,JavaBean的功能允许应用开发者浏览其中的方法,即JavaBean是被编译的,并且无法利用原始的源文件。 2. 在 Remote Method Invocation(RMI) 的分布式风格中,这项功能听起来并不让人兴奋,但是在未来的包含企业版的JavaBean后,将改变这种情况。 3. 为了JavaBean的属性值和状态可以保存到磁盘上。
JavaBean就是Java类,这个类有如下特点:必须有一默认的构造方法,有私有成员变量,有Get和Set方法。
这个的范围包括的比较广了,比如像entity类,dao层也属于Javabean
编写javabean就是编写一个java的类,所以你只要会写类就能编写一个bean,这个类创建的一个对象称做一个bean。为了能让使用这个bean的应用程序构建工具(比如JSP引擎)知道这个bean的属性和方法,只需在类的方法命名上遵守以下规则: 1. 如果类的成员变量的名字是xxx,那么为了更改或获取成员变量的值,即更改或获取属性,在类中可以使用两个方法: getXxx(),用来获取属性xxx。 setXxx(),用来修改属性xxx.。 2. 对于boolean类型的成员变量,即布尔逻辑类型的属性,允许使用"is"代替上面的"get"和"set"。 3. 类中方法的访问属性都必须是public的。 4. 类中如果有构造方法,那么这个构造方法也是public的并且是无参数的。
在jsp中一个标准的javabean需要具备哪些条件
具体包含以下三个部分:
对象的属性,例如:ID,name等等;
对象的get方法;
对象的set方法。
三者的存在可以组成一个完整的javabean实例,缺一不可。
java中bean为什么要get、set那么麻烦?不可以用一种机制省略吗?
get,set是为了保持封装,为了数据操作的安全性与合法性,或者你现在听不懂什么意思。解决办法:
使用Eclipse,声明完属性后后
右键->Source->Generate Getters and Setters
能自动填充get/set,非常方便
首先它是一种编码习惯、这种习惯对封装有很好的诠释。
没错你的代码完全可以写成
public String str;pubilc int i;function() { obj.str = "str"; obj.i = 1;}如果你觉得get、set没有意义,完全可以省略掉的。
怕麻烦就用自动生成啊。ECLIPSE支持自动生成getter和setter方法。
JavaBean就像是一个容器,里面都是这样的方法。看着烦,用起来很方便的。你如果有用HIBERNATE的话就能体会到。
照你的意思,那干脆把所有变量都申明为public得了。
用GET/SET的话比较灵活,因为有些属性我们只需要SET,有些只需要GET,安全性比较好。
thinking in java 中是这样说的:
提供“访问式/变异式”(也被称为"get/set"函数),即以取值和设值。就OOP来说,这是最进步的方式,也是JavaBeans的根基所在。
目前,没有机制可以省略getter和setter。这是JavaBean规范决定的,必须遵循它。以下是规范中的一节:
持有值应该通过一组存取方法(getXxx和setXxx)来访问
对于您需要的每个特性,您应该有一个带有匹配公用getter 和setter 方法的专用实例变量。
只有遵循这个规范,别的程序才可以通过反射机制来调用你的JavaBean。如果你觉得写的烦,可以通过IDE的工具自动生成。
关于更详细的东西可以参见:http://java.sun.com/products/javabeans/
javaBean有什么特点?
已经是一种规范了吧。javabean就是描述一个对象,里面有这个对象的属性,这些属性有get\set方法,方便对外的修改这个对象,有toString方便输出对象信息(属性值)。使用了javabean我们更好了解清楚一个对象,而更好的使用它。你以后写多项目了,自然而然清楚的了解,对象按javabean规范来,代码可读性都会提高,也方便管理!
JavaBean有三个特性:
1、javaBean必须是一个public的类。
2、JavaBean有一个不带参数的构造函数,如果public类的构造函数包含参数的话,那这个类不能做为JavaBean。
3、JavaBean通过 getProperty获取属性,通过setProperty设置属性。
javaBean 就是一种写java 类的规则。起初是想在gui中用啦,后来在web上应用广泛。getter setter啊啥的。。
1,必须是public类
2,必须有无参构造方法
3,通过setproperty,getproperty设置和获取属性
有setXXX()和getXXX()方法,可重用
JavaBean是一种组件,本质上就是一个Java类,只不过要遵循一些规范编写
一个标准的JavaBean组件具有以下几个特性:
(1)它是一个public类
(2)它有一个无参的构造器,或默认构造器
(3)它提供了setXXX()与getXXX()方法,来让外部程序设置和获取JavaBean的属性
(4)它实现了Serializable或Externalizable接口,以支持序列化
符合上述条件的Java类,都可以称为JavaBean组件。
试说明什么是JavaBean
JavaBean是Java的可重用组件技术,实质是一种符合某些命名和设计规范的Java类
JSP通过JavaBean执行负责计算任务、封装事务逻辑以及封装数据等等
使用JavaBean的好处:
可以使得JSP页面变得清晰;
节省软件开发时间(可以直接使用已经测试和可信的已有组件,避免了重复开发);
降低系统维护的难度
为JSP应用带来了更多的可伸缩性,使系统变得健壮和灵活
JavaBeans通常遵循一定的编写规范
JavaBean是一个public类
一定使用了package语句进行打包
有一个无参数的构造方法
属性一般是私有的,以保证数据的完整性和封装性
对属性值的获取有相应的getXxx()方法,并且此方法是公有的,若要获取属性为boolean类型则可以使用isXxx()方法
对属性值的设置有相应的setXxx()方法,并且此方法也是公有的
JavaBean 是一种JAVA语言写成的可重用组件。为写成JavaBean,类必须是具体的和公共的,并且具有无参数的构造器。JavaBean 通过提供符合一致性设计模式的公共方法将内部域暴露成员属性。众所周知,属性名称符合这种模式,其他Java 类可以通过自身机制发现和操作这些JavaBean 属性。
javabean 简单来说是一个数据表述的载体,一般来说一个常规的javabean基本包涵如下三个部分:
1:属性
2:getter方法、setter方法
3:构造方法、序列化(Serializable )、比较(Comparable)、输出(toString)等相关的方法的重写。
刚接触javabean可以先忽略第三条,上面你写的就是一个最普通的javabean,包涵1、2两部分内容。
通常属性都定义为私有,防止外部的直接访问,而是对外提供public的getter和setter方法来控制外部访问私有属性的过程、虽然大多数的getter和setter方法只有一条代码,与直接把属性设置为public看上去差不多,但是这是一个好的编程习惯。我们可以在需要的时候在getter或setter方法中增加判断代码来控制外部对于私有属性的访问权限。甚至只读的属性可以删除setter方法来保证内容不被外部更改。
希望对LZ有帮助!
JavaBeans和JavaBean是一个概念吗
是
同一个东西,大部分情况下都说JavaBean 但是有时候有些人会写成JavaBeans
一、什么是JavaBeans
JavaBeans事实上有三层含义。首先,JavaBeans是一种规范,一种在Java(包括JSP)中使用可重复使用的Java组件的技术规范。其次,JavaBeans是一个Java的类,一般来说,这样的Java类将对应于一个独立的.java文件,在绝大多数情况下,这应该是一个public类型的类。最后,当JavaBeans这样的一个Java类在我们的具体的Java程序中被示例之后,我们有时也会将这样的一个JavaBeans的实例称之为JavaBeans。
二、你可以不使用JavaBeans
从原理上来说,使用JavaBeans不过是使用一种特定的规范在Java程序中引入特定的类。你完全可以不使用JavaBeans而直接在Java程序中对这样的Java类进行说明并进行示例。当然,这无疑会降低你的程序的可读性,而且你将牺牲组件的可重复使用的特性。但是,对于一个简单的应用中的简单程序。你完全可以不必拘泥于使用JavaBeans。即便是对于JSP,你也可以做同样的选择,我们知道,在“”引起的程序段中,我们可以使用任何的纯Java语句,包括对一个新的对象的定义和示例。
三、在绝大多数情况下,使用JavaBeans是一个明智的选择
正如我们前面提到的,使用JavaBeans你可以充分利用组件的可重复使用的特性并增加你的程序的可读性。当你的应用日趋庞大时,你会发现,遵守这样的规范所带来的在开发和维护中的便利,相对于你所受到的约束,你完全值得做这样的交换。
四、JSP中的JavaBeans类是否必须严格遵守某些约定
在很多的JSP参考资料中都提到JavaBeans需要遵守JavaBeans规定,也就是JavaBeans API。但是,事实上在程序设计时,情况并没有这么复杂。你完全可以根据你自己的需要来定制你的JavaBeans。在这里,我们只要求JavaBeans是一个Java类,并不需要遵守其他规范。当然,对于这样的一个JavaBeans,你应该自己有一个清楚的认识。因为它可能并没有我们通常意义上所理解的JavaBeans的一些特性,对于某种极端的情况,你可能只能使用这样的语句来引入JavaBeans,然后来通过yourId这个JavaBeans的实例来处理并调用你的JavaBeans中的属性和方法。
五、JSP中JavaBeans的实质
我们注意到,一个引入JavaBeans的语句,其结构应该是,在这当中,我们必须对三个方面的内容进行定义。首先是一个id,这将对应于一个类的实例,如果这个实例已经存在,将直接引用这个实例;如果这个实例尚未存在,将通过我们在class中的定义从这个class中进行示例。这也就是我们要定义的第二个内容。最后,我们还实该在scope中定义id这个实例存在的范围,事实上这定义了这个实例所绑定的区域及其有效范围。
1、page:这个JavaBeans将存在于该JSP文件以及此文件中的所有静态包含文件中,直到页面执行完毕为止。这将基本等价于JSP中这样的Java语句。
2、request:这个JavaBeans将作为一个对象绑定于该页面的request中。简单地说该JavaBeans在该页面发出的请求中有效,这将基本等价于JSP中这样的Java语句。
3、session:这个JavaBeans将作为一个对象绑定于session中。简单地说该JavaBeans在本地有效,这将基本等价于JSP中这样的Java语句。
4、application:这个JavaBeans将作为一个对象绑定于application中。简单地说该JavaBeans在本应用中有效,这将基本等价于JSP中这样的Java语句。
JavaBean 是一种JAVA语言写成的可重用组件。为写成JavaBean,类必须是具体的和公共的,并且具有无参数的构造器。JavaBean 通过提供符合一致性设计模式的公共方法将内部域暴露称为属性。众所周知,属性名称符合这种模式,其他Java 类可以通过自省机制发现和操作这些JavaBean 属性。
用户可以使用JavaBean将功能、处理、值、数据库访问和其他任何可以用java代码创造的对象进行打包,并且其他的开发者可以通过内部的JSP页面、Servlet、其他JavaBean、applet程序或者应用来使用这些对象。用户可以认为JavaBean提供了一种随时随地的复制和粘贴的功能,而不用关心任何改变。
JavaBean是java类,属于某些特定的译码指导方针,并且扩展了适应性和范围,允许用户访问内部的属性和方法。通过这些,JavaBean类可以用于下列方法:
1. 在IDE中,JavaBean的功能允许应用开发者浏览其中的方法,即使JavaBean是被编译的,并且无法利用原始的源文件。
2. 在 Remote Method Invocation(RMI) 的分布式风格中,这项功能听起来并不让人兴奋,但是在未来的包含企业版的JavaBean后,将改变这种情况。
3. 为了JavaBean的属性值和状态可以保存到磁盘上。
这里说的有些简单,如果想了解更多的东西,可以查阅一些资料。
JavaBean设计注意事项
实际应用中,在表现对象或者处理前扩展JavaBean的设计非常有用。通常认为如果提供信息,web开发者将在功能上满足拥护对JavaBean的需求。例如: HTML中显示敏感的数据时,用户可以屏蔽的条目,如密码、电话号码等。
良好规划设计的JavaBean是值得信赖的。
Java 中的 null 不同于 SQL 中的 null
看这样一道测试程序:
public class NullTest
{
public static void main(String[] args)
{
int I = 0;
// int I = null; // not a valid initialization
String str = null;
String strZeroOutValue = “”;
StringBuffer sb = new StringBuffer(“Null test: String initialized as null = “);
sb.append(str);
sb.append(“\n String representing a Zero Out Value:”);
sb.append(strZeroOutValue);
System.out.println(sb.toString());
}
}
这个程序将产生下面的结果:
Null test: String initialized as null = null
String representing a Zero Out Value:
在JavaBean中, 我们将 I 变量声明为一个 int, 我们必须处理与该变量相关的值,因为I 默认的没有值,int 类型无法初始化为 null, 如果int 值没有进行明确的初始化,编译器将提示错误。
执行 NullTest 程序,将验证在文本中空字符串是空值的替代,用于显示 SQL 的插入和更新。如果我们需要删除一些信息,通过删除表单区域的文本,需要将数据库发送长度为0的字符串。
尽管大多数数据库将空字符串作为空值进行操作,如果我们使用的数据库不支持处理空字符串的话,我们必须写入附加的java代码,来创建自己的SQL插入声明。
例如:
if(test.length==0)
{
sb.append(“null”);
}
else
{
sb.append(test);
}
JavaBean 的范围:
JavaBean 的范围。 Scope 是一个具有生命时间的变量。JavaBean的范围在
标志中右边进行表示。将产生一个JavaBean的快捷参考。
说明:jsp服务器引擎将剥离
<jsp。。。。标记。并且在最终用户的浏览器上无法显示实际代码。
存在下面四种范围: 页面、 请求、 对话、 应用。
对话范围:
对话范围的JavaBean 主要应用与跨多个页面和时间段: 例如填充 用户信息。 添加信息并且接受回馈,保存用户最近执行页面的轨迹。对话范围JavaBean保留一些和用户对话 ID 相关的信息。这些信息来自临时的对话cookie,并在当用户关闭浏览器时,这个cookie将从客户端和服务器删除。
页面/请求范围:
页面和请求范围的JavaBean有时类似表单 的bean , 这是因为 他们大豆用与处理表单。表单需要很长的时间来处理用户的输入,通常情况下用于页面接受HTTP/POST或者GET请求。另外页面和请求范围的bean可以用于减少大型站点服务器上的负载,如果使用对话bean,耽搁的处理就可能会消耗掉很多资源。
应用:
应用范围通常应用于服务器的部件,例如 JDBC 连接池、应用监视、拥护计数和其他参与用户行为的类。
在Bean中限制HTML的产生:
理论上,JavaBean 将不会产生任何HTML,因为这是jsp层负责的工作;然而,为了动态消息提供一些预先准备的格式是非常有用的。产生的HTML将被标注的 JavaBean方法返回。
这里有一些非常重要的事情:
1. 不要试图在JavaBean返回的HTML中放置任何字体尺寸。
并不是所有的浏览器都相同。很多浏览器无法处理完整的字体尺寸。
2. 不要试图在JavaBean返回的HTML中放置任何脚本或者DHTML。
向页面直接输出脚本或者DHTML相当于自我毁灭,因为某些浏览器版本在处理不正确的脚本时会崩溃(非常少但是有)。如果用户的JavaBean在运行时是动态的推出复杂的HTML语言,用户将陷入调试的噩梦。另外,复杂的HTML将限制JavaBean的寿命和灵活性。
3. 不要提供任何的选择。
如果用户使用不同的系统浏览页面,可以提供一种可以替换的方法。
按着Sun公司的定义,JavaBean是一个可重复使用的软件组件。实际上JavaBean是一种Java类,通过封装属性和方法成为具有某种功能或者处理某个业务的对象,简称bean。由于javabean是基于java语言的,因此javabean不依赖平台,具有以下特点:
1. 可以实现代码的重复利用
2. 易编写、易维护、易使用
3. 可以在任何安装了Java运行环境的平台上的使用,而不需要重新编译。
编写javabean就是编写一个java的类,所以你只要会写类就能编写一个bean,这个类创建的一个对象称做一个bean。为了能让使用这个bean的应用程序构建工具(比如JSP引擎)知道这个bean的属性和方法,只需在类的方法命名上遵守以下规则:
1. 如果类的成员变量的名字是xxx,那么为了更改或获取成员变量的值,即更改或获取属性,在类中可以使用两个方法:
getXxx(),用来获取属性xxx。
setXxx(),用来修改属性xxx.。
2. 对于boolean类型的成员变量,即布尔逻辑类型的属性,允许使用"is"代替上面的"get"和"set"。
3. 类中方法的访问属性都必须是public的。
4. 类中如果有构造方法,那么这个构造方法也是public的并且是无参数的。
</jsp。。。。标记。并且在最终用户的浏览器上无法显示实际代码。