什么是javabean及其用法

您所在的位置:网站首页 jsp中如何定义一个方法 什么是javabean及其用法

什么是javabean及其用法

2024-06-10 02:21:38| 来源: 网络整理| 查看: 265

一、什么是JavaBean

  JavaBean是一个遵循特定写法的Java类,它通常具有如下特点:

这个Java类必须具有一个无参的构造函数属性必须私有化。私有化的属性必须通过public类型的方法暴露给其它程序,并且方法的命名也必须遵守一定的命名规范。

javaBean范例:

 

1 package gacl.javabean.study; 2 3 /** 4 * @author gacl 5 * Person类就是一个最简单的JavaBean 6 */ 7 public class Person { 8 9 //------------------Person类封装的私有属性--------------------------------------- 10 // 姓名 String类型 11 private String name; 12 // 性别 String类型 13 private String sex; 14 // 年龄 int类型 15 private int age; 16 //是否已婚 boolean类型 17 private boolean married; 18 //--------------------------------------------------------- 19 20 //------------------Person类的无参数构造方法--------------------------------------- 21 /** 22 * 无参数构造方法 23 */ 24 public Person() { 25 26 } 27 //--------------------------------------------------------- 28 29 //------------------Person类对外提供的用于访问私有属性的public方法--------------------------------------- 30 public String getName() { 31 return name; 32 } 33 34 public void setName(String name) { 35 this.name = name; 36 } 37 38 public String getSex() { 39 return sex; 40 } 41 42 public void setSex(String sex) { 43 this.sex = sex; 44 } 45 46 public int getAge() { 47 return age; 48 } 49 50 public void setAge(int age) { 51 this.age = age; 52 } 53 54 public boolean isMarried() { 55 return married; 56 } 57 58 public void setMarried(boolean married) { 59 this.married = married; 60 } 61 //--------------------------------------------------------- 62 }

 

  JavaBean在J2EE开发中,通常用于封装数据,对于遵循以上写法的JavaBean组件,其它程序可以通过反射技术实例化JavaBean对象,并且通过反射那些遵守命名规范的方法,从而获知JavaBean的属性,进而调用其属性保存数据。

二、JavaBean的属性

  JavaBean的属性可以是任意类型,并且一个JavaBean可以有多个属性。每个属性通常都需要具有相应的setter、 getter方法,setter方法称为属性修改器,getter方法称为属性访问器。   属性修改器必须以小写的set前缀开始,后跟属性名,且属性名的第一个字母要改为大写,例如,name属性的修改器名称为setName,password属性的修改器名称为setPassword。    属性访问器通常以小写的get前缀开始,后跟属性名,且属性名的第一个字母也要改为大写,例如,name属性的访问器名称为getName,password属性的访问器名称为getPassword。    一个JavaBean的某个属性也可以只有set方法或get方法,这样的属性通常也称之为只写、只读属性。

三、在JSP中使用JavaBean

  JSP技术提供了三个关于JavaBean组件的动作元素,即JSP标签,它们分别为:

标签:用于在JSP页面中查找或实例化一个JavaBean组件。标签:用于在JSP页面中设置一个JavaBean组件的属性。标签:用于在JSP页面中获取一个JavaBean组件的属性。 3.1、标签

  标签用于在指定的域范围内查找指定名称的JavaBean对象,如果存在则直接返回该JavaBean对象的引用,如果不存在则实例化一个新的JavaBean对象并将它以指定的名称存储到指定的域范围中。    常用语法:        "id"属性用于指定JavaBean实例对象的引用名称和其存储在域范围中的名称。   "class"属性用于指定JavaBean的完整类名(即必须带有包名)。   "scope"属性用于指定JavaBean实例对象所存储的域范围,其取值只能是page、request、session和application等四个值中的一个,其默认值是page。

标签使用范例:

 

 

1 2 10 11 23 24 25 26 jsp:useBean标签使用范例 27 28 29 30 31 姓名: 32 性别: 33 年龄: 34 已婚: 35 36

 

  运行结果如下:

  

3.2、执行原理

   上面我们在index.jsp中使用实例化了一个gacl.javabean.study.Person类的对象,那么这个peson对象是怎么实例化出来的呢?index.jsp在执行的过程中首先会翻译成一个servlet,因此我们可以通过查看index.jsp页面生成的servlet的java代码来查看peson对象的实例化过程

  找到tomcat服务器下的"work\Catalina\localhost\项目名称\org\apache\jsp"这个目录,就可以看到将index.jsp页面翻译成servlet的java源码了,如下所示:

  

  使用文本编辑器打开index_jsp.java文件,在_jspService方法中可以看到person对象的创建过程,如下所示:

 

1 gacl.javabean.study.Person person = null; 2 synchronized (_jspx_page_context) { 3 person = (gacl.javabean.study.Person) _jspx_page_context.getAttribute("person", PageContext.PAGE_SCOPE); 4 if (person == null){ 5 person = new gacl.javabean.study.Person(); 6 _jspx_page_context.setAttribute("person", person, PageContext.PAGE_SCOPE); 7 } 8 }

  下面我们来分析一下上述生成的代码:

  首先是定义一个person对象,值是null

gacl.javabean.study.Person person = null;//定义一个空的person对象

  然后是使用pageContext对象的getAttribute方法获取存储在PageContext.PAGE_SCOPE域中的Person对象

person = (gacl.javabean.study.Person) _jspx_page_context.getAttribute("person", PageContext.PAGE_SCOPE);

  如果在PageContext.PAGE_SCOPE域中的Person对象没有找到person对象,那么就创建一个新的person对象,然后使用pageContext对象的setAttribute方法将新创建的person存储在PageContext.PAGE_SCOPE域中

if (person == null){ person = new gacl.javabean.study.Person(); _jspx_page_context.setAttribute("person", person, PageContext.PAGE_SCOPE); }

  也就是说,在index.jsp中使用来实例化person对象的过程实际上是执行了上述的java代码来实例化Person对象。这就是标签的执行原理:"首先在指定的域范围内查找指定名称的JavaBean对象,如果存在则直接返回该JavaBean对象的引用,如果不存在则实例化一个新的JavaBean对象并将它以指定的名称存储到指定的域范围中。

3.3、带标签体的标签

语法:               Body        功能:     Body部分的内容只在标签创建JavaBean的实例对象时才执行。这种做法用得不多,了解一下即可

3.4、标签

  标签用于设置和访问JavaBean对象的属性。    语法格式一:     

  语法格式二:     

  语法格式三:     

  语法格式四:        name属性用于指定JavaBean对象的名称。    property属性用于指定JavaBean实例对象的属性名。   value属性用于指定JavaBean对象的某个属性的值,value的值可以是字符串,也可以是表达式。为字符串时,该值会自动转化为JavaBean属性相应的类型,如果value的值是一个表达式,那么该表达式的计算结果必须与所要设置的JavaBean属性的类型一致。     param属性用于将JavaBean实例对象的某个属性值设置为一个请求参数值,该属性值同样会自动转换成要设置的JavaBean属性的类型。

标签使用范例1:使用jsp:setProperty标签设置person对象的属性值

1 2 10 11 12 17 18 19 20 21 25 26 27 28 29 jsp:setProperty标签使用范例 30 31 32 33 34 姓名: 35 性别: 36 年龄: 37 已婚: 38 出生日期: 39 40

 

运行效果如下:

  

标签使用范例2:使用请求参数为bean的属性赋值

1 2 10 11 12 16 17 18 19 20 21 jsp:setProperty标签使用范例 22 23 24 25 26 姓名: 27 28

 

运行结果如下:

  

标签使用范例3:用所有的请求参数为bean的属性赋值

 

 

1 2 10 11 12 16 17 18 19 20 21 jsp:setProperty标签使用范例 22 23 24 25 26 姓名: 27 性别: 28 年龄: 29 30

 

 

运行结果如下所示:

  

3.5、标签

  标签用于读取JavaBean对象的属性,也就是调用JavaBean对象的getter方法,然后将读取的属性值转换成字符串后插入进输出的响应正文中。   语法:            name属性用于指定JavaBean实例对象的名称,其值应与标签的id属性值相同。      property属性用于指定JavaBean实例对象的属性名。   如果一个JavaBean实例对象的某个属性的值为null,那么,使用标签输出该属性的结果将是一个内容为“null”的字符串。

范例:使用jsp:getProperty获取bean对象的属性值

 

 

1 2 10 11 12 17 18 19 20 21 25 26 27 28 29 jsp:getProperty标签使用范例 30 31 32 33 34 姓名: 35 性别: 36 年龄: 37 已婚: 38 出生日期: 39 40

 

 

运行结果如下:

  

  关于JavaBean方面的内容基本上就这么多了,只需要掌握JavaBean的写法,以及掌握标签,标签,标签的使用!

 

转载自:https://www.cnblogs.com/zterry/p/6863388.html



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭