『壹』 什么是javabean规范csdn
javabean的规范:
(1)JavaBean 类必须是一个公共类,并将其访问属性设置为 public
(2)JavaBean 类必须有一个空的构造函数:类中必须有一个不带参数的公用构造器,此构造器也应该通过调用各个特性的设置方法来设置特性的缺省值。
(3)一个javaBean类不应有公共实例变量,类变量都为private
(4)持有值应该通过一组存取方法(getXxx 和 setXxx)来访问:对于每个特性,应该有一个带匹配公用 getter 和 setter 方法的专用实例变量。若是布尔值,可以用isXxx来代替getXxx。
(5)属性的第二个字母最好不要大写,像rCategory, hFilename之类,生成getter 和setter会有问题。
『贰』 Javabean四种属性的用法
1.page:JavaBean只能在当前页面抄中使用。在jsP页面执行完毕后,该JavaBean将会被进行垃圾回收.
2.request:JavaBean在相邻的两个页面中有效.
3.session:JavaBean在整个用户会话过程中都有效.
4.application:JavaBean在当前整个Web应用的范围内有效.
『叁』 javabean四种属性(javabean的特性)
试说明什么是JavaBeanjavabean简单来说是一个数据表述的载体,一般来说一个常规的javabean基本包涵庆镇或如下三个部分:
1:属性
2:getter方法、setter方法
3:构造方法、序列化(Serializable)、比较(Comparable)、输出(toString)等相关的方法的重写。
刚接触javabean可以先忽略第三条,上面你写的就是一个最普通的javabean,包涵1、旅源2两部分内容。
通常属性都定义为私有,防止外部的直接访问,而是对外提供public的getter和setter方法来控制外部访问私有属性的过程、虽然大多数的getter和setter方法只有一条代码,与直接把属性设置为public看上去差不多,但是这是一个好的编程习惯。我们誉伍可以在需要的时候在getter或setter方法中增加判断代码来控制外部对于私有属性的访问权限。甚至只读的属性可以删除setter方法来保证内容不被外部更改。
希望对LZ有帮助!
什么是javabean?有什么用?1、概述:
JavaBean是一种JAVA语言写成的可重用组件。为写成JavaBean,类必须是具体的和公共的,并且具有无参数的构造器。JavaBean通过提供符合一致性设计模式的公共方法将内部域暴露成员属性。众所周知,属性名称符合这种模式,其他Java类可以通过自身机制发现和操作这些JavaBean属性。换句话说,javabean就是一个java的类,只不过这个类你要按上面提到的一些规则来写,比如必须是公共的啊,无参构造啊等等,按这些规则写了之后,这个javabean可以在程序里被方便的重用,使开发效率提高。
2、介绍:
最初,JavaBean的目的是为了将可以重复使用的软件代码打包标准。特别是用于帮助厂家开发在综合开发环境(IDE)下使用的java软件部件。这些包括如Grid控件,用户可以将该部件拖放到开发环境中。从此,JavaBean就可以扩展为一个javaweb应用的标准部件,并且JavaBean部件框架已经扩展为企业版的Bean(EJB)。
JavaBean和ServerBean(通常称为EnterpriseJavaBean(EJB))有一些基本相同之处。它们都是用一组特性创建,以执行其特定任务的对象或组件。它们还有从当前所驻留服务器上的容器获得其它特性的能力。这使得bean的行为根据特定任务和所在环境的不同而有所不同。
3、JavaBean的任务:
(1)一个开发良好的软件组件应该是一次性地编写,而不需要再重新编写代码以增强或完善功能。
(2)JavaBean组件在任意地方运行是指组件可以在任何环境和键闹孝平台上使用,这可以满足各种交互式平台的需求。
(3)JavaBean组件在任意地方的重用说的是它能够在包括应用程序、其他组件、文档、Web站点和应用程序构造器工具的多种方案中再利用。
JavaBean是一种JAVA语言写成的可重用组件。为写成JavaBean,类必须是具体的和公共的,并且具有无参数的构造器。JavaBean通过提供符合一致性设计模式的公共方法将内部域暴露成员属性,set和get方法获取。众所周知,属性名称符合这稿稿种模式,其他Java类可以通过自省机制(反射机制)发现和操作这些JavaBean的属性。
用户可以使用JavaBean将功能、处理、值、数据库访问和其他任何可以用java代码创造的对象进行打包,并且其他的开发者可以通过内部的JSP页面、Servlet、其他JavaBean、弯改applet程序或者应用来使用这些对象。用户可以认为JavaBean提供了一种随时随地的复制和粘贴的功能,而不用关心任何改变。
JavaBean可分为两种:一种是有用户界面(UI,UserInterface)的JavaBean;还有一种是没有用户界面,主要负责处理事务(如数据运算,操纵数据库)的JavaBean。JSP通常访问的是后一种JavaBean。
Javabean中属性和字段的区别
1.Java中的属性,银此通常可以理解为竖搏运其属名性时根据get和set方法名得出的。
其规则是:去掉get或set后其剩余的字符串,
如果第二个字母是小写的,则把第一余梁个字母也变成小写
getAge----age
getCPU----CPU
2.Java中的字段,通常叫做“类成员”。
这两个概念是完全不同的。
3.属性只局限于类中方法的声明,并不与类中其他成员相关,属于javabean的范畴。
javaBean有什么特点?JavaBean是一种组件,本质上就是一个Java类,只不过要遵循一些颂察答规范编写
一个标准的JavaBean组件具有以下几个特性:
(1)它是一个public类
(2)它有一个无参的构造器,野慧或默认构造器
(3)它提供了setXXX()与getXXX()方法,来让外部程序设置和获取JavaBean的属性
(4)它实现了Serializable或Externalizable接口,以支持序没神列化
符合上述条件的Java类,都可以称为JavaBean组件。
什么是javabean?简述javabean的特点JavaBean是一种JAVA语言写成的可重用组件
JavaBean有三个特性:
1、javaBean必须是一个public的类
2、JavaBean有一个不带参数的构造函数,如果public类的构造函数包含参数的话,那这个类不能做为JavaBean
3、JavaBean通过getProperty获取属性,通过setProperty设置属性
声明JavaBean:
jsp:useBeanid="cart"scope="session"class="com.jacky.ShoppingCart"/jsp:useBean
使用JavaBean:
jsp:getPropertyname="cart"property="quantity"/
注意使用时汪兆梁的name属性要和声明时的id属困运性一致。猜雹
JSP中四种属性的解释先声明这是转的不是我自己写的:JSP由于其强大的生命力在web开发中有很广泛的应用,实际上在JSP开发中,JSP程序中只占用了很少的一部分,大部分是由JavaBean完成的,通过JavaBean可以封装业务逻辑,数据库处理等等,由于有了JavaBean才使得程序更为健壮,易于扩展中漏郑。所以,详细的了解JavaBean的基础,对于我们开发出高质量的JSP应用程序是很有帮助[一、JavaBean在JSP中的基本语法]JSP中JavaBean是通过标签jsp:useBean来声明实现的,基本语法如下:jsp:userBeanid="beanName"class="className"scope="page/request/session/application/jsp:userBean由于我们讨论的是生存周期,在上面语法中通过scope属性来实现的搜棚:scope="page/request/session/applicationscope的值代表JavaBean的生存周期,也就是JavaBean的实例id在JSP程序中存在的范围。下面看看具体的scope四个值的含义:page-JavaBean对象保存在pageContext对象中,有page范围JavaBean实例只能在当前创建这个JavaBean的JSP文件中进行操作,这个实例只有在请求返回给客户端后或者转移到另外的JSP页面后才会释放掉。page范围的JavaBean常用于进行一次性操作的JavaBean,这样的Bean用的最多,比如大部分表单提交,Bean的一些计算处理等都可以使用page范围的JavaBeanrequest-JavaBean对象保存在request对象中,有request范围的JavaBean实例可以在处理请求所有JSP页面中都存在,这个对象只有在请求全部处理完毕后才会被释放掉,request范围的JavaBean常用于共享同一次请求的JSP页面中,比如判断用户登录功能,如果用户名密码合法就可以forward到一个合法页面中,否则就forward到一个出错页面,当然转移后的页面仍然能够得到用户的输入。session-JavaBean对象是保存在session范围的JavaBean实例的生存周期是整个session,只有当session过期后才能释放掉,这样常用于共享同一session的JSP页面,比如购物车一般就是放在session中的或者登陆后的用户信息等也可以在session中,注意%@page标签中不要设置session=false,否则在这个JSP页面中session将不会起作用,幸好JSP默认session=true,所以可以不必管它了。application-JavaBean对象保存在application对象中,有application范围的JavaBean对象的生存周期是整个application。这就意味着这样的JavaBean的生存周期是整个应用程序,当webServer停掉才会消失掉。这样的常用于共享同一application的JSP程序中,比卖颂如程序中一些经常用到配置东西如数据库连接URL,全局的计数器或者是聊天室中人员信息等。[二、scope的具体应用]上面讲了这么多,大家应用对JavaBean的生存周期有个基本的概念了,在这里我们结合几个简单的例子来看看scope在JavaBean中应用,以便大家能对scope有更深的了解,用来演示的是一个简单的积分处理程序,初始化为o,每一次访问会将积分加上10,我们使用了一个JavaBean文件,用于数值计算处理的,然后在前台使用几个scope设置不同的JSP文件调用这个JavaBean。核心的JavaBean文件publicclassscope{//初始化成员变量,scope_count代表积分分值intscope_count=10;publicscope(){}//构造方法publicintTestNumber(){scope_count+=10;returnscope_count;}//设置scope_count的值publicvoidsetNumber(intber){scope_sount=number;}}page范围的演示下面是为了演示page范围的JSP文件page.jsp文件。page.jsp%@pagecontentType="text/html";charset=gb2312"%htmlheadtitlepage范围积分程序演示/title/head!--初始化JavaBean并生成一个scope的实例--jsp:useBeanid="jinqiao"scope="page"class="com.scope"/bodypage范围积分程序演示brcenter您当前的积分为%//调用scope中的TestNumber方法得到当前积分out.println(jinqiao.TestNumber());%/center/body/html好了,启动web服务器,然后运行这个程序,使用浏览器并点击刷新按钮,看屏幕的变化,你会发现结果总是积分为20,这就说明了TestNumber方法只被执行了一欠,因为jinqiao对象的生存范围是page的,所以只在这个页面有效,每一次调用这个JSP页面都会重新生成一个jinqiao对象,当然积分不会变化了。request范围的演示下面是为了演示request范围的JSP文件request.jsp。request.jsp%@pagecontentType="text/html";charset=gb2312"%htmlheadtitlerequest范围积分程序演示/title/head!--初始化JavaBean并生成一个scope的实例--jsp:useBeanid="jinqiao"scope="request"class="com.scope"/bodypage范围积分程序演示brcenter您当前的积分为%//调用scope中的TestNumber方法得到当前积分out.println(jinqiao.setNumber(18));%jsp:forwardpage=request.jsp//center/body/htmlrequest1.jsp%@pagecontentType="text/html";charset=gb2312"%htmlheadtitlepage范围积分程序演示/title/head!--初始化JavaBean并生成一个scope的实例--jsp:useBeanid="jinqiao"scope="request"class="com.scope"/bodyrequest范围积分程序演示brcenter您当前的积分为%//调用scope中的TestNumber方法得到当前积分out.println(jinqiao.TestNumber());%/center/body/html好了,启动web服务器,然后运行这个程序,使用浏览器并点击刷新按钮,看屏幕的变化,你会发现结果总是积分为28为什么会有这样一个结果呢,因为首先我们在request.jsp文件中调用了jinqiao对象setNumber方法设置积分值为18,然后我们将请求转移到request1.jsp页面,因为同一相应还没有处理完毕,所以在request1.jsp中得到的仍然是同一个jinqiao实例,然后通过jinqiao的TestNumber方法将jinqiao的积分18+10,所以就得到了28了。注意的是jsp:forward标签是用来将请求转移的两个页面中的Bean声明包括id名字,request范围等要一模一样才行,这样JSP程序才会认为你要调用的是同一个JavaBean实例session范围的演示下面是为了演示session范围的JSP文件session.jsp文件,session.jsp?%@pagecontentType="text/html";charset=gb2312"%htmlheadtitlesession范围积分程序演示/title/head!--初始化JavaBean并生成一个scope的实例--jsp:useBeanid="jinqiao"scope="session"class="com.scope"/bodysession范围积分程序演示brcenter您当前的积分为%//调用scope中的TestNumber方法得到当前积分out.println(jinqiao.TestNumber());%/center/body/html好了,启动web服务器,然后运行这个程序,使用浏览器并点击刷新按钮,看屏幕的变化,你会发现结果是变化的,开始时是:您当前的积分为20,然后就是30,40.。。,这就说明了TestNumber()方法被执行了多次,因为jinqiao对象生存范围是session的,所以在整个session有效,每一次刷新这个jsp页面都会调用同一个jinqiao对象,所以积分都是同一个了,另外,为了更方便的理解session,可以将上面的session.jsp文件完整的拷贝一份生成session1.jsp文件,在浏览器中执行session.jsp文件,看积分值的变化,然后还使用同一个浏览器,输入session1.jsp文件,你会发现session1.jsp和session.jsp文件的积分值是一模一样的。重新开一个浏览器,注意不用浏览器菜单功能,而是直接从桌面双击一个IE浏览器,而两个浏览器分别运行session.jsp,session1.jsp文件,刷新多次后,你会发现两个浏览器的积分值不一样了,为什么呢?很简单,因为重新打开一个浏览器就相当于重新开一个session。session不同,积分值当然也不同了。application范围的演示application.jsp?%@pagecontentType="text/html";charset=gb2312"%htmlheadtitleapplication范围积分程序演示/title/head!--初始化JavaBean并生成一个scope的实例--jsp:useBeanid="jinqiao"scope="application"class="com.scope"/bodysession范围积分程序演示brcenter您当前的积分为%//调用scope中的TestNumber方法得到当前积分out.println(jinqiao.TestNumber());%/center/body/html好了,启动web服务器,然后运行这个程序,使用浏览器并点击刷新按钮,看屏幕的变化,你会发现结果是变化的,和前面的session几乎一样,开始时,你当前的积分为20,然后就是30、40.。。,这就说明了TestNubmer()方法被执行了多次,但是它和session有什么不同呢?为了解决这个问题,可以将上面的application.jsp文件完整的拷贝一份生成application.jsp文件,重新开一个浏览器,注意不用浏览器的菜单功能,而是直接从桌面双击一个IE浏览器,两个浏览器分别运行application.jsp和application1.jsp文件中,刷新多次后,你会发现两个浏览器的积分值完全一样,这就是application的区别了,很简单因为重新打开一个浏览器只是重新开了一个session,application是针对于整个服务器应用程序而言的,应用程序没有关闭,jinqiao对象是全局的,所以积分值当然一样了,只有将web服务器重新启动后,才会重新生成一个jinqiao对象,积分值才会重新计算。[三、总结]本文重点阐述了JSP中的JavaBean的生命周期(scope)问题,到这里,通过前面的例子演示相信大家对于JavaBean的生成周期概念已经比较熟悉了,只要再经过一段时间的实际应用,相信大家对于JSP中使用JavaBean都得心应手。~