JavaBean学习笔记

JavaBean学习笔记

JavaBean可以实现代码复用,也是MVC模式中的重要成员之一。JavaBean是一种Java类,通过封装属性和方法成为具有某种功能或者处理某个业务的对象,简称Bean。

Bean的编写

为了能让使用这个bean的应用程序构建工具(例如JSP引擎)知道这个bean的属性和方法,只需在类的方法命名上遵守以下规则:

  1. 如果类的成员变量的名字是xxx,那么在类中必须提供两个方法:

    • getXXX()
    • setXXX()

    即方法的名字用get或set为前缀,后缀是将成员变量名字的首字母大写的字符序列。对于boolean类型的成员变量,允许使用is代替。

  2. 类中方法的访问权限都必须是public的

  3. 类中如果有构造方法,那么这个构造方法的访问权限也是public的,并且是无参数的。

实例:

package po;

public class News {

    public String getDescription() {
        return Description;
    }
    public void setDescription(String description) {
        Description = description;
    }
    public String getPicUrl() {
        return PicUrl;
    }
    public void setPicUrl(String picUrl) {
        PicUrl = picUrl;
    }
    public String getUrl() {
        return Url;
    }
    public void setUrl(String url) {
        Url = url;
    }   
    public String getTitle() {
        return Title;
    }
    public void setTitle(String title) {
        Title = title;
    }
    private String Title;
    private String Description;
    private String PicUrl;
    private String Url;

}

Bean的使用

在JSP页面中使用bean需要用到JSP动作标记:useBean,来加载使用bean,useBean动作标记的格式如下:

<jsp:useBean id="name" class="package.classname" scope="bean-valid"></jsp:useBean>

当JSP引擎上某个含有useBean动作标记的JSP页面被加载执行时,JSP引擎将首先在一个同步块中查找内置pageContent对象中是否含有名字id和作用域scope的对象。如果这个对象存在,JSP引擎就分配一个这样的对象给用户,这样,用户就在服务器端获得了一个作用域是scope、名字是id的bean。如果在pageContent对象中没有查找到指定的对象,就根据class指定的类创建一个对应id的bean,并添加到pageContent中,并指定该bean的作用域是scope,同时JSP引擎在服务器上分配给用户一个bean。

**特别说明:**JSP引擎的内置对象pageContent对象用来存储供JSP引擎使用的数据对象,即通过该内置对象向用户提供不同类型的数据对象。当含有useBean标记的JSP页面被执行后,bean就被存放在pageContent对象中,如果更改了创建bean的Java类文件后,pageContent对象的bean并不能被更新,这是因为任何JSP页面再次被访问执行时,总是先到pageContent中查找bean,而pageContent对象直到JSP引擎关闭才释放它存储的数据对象。因此如果修改了创建bean的字节码,必须重新启动JSP引擎。

bean的有效期限

scope有四个取值。

  1. page 当JSP引擎执行完这个页面时,JSP引擎取消分配给该用户的bean。

  2. request 用户在网站的访问期间可能请求过多个页面,如果这些页面含有scope取值是request的useBean标记,那么pageContent对象在每个页面分配给用户的bean也是互不相同的。JSP引擎对请求作出响应之后,取消分配给用户的bean。

  3. session 该bean取值表示有效期限是用户的会话期间,也就是说,如果用户在某个web服务目录多个页面中相互连接,每个页面都含有一个useBean标记,而且各个页面的useBean标记中id的值相同、scope的值都是session,那么该用户在这些页面得到的bean是相同的一个(占有相同的内存空间)。如果用户在某个页面更改了这个bean的属性,其他页面的这个bean的属性也会发生变化。当用户的session消失,JSP引擎取消分配的bean,即释放bean所占有的内存空间。

  4. application JSP引擎为web服务目录下所有的JSP页面分配一个共享的bean,不同用户的scope取值是application的bean也都是相同一个,也就是说,当多个用户同时访问一个JSP页面时,任何一个用户对自己bean的属性的改变都会影响到其他的用户。

    从上面的叙述可知道,有效期限最长的bean是scope取值为application的bean,最短的是page的bean**。**

获取和修改bean的属性

当JSP页面使用useBean动作标记创建一个bean之后,就可在Java程序片中让这个bean调用方法产生行为。

getProperty动作标记

​ 使用该标记可以获得bean的属性值,并将这个值以字符串的形式显示给用户。使用这个标记之前必须使用useBean的标记获取一个bean

<jsp:getProperty name="bean的id" property="bean的属性"/>

​ 相当于:<% = bean的id.getXxx() %>

setProperty动作标记

​ 使用该标记可以设置bean的属性值。

<jsp:setProperty name="bean的id" property="bean的属性" value="<% = expression%>"/>
或者
<jsp:setProperty name="bean的id" property="bean的属性" value=字符串/>

通过HTTP表单的参数的值来设置bean的响应属性的值

<jsp:setProperty name="bean的id" property="bean的属性值" param="参数名"/>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值