Jsp中的JavaBean组件

    1)JavaBean是什么?

     JavaBean是遵循某些简单的约定而编写的Java类,JavaBean并没有扩展特殊的类,也不在特殊的包中,同时也没有使用特殊的接口。

     #  JavaBean类必须拥有一个零参数的(默认)构造函数

     通常我们都不会在JavaBean中定义带参数的构造函数,好像也用不到。所以我们一般都使用默认的构造参数,当然你可以显示的定义一个无参数的构造参数。

     #  JavaBean类不应该有公开的实例变量(字段)

     其实这个要求是在面向对象的设计中的一个重要的设计原则,当然如果你使用public的也是可以用的,但是很可能在使用中出现很多问题。

     #  持续性的值应该通过getXxx(有时isXxx方法,但是使用getXxx也可)和setXxx方法来访问

     通过相应的set和get方法我们就能设置和获取相应的参数的值,如果无法设置和获取相应的值,那JavaBean要来何用。

    2)JavaBean组件的优点

     #  不需要用到Java语法

     使用JavaBean可以很容易操作Java对象,而不需要使用很多Java语法的具体细节,促进了内容和表达式之间的分离。对于我们的开发非常有帮助。

     #  对象的共享更简单

     相比使用等同功能的显示Java代码,使用JavaBean构造时,对象在多个页面或请求见的共享要容易的多。

     #  请求参数与对象属性之间可以方便地对应起来

     JavaBean极大的简化了读取请求参数,对字符串进行适当的转换,并将结果放入到对象中的过程。

     3)如何在Jsp中操作一个JavaBean

     #  jsp:useBean

     <jsp:useBean   id="beanName"   class="package.class"  />    

     我们还可以提供scope属性。jsp:useBean 既可以构建新的JavaBean,也可以访问现存的JavaBean。

     #  jsp:getProperty

     <jsp:getProperty   property="PropertyName"   name="beanName"  />

     这个元素读取或输出JavaBean的属性值,即调用了getXxx方法的简单写法。

     #  jsp:setProperty

     <jsp:setProperty   property="PropertyName"   name="beanName"  value="PropertyValue"  />

     这个元素修改JavaBean的属性值,即调用了setXxx方法的简单写法。

     4)一个简单的JavaBean实例

    

     访问结果:

     

     ***在使用jsp:setProperty时,value中的值可以是一个表达式,比如value="<%= session.getAttribute("username") %>"***

     5)  共享JavaBean

     上文也提到了设置scope属性,通过设置scope属性,JavaBean的使用范围也不同。使用scope时,系统首先检查指定的位置是否存在指定名称的JavaBean,仅当系统找不到现有的JavaBean时,才会创建新的JavaBean。

      #  <jsp:useBean  ...  scope="page" />

      page也是默认值。page的作用域表示:在处理当前请求时,除了要将JavaBean对象绑定到局部变量外,还应该将他放在PageContext中。将对象存储在此处表示,servlet可以通过调用预定义变量pageContext的getAttribute方法来访问它。由于每个页面和每个请求都有不同的pageContext对象,所以scope=“page”(或省略)表示不共享JavaBean,也就是针对每一个请求都创建新的JavaBean。

      #  <jsp:useBean  ...  scope="request" />

      request表示:在处理当前请求时,除了要将JavaBean对象绑定到局部变量外,还应该将他放在HttpServletRequest对象中,从而可以通过getAttribute方法来访问它。在使用jsp:include,jsp:forward或者RequestDispatcher的include或forward方法时,两个Jsp页面或Jsp页面与servlet将会共享请求对象。

      #  <jsp:useBean  ...  scope="session" />

      session表示:在处理当前请求时,除了要将JavaBean对象绑定到局部变量外,还应该将他放在HttpSession对象中。可以通过getAttribute方法来获取存储在HttpSession中的对象。

      #  <jsp:useBean  ...  scope="application" />

      application表示:在处理当前请求时,除了要将JavaBean对象绑定到局部变量外,还应该将他放在ServletContext中。在ServletContext中将由整个web应用中的jsp和servlet所共享。可以通过getAttribute方法来获取存储在ServletContext中的对象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值