丁勇 Email:18442056@QQ.com
组件技术概述 现在软件开发都已经转向了基于组件的开发, 目前具备代表性的组件技术有微软的 COM COM+, 有 Sun 的 Bean 和 EJB(Enterprise Bean), 另外还有 CORBA(Common Object Request Broker Architecture, 公 共对象请求代理结构 )
Bean Bean 规范将 软件组件 的概念引入到 编程的领域 组件是自包含的 可重用的软件单元 ; 而 Bean 组件, 则可以使用可视的应用程序开发工具, 可视地将它们编写到 程序中 Bean 规范为 开发人员提供了一种 组件化 其 类的方法 Bean 分成可视组件和非可视组件 在 JSP 中主要使用非可视组件, 对于非可视组件, 不必去设计它的外观, 主要关心它的属性和方法
Bean 简介 Bean 是一种软件组件模型 它与其它软件对象相互作用, 决定如何建立和重用软件组件 这些可重用软件组件被称之为 Bean Bean 使用现有的 Bean 帮助开发新的计划, 进而, 建立它们之间的关系 在 Sun 公司的 Bean 规范的定义中,Bean 的正式说法是 : Bean 是一个基于 Sun 公司的 Bean 规范的 可在编程工具中被可视化处理的可复用的软件组件 Bean 是基于 Sun 公司的 Bean 规范的, 可在编程工具中被可视化处理的可复用的软件组件 因此 Bean 具有 4 个基本特性 :(1) 独立性 (2) 可重用性 (3) 在可视化开发工具中使用 (4) 状态可以保存
JAVABEAN 的模型 package 包名 ; public class 类名 { 构造方法 (); 属性 (Property); 方法 (Method); } 分析 : 编写 Beans 就是编写一个 的类, 这个类创建的一个对象称作一个 beans
bean 类中的方法 : 类的成员名字是 xxx, 获取和更改 xxx 形式如下 : getxxx(): 获取属性 xxx; setxxx(): 修改属性 xxx; boolean 型属性, 允许用 is 代替 get 和 set 类中方法的访问属性必须是 public 类中构造方法必须是 public, 并且是无参数 ;
Bean 属性值的设定方法 public void set 设定方法名称 ( 数据类型参数 ) { } this. 变量 = 参数 ; 例如 : public void setsql(string SQL) { } this.sql=sql;
Bean 属性值的读取方法 语法结构 : public void get 读取方法名称 () { return this. 变量 = 参数 ; } 例如 : public void getsql(string SQL) { return this.sql; } 注意 : 属性值的读取方法名称一般以 get 开头, 加上方法名称
JSP Bean 标记 与 Bean 交互的三个标记 <jsp:usebean> <jsp:getproperty> <jsp:setproperty>
<jsp:usebean> 创建一个 Bean 实例并指定它的名字和作用范围 JSP 语法格式如下 : <jsp:usebean id="bean name" scope="page request session application" class="class name" /> 或者 <jsp:usebean id="bean name" scope="page request session application" class="class name "> 初始化代码 </jsp:usebean>
属性以及用法 1.id="beanInstanceName" 在所定义的范围中确认 Bean 的变量, 使之能在后面的程序中使用此变量名来分辨不同的 Bean, 这个变量名对大小写敏感, 必须符合所使用的脚本语言的规定, 这个规定在 Language 规范已经写明 如果 Bean 已经在别的 <jsp:usebean> 标记中创建, 则当使用这个已经创建过 Bean 时,id 的值必须与原来的那个 id 值一致 ; 否则则意味着创建了同一个类的两个不同的对象
2. 属性以及用法 scope="page request session application" bean 存在的范围以及 id 变量名的有效范围 缺省值是 page, 以下是详细说明 : page - 能在包含 <jsp:usebean> 元素的 JSP 文件以及此文件中的所有静态包含文件中使用这个 Bean, 直到页面执行完毕向客户端发回响应或转到另一个文件为止
属性以及用法 request - 在任何执行相同请求的 Jsp 文件中使用这个 Bean, 直到页面执行完毕向客户端发回响应或转到另一个文件为止 能够使用 Request 对象访问这个 Bean, 比如 request.getattribute(beaninstancename) session - 从创建 Bean 开始, 就能在任何使用相同 session 的 jsp 文件中使用这个 Bean 这个 Bean 存在于整个 Session 生存周期内, 任何在分享此 Session 的 Jsp 文件都能使用同一 Bean 注意在创建这个 Bean 的 Jsp 文件中 <% @ page %> 指令中必须指定 session="true"
属性以及用法 application - 从创建 Bean 开始, 就能在任何使用相同 application 的 Jsp 文件中使用 Bean 这个 Bean 存在于整个 application 生存周期内, 任何在分享此 application 的 Jsp 文件都能使用同一 Bean.
属性以及用法 3.class="package.class" 使用 new 关键字以及 class 构造器从一个 class 中实例化一个 bean 这个 class 不能是抽象的, 必须有一个公用的, 没有参数的构造器 这个 package 的名字区别大小写
<jsp:getproperty> JSP 语法格式如下 : <jsp:getproperty name="beaninstancename" property="propertyname" /> 属性 : 1.name="beanInstanceName" bean 的名字, 由 <jsp:usebean> 指定 2.property="propertyName" 所指定的 Bean 的属性名
<jsp:getproperty> 例子 <html> // 声明引用的 bean <jsp:usebean id="calendar" scope="page" class="employee.calendar" /> <head> <title>test</title> </head> <body> Calendar of <jsp:getproperty name="calendar" property="username" /> </body> </html>
<jsp:setproperty> 设置 Bean 的属性值. JSP 语法格式如下 : <jsp:setproperty name="beaninstancename" { property= "*" property="propertyname" [ param="parametername" ] property="propertyname" value="{string <%= expression %>}" } />
属性 1.name="beanInstanceName" 表示已经在 <jsp:usebean> 中创建的 Bean 实例的名字 2.property="*" 储存用户在 jsp 输入的所有值, 用于匹配 Bean 中的属性
属性 3.property="propertyName" [ param="parametername" ] 用一个参数值来指定 Bean 中的一个属性值, 一般情况下是从 request 对象中获得的 其中 property 指定 Bean 的属性名,param 指定 request 中的参数名
属性 4.property="propertyName" value="{string <%= expression %>}" 使用指定的值来设定 Bean 属性 这个值可以是字符串, 也可以是表达式 如果这个字符串, 那么它就会被转换成 Bean 属性的类型 ( 转换方法见表 4.1) 如果是一个表达式, 那么它的类型就必须和将要设定的属性值的类型一致 如果参数值为空值, 那么对应的属性值也不会被设定 此外, 不能在同一个 <jsp:setproperty> 中同时使用 param 和 value 参数