JavaBean学习笔记

xiaoxiao2021-02-28  89

JavaBean学习笔记

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

Bean的编写

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

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

getXXX()setXXX()

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

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

类中如果有构造方法,那么这个构造方法的访问权限也是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有四个取值。

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

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

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

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="参数名"/>
转载请注明原文地址: https://www.6miu.com/read-56004.html

最新回复(0)