JAVABEAN是什么和总结JAVABEAN的两种使用方式标签:javabean2015-02-0700:147761人阅读评论(0)收藏举报分类:Java(9)原文:一、javabean是什么?Javabean就是一个类,这个类就定义一系列getName和setName方法。Sosimple!Javabean就是为了和jsp页面传数据化简交互过程而产生的。自己的理解:使用javabean和不用javabean的区别:一个javabean就是为jsp页面上的元素一一开辟一个空间,然后根据需要赋值、读值。而如果不用javabean,就直接使用HttpServlet的request对象:只在jsp页面间传递获取数据:Stringname=req.getParameter(“name”);显示数据:out.println(name);存数据入DB:在jsp中直接嵌入java代码,用insert语句存入。感觉就像当年自己毕设做的asp代码一样。.asp页面中一系列的req.getParameter代码和嵌入一大堆的sql语句,代码很乱,很难维护。而使用javabean之后,优势也就是java的优势:组件技术,代码重用,易于维护。(在jsp页面中数据的显示很清晰。)具体javabean是什么?有待查资料解决:1)软件组件就是指可以进行独立分离、易于重复使用的软件部分。JavaBean就是一种基于Java平台的软件组件思想。2)到底是个什么东西1.JavaBean与EJB(1)JavaBean与EJB规范在以下方面有共同的目标:通过标准的设计模式推广Java程序代码,提升开发过程和开发工具之间的重复运用性可携性.但是这两种规格的原始问题却是为了解决不同的问题.定义于JavaBean组件模型中的标准规范,被设计来产生可重复运用的组件,而这些组件通常被用于IDE开发工具,而且通常是可视化组件,当然并不一定是可视化组件.(2)EJB规范所定义的组件模弄,刚是用来开发服务端的Java程序,由于EJB可能执行在不同的服务器平台上,包括无图形的大型主机上,所以EJB无法使用类似AWT或SWING之类的图形化程序库.2.JavaBean与类库的区别:(1)并不是所有有用的模块都必须转化成Bean.Bean主要是能被用来可视化操作去完成一些效果.(2)类库是一个提供函数操作给编程者的一个有效操作,但是并不能从可视化操作中来获益.(3)举个例子来说:提供JDBC数据库访问的API作为一个类库比作为一个bean要好,因为JDBC的核心是用一个可编程的API,并不是能够直接展现于可视化操作.然而,写一个数库库访问Bean在JDBC的顶层还是有意义的.例如,你可以写一个能定制的"Select"bean以助于用户去组成一个查询语句,并且程序运行时用JDBC去运行这个查询语句,并显示结果集.3.在可视化编程中,可以看出,组件是一段程序代码,通过被存为class内,关键在程序开发工具如何发现组件的属性和事件.VB和Delphi都是通过某种机制来实现这点的,而Java则通过JavaBeans将可视化组件开发带进了一个更高的境界,因为一个Bean就是一个Class.针对以上的内容,JavaBean有如下的规则:(1)针对一个名为xxx的属性,你通常要写两个函数,getXxx()和setXxx().(2)你可以用get/set方式来处理boolean,可以用is来代替get.(3)Bean的一般函数不需要遵守上述的命名规则,但是需要为public.(4)对于事件,你可以使用Swing的监听器作法来处理.4.JavaBean的体系结构:JavaBean体系结构是第一个全面的基于组件的标准模型之一.在集成的IDE中使JavaBean在设计时可以操作.组件模型见如下图:结合所查资料得到自己的体会和总结:(以后有问题都google和baidu,唉这个问题去年上J2EE课的时候,问了很多同学,包括苏老师,他们都没有很好的回答出来。)1.javabean是一种软件组件,所谓组件也就是一个java类而已。就像一个机械零件一样,可以重复的用它来组装形成产品。但是并不是每个java类都是javabean组件。软件组件是有一定的概念和体系结构的。自己的理解是,javabean组件是定义了需要get和set方法等规则的组件,通过定义这些规则,可以实现发现组件属性和事件的机制。2.软件组件的作用:只需编写一回,各处都可执行。对于程序员来说,最好的一点就是JavaBean可以实现代码的重复利用,另外对于程序的易维护性等等也有很重大的意义。3.javabean的特点:1.执行java.io.Serializable接口2.提供无参数的构造器3.提供get和set方法访问它的属性.二、javabean的两种使用方式:(嵌入java代码方式和使用jsp标记符方式)【也就是当作普通的类来使用或者在jsp中页面处理时有特殊的标记符处理方式】以下是使用javabean的每个功能的两者不同方式比较:(用了javabean只是方便一点,并且可以实现组件重用而已。)a)jsp中使用javabean的类的两种方法:(这两行代码的作用是一样的)法一:jsp中使用jsp:useBean标记符访问javabean:jsp:useBeanid=testclass=test.TestBean/法二:jsp中嵌入java代码方式访问javabean:首行导入javabean:%@pageimport=com.javaBean.TestBean%下边就可以像在java语言中那样用了:%TestBeantestBean=newTestBean();%b)jsp页面之间传递和获取数据的两种方法:l获取数据:法一:使用属性标记符:jsp:getPropertyname=testproperty=message/法二:直接嵌入java代码:(更简单)%=testBean.getName()%l存数据:法一:使用属性标记符:设置单个元素值:jsp:setPropertyname=testproperty=namevalue=jcm/设置jsp页面中所有元素的值:jsp:setPropertyname=testproperty=*/注:这个方法特别方便,只需要在接收数据并负责显示的jsp页面使用jsp:useBean之后加上这一行代码,所有数据就自动赋值了。然后在接下来的jsp代码中就可以使用get方法显示出数据了。法二:直接嵌入java代码:%Stringname=req.getParameter(“name”);testBean.setName(name)Stringpwd=req.getParameter(“password”);testBean.setName(pwd)%注:通常javabean函数中除了get和set方法外,还有一个把数据存入DB中的方法(也就是和DB连接并实现insert语句)。问题:1.一个javabean当作一个普通的类来使用,(import类,通过new方法构造一个对象,然后通过对象调用方法),和通过jsp标记符jsp:useBean来使用有区别吗?它和普通的类有什么区别呢?javabean也可以通过普通类的使用方式来访问呀。上面总结的内容就是这样的呀。2.是不是只有通过标记符jsp:useBean来使用才能真正体检javabean组件的优势:自动赋值?如果不使用标记符jsp:useBean可以实现自动赋值吗?有待实验解决。解决:(终于明白过来了!)参考资料:关于javaBean原理性的两个问题作者:bdsc初次接触javaBean,遇到了两个原理性的问题,没有找到确定的资料得到答案,希望在这儿能得到大家的帮助。1、javaBean的class与普通java的class有什么区别?javaBean的类代码有没有明确的规定,比如一定要继承什么类?如没有那怎么说一个java的class是javaBean,或不是呢?2、javaBean是在客户端执行还是在服务器执行呢?2.1如果在客户端执行,那是不是在客户端一定要有jvm,并且要下载对应的javaBean的class文件?但我怎么没有在自己的系统盘中找不到相应javaBean的class文件呢?那applet也是在客户端运行,为什么要出现javaBean呢?2.2如果在服务器执行,那javaBean是在客户端生成用户界面而产生的,那服务器端执行的代码怎么在客户端生成用户界面呢?---------------------------------------------------------------1、对于javaBean于普通java的class类的分别并非很明确,主要是javabean通常在jsp页面上有特殊的引用方法。2、javabean是在服务器端执行的。javabean并不直接生成用户界面(那是applet做的事情),而通常只做数据的组织、处理工作。然后通过jsp页面来生成用户的界面。以上只是我个人的理解。我也希望与大家一起讨论。---------------------------------------------------------------javaBean是一种(符合要求的)java类*.jsp在服务器端编译运行,通过封装的socket(你看到的是outputStream/名字也许不正确一类的对象)向客户(webbrowser__ie/navigator)发送普通字符流(按http协议),这个字符流由浏览器接受,解释然后按一定的格式显示---------------------------------------------------------------1、javaBean的class与普通java的class有什么区别?javaBean的类代码有没有明确的规定,比如一定要继承什么类?如没有那怎么说一个java的class是javaBean,或不是呢?javaBean其实就是一个JAVA程序。可以在JSP里面调用。ENterpriseJavaBean是用于构建企业应用的EJB。必须在应用服务器上面部署。2、javaBean是在客户端执行还是在服务器执行呢?javaBean是在服务器执行,返回给客户端的只是HTML代码。如果要在客户端执行,可以用APPLET---------------------------------------------------------------sun很早提出的javabean的概念是解决可视的application的模块化提出来的,但由于java在客户端开发实在不怎么样,所以sun没有在这方面再进行,作为界面模块化开发的javabean实际上已经死了。(以上纯粹个人观点,欢迎批评)但是随着web应用的兴起jsp的出现,jsp需要这样的概念,功能/表现分开,将功能封装在一个模块中,以便实现最大化的代码复用,就又拾起这个javabean将它用在web/jsp开发上。你提到的那篇文章所说的是可视化的javabean用在applet里的情况,以后你可以在心理分清楚(因为也许没人这样看)别人说的是那种javabean。至于具体符合什么要求,说实话我不知道(因为我个人不赞成用javabean的)自己的总结:1.javaBean是一种(符合要求的)java类。javaBea