`
az7772010
  • 浏览: 203159 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

javabean是什么和总结javabean的两…

 
阅读更多

原文:http://www.blogjava.net/flysky19/articles/88180.html

<wbr></wbr>

javabean是什么和总结javabean的两种使用方式06-7-23

一、 javabean 是什么?

Javabean 就是一个类,这个类就定义一系列 get 和 set 方法。 So simple !

Javabean 就是为了和 jsp 页面传数据化简交互过程而产生的。

自己的理解:

使用 javabean 和不用 javabean 的区别:

一个 javabean 就是为 jsp 页面上的元素一一开辟一个空间,然后根据需要赋值、读值。而如果不用 javabean ,就直接使用 HttpServlet 的 request 对象:

只在 jsp 页面间传递获取数据:

String name=req.getParameter(“name”);

显示数据: out.println(name);

存数据入 DB :在 jsp 中直接嵌入 java 代码,用 insert 语句存入。

<wbr></wbr>

感觉就像当年自己毕设做的 asp 代码一样。 .asp 页面中一系列的 req.getParameter 代码和嵌入一大堆的 sql 语句,代码很乱,很难维护。

而使用 javabean 之后,优势也就是 java 的优势:组件技术,代码重用,易于维护。(在 jsp 页面中数据的显示很清晰。)

<wbr></wbr>

具体 javabean 是什么?有待查资料

解决:

1 ) http://www.itlearner.com/article/2004/551.shtml

软件组件就是指可以进行独立分离、易于重复使用的软件部分。 JavaBean 就是一种基于 Java 平台的软件组件思想。

2 ) http://www.chinaitpower.com/A200507/2005-07-27/170233.html

JavaBean到底是个什么东西

1. <wbr><wbr><wbr><wbr><font face="宋体">JavaBean与EJB<br> (1)JavaBean与EJB规范在以下方面有共同的目标:通过标准的设计模式推广Java程序代码,提升开发过程和开发工具之间的重复运用性可携性.但是这两种规格的原始问题却是为了解决不同的问题.<br> 定义于JavaBean组件模型中的标准规范,被设计来产生可重复运用的组件,而这些组件通常被用于IDE开发工具,而且通常是可视化组件,当然并不一定是可视化组件.<br> (2)EJB规范所定义的组件模弄,刚是用来开发服务端的Java程序,由于EJB可能执行在不同的服务器平台上,包括无图形的大型主机上,所以EJB无法使用类似AWT或SWING之类的图形化程序库.</font></wbr></wbr></wbr></wbr>

2. <wbr><wbr><wbr><wbr><font face="宋体">JavaBean与类库的区别:<br> (1)并不是所有有用的模块都必须转化成Bean.Bean主要是能被用来可视化操作去完成一些效果.<br> (2)类库是一个提供函数操作给编程者的一个有效操作,但是并不能从可视化操作中来获益.<br> (3)举个例子来说:提供JDBC数据库访问的API作为一个类库比作为一个bean要好,因为JDBC的核心是用一个可编程的API,并不是能够直接展现于可视化操作.然而,写一个数库库访问Bean在JDBC的顶层还是有意义的.例如,你可以写一个能定制的"Select"bean以助于用户去组成一个查询语句,并且程序运行时用JDBC去运行这个查询语句,并显示结果集.</font></wbr></wbr></wbr></wbr>

3. <wbr><wbr><wbr><wbr><font face="宋体">在可视化编程中,可以看出,组件是一段程序代码,通过被存为class内,关键在程序开发工具如何发现组件的<b>属性和事件</b>.VB和Delphi都是通过某种机制来实现这点的,而Java则通过JavaBeans将可视化组件开发带进了一个更高的境界,因为一个Bean就是一个Class.针对以上的内容,JavaBean有如下的规则:</font></wbr></wbr></wbr></wbr>

(1)针对一个名为xxx的属性,你通常要写两个函数,getXxx()和setXxx().
(2)你可以用get/set方式来处理boolean,可以用is来代替get.
(3)Bean的一般函数不需要遵守上述的命名规则,但是需要为public.
(4)对于事件,你可以使用Swing的监听器作法来处理.

4. <wbr><wbr><wbr><wbr><font face="宋体">JavaBean的体系结构</font> <font face="宋体">:</font><br><font face="宋体">JavaBean体系结构是第一个全面的基于组件的标准模型之一.在集成的IDE中使JavaBean在设计时可以操作.组件模型见如下图:</font></wbr></wbr></wbr></wbr>

结合所查资料得到自己的体会和总结:

(以后有问题都google和baidu,唉这个问题去年上J2EE课的时候,问了很多同学,包括苏老师,他们都没有很好的回答出来。)

1. <wbr><wbr><wbr></wbr></wbr></wbr> javabean是一种软件组件,所谓组件也就是一个java类而已。就像一个机械零件一样,可以重复的用它来组装形成产品。但是并不是每个java类都是javabean组件。软件组件是有一定的概念和体系结构的。自己的理解是,javabean组件是定义了需要get和set方法等规则的组件,通过定义这些规则,可以实现发现组件属性和事件的机制。

2. <wbr><wbr><wbr><wbr><font face="宋体">软件组件的作用:只需编写一回,各处都可执行。</font></wbr></wbr></wbr></wbr>

对于程序员来说,最好的一点就是 JavaBean 可以实现代码的重复利用,另外对于程序的易维护性等等也有很重大的意义。

3. <wbr><wbr><wbr><wbr><wbr><wbr><font face="宋体">javabean 的特点:</font></wbr></wbr></wbr></wbr></wbr></wbr>

1. 执行 java.io.Serializable 接口
   2. 提供无参数的构造器
   3. 提供 get 和 set 方法访问它的属性 .

<wbr></wbr>

二、 javabean 的两种使用方式:(嵌入 java 代码方式和使用 jsp 标记符方式)【也就是当作普通的类来使用者在 jsp 中 页面处理时有特殊的标记符处理方式】

以下是使用 javabean 的每个功能的两者不同方式比较:(用了 javabean 只是方便一点,并且可以实现组件重用而已。)

a ) jsp 中使用 javabean 的类的两种方法:(这两行代码的作用是一样的)

法一: jsp 中使用 标记符访问 javabean :

<wbr></wbr>

法二: jsp 中嵌入 java 代码方式访问 javabean :

首行导入 javabean :

<wbr></wbr>

<wbr></wbr>

<wbr></wbr>

<wbr></wbr>

<wbr></wbr>

---------------------------------------------------------------------------

JavaBean的详细及引用

1.JavaBean实际是具有统一接口格式的java类

2.JavaBean的组成:属性(Properties)、方法(Method)、事件(Events)

3.一个JavaBean的例子(该例子是用的Simple属性<属性在以后说>)

复制代码
//我遵循的习惯是类名大写,包名小写

package<wbr>com;</wbr>//意思是将<wbr>FirstBean这个类放道包com中,以便在外部引用。</wbr>

public<wbr></wbr>class<wbr>FirstBean<br><br> {<br><br><wbr><wbr><wbr></wbr></wbr></wbr></wbr>private<wbr>String<wbr>x;<br><br><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr>public<wbr>FirstBean()<br><wbr><wbr><wbr>{<br><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>//此处为构造函数
<wbr><wbr><wbr><wbr>x</wbr></wbr></wbr></wbr>="This<wbr>is<wbr>the<wbr>first<wbr>javabean</wbr></wbr></wbr></wbr>";<wbr><wbr><wbr><br><wbr><wbr><wbr>}<br><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>public<wbr></wbr>void<wbr>setX()<br><wbr><wbr><wbr>{<br><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>this.x=x;//this<wbr>指当前类中的x而不是参数x<wbr></wbr></wbr>
<wbr><wbr><wbr>}<br><br><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr>public<wbr>String<wbr>getX()<br><wbr><wbr><wbr>{<br><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>return<wbr>x;<br><wbr><wbr><wbr>}<br><br> }<br><br></wbr></wbr></wbr></wbr>
复制代码

<wbr></wbr>

4.JavaBean属性的介绍:

<wbr><wbr> (1)Simple属性 :伴随一对 get/set (函数)方法(C语言中称为函数,我也习惯成为函数),如果这么写,setString..则暗指该类中有一个string的的属性(注意:string定义时小写,在set中首字母要大写)</wbr></wbr>

<wbr><wbr><wbr>(2)Indexed属性<wbr>使用时可以获得一个数组的整个或者一个值。使用实例如下:</wbr></wbr></wbr></wbr>

<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

复制代码
public<wbr></wbr>class<wbr>B<br> {<br><wbr><wbr></wbr></wbr></wbr>private<wbr></wbr>int[]={1,2,3,4,5};
<wbr><wbr><br><wbr><wbr></wbr></wbr></wbr></wbr>
//设置整个数组
<wbr><wbr></wbr></wbr>public<wbr></wbr>void<wbr>setB(</wbr>int[]<wbr>i)<br><wbr><wbr>{<br><wbr><wbr><wbr><wbr>b</wbr></wbr></wbr></wbr></wbr></wbr></wbr>=i;
<wbr><wbr>}<br><wbr><wbr></wbr></wbr></wbr></wbr>
//设置单个元素的值
<wbr><wbr></wbr></wbr>public<wbr></wbr>void<wbr>setB(</wbr>int<wbr>a,<wbr></wbr></wbr>int<wbr>b)<br><wbr><wbr>{<br><wbr><wbr><wbr><wbr>b[a]</wbr></wbr></wbr></wbr></wbr></wbr></wbr>=b;
<wbr><wbr>}<br><br><wbr><wbr></wbr></wbr></wbr></wbr>
//取得整个数组中的值
<wbr><wbr></wbr></wbr>public<wbr></wbr>int[]<wbr>getB()<br><wbr><wbr>{<br><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>return<wbr>b;<br><wbr><wbr>}<br><wbr><wbr></wbr></wbr></wbr></wbr></wbr>//获取单个值与setB类似,略。
}
复制代码

<wbr></wbr>

4.还有Bound、与Constrained属性

<wbr></wbr>

<wbr></wbr>

JspBean在Jsp中的引用

<wbr><wbr> 1.用&lt;jsp:useBean&gt;标记:</wbr></wbr>

<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> &lt;jsp:useBean id="name" class="classname" scope="page|request|session|application"/&gt;</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> id:代表jsp页面中的实例对象 通过这个对象引用类中的成员,如,id="wq", wq.成员();</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> class: 代表JavaBean类,如: class="com.Test",引用com包中的Test类</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> scope:指明了javabean的生存时间</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr> 2.用&lt;jsp:setProperty&gt;标记:<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> 功能:将请求页面中的表单值赋值/或者自己想设置的值 给JavaBean中的属性赋值</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> &lt;jsp:setProperty name="beanName" last_syntax /&gt;</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr></wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><strong>1.name:表示 已经存在并且具有一定生存范围的JavaBean实例,例如上面的 wq。</strong></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>2.last_syntax:表示了四种不同的语法:<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> (1)property="*" (2)property="propertyName" (3)property="propertyName" param="parameterName" (4)property="propertyName" value="value"</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> property:是一个很重要的属性,它指定想要设定值的 JavaBean 中的成员名,不建议使用*。<wbr><br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> param:根据我的理解,他是请求页面的 表单中的 txt 属性名。</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr><wbr><br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>value:代表了直接赋值给 property的属性<wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

3.<jsp:getProperty>标签 与<jsp:setProperty>功能相反,用法一样:

<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> &lt;jsp:getProperty name="BeanName" property="想要获取属性值的那个属性的名字"&gt;</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr></wbr>

JavaBean的生命周期

<wbr><wbr> 1.page:当一个页面有jsp程序产生并传送到客户端时,属于page范围内的javabean也将清除,生命周期介绍。</wbr></wbr>

<wbr><wbr> 2.request: 它的生命周期与jsp程序的request对象同步。 由forward串联起来的jsp程序都可以共享 javabean,</wbr></wbr>

<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> 仅通过forward就可以把javabean对象传递给下一个jsp,一下是一个小例子:</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> &lt;jsp:forward page="abc.jsp"/&gt;<wbr><wbr> //转向abc.jsp页面<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> &lt;% String str=request.getParameter("strName")<wbr><wbr>%&gt; //jsp中对象的使用,获取上一个请求页面中名称为 strName的text中的值。</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

复制代码
注:如何向一个页面发送请求?<用表单>
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<form<wbr></wbr>name="随便取一个不与其他重复的名字"<wbr>method</wbr>="post"<wbr>action</wbr>="接受参数的页面"<wbr>target</wbr>="_self">
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<input<wbr></wbr>type="text"<wbr>name</wbr>="strName">;
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<input<wbr></wbr>type="submit"<wbr>name</wbr>="sub"<wbr>value</wbr>="提交">
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
</form><wbr><wbr></wbr></wbr>
复制代码

<wbr></wbr>

<wbr></wbr>

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics