第十讲 修改和获取Beans的属性教学目的 本讲继续讲述JSP中使用Javabeans 1 获取和修改beans的属性2 带包名的beans3 JSP与beans结合的简单例子学习资料

上传人:yulij****0329 文档编号:138595975 上传时间:2020-07-16 格式:PPT 页数:46 大小:279.50KB
返回 下载 相关 举报
第十讲 修改和获取Beans的属性教学目的 本讲继续讲述JSP中使用Javabeans 1 获取和修改beans的属性2 带包名的beans3 JSP与beans结合的简单例子学习资料_第1页
第1页 / 共46页
第十讲 修改和获取Beans的属性教学目的 本讲继续讲述JSP中使用Javabeans 1 获取和修改beans的属性2 带包名的beans3 JSP与beans结合的简单例子学习资料_第2页
第2页 / 共46页
第十讲 修改和获取Beans的属性教学目的 本讲继续讲述JSP中使用Javabeans 1 获取和修改beans的属性2 带包名的beans3 JSP与beans结合的简单例子学习资料_第3页
第3页 / 共46页
第十讲 修改和获取Beans的属性教学目的 本讲继续讲述JSP中使用Javabeans 1 获取和修改beans的属性2 带包名的beans3 JSP与beans结合的简单例子学习资料_第4页
第4页 / 共46页
第十讲 修改和获取Beans的属性教学目的 本讲继续讲述JSP中使用Javabeans 1 获取和修改beans的属性2 带包名的beans3 JSP与beans结合的简单例子学习资料_第5页
第5页 / 共46页
点击查看更多>>
资源描述

《第十讲 修改和获取Beans的属性教学目的 本讲继续讲述JSP中使用Javabeans 1 获取和修改beans的属性2 带包名的beans3 JSP与beans结合的简单例子学习资料》由会员分享,可在线阅读,更多相关《第十讲 修改和获取Beans的属性教学目的 本讲继续讲述JSP中使用Javabeans 1 获取和修改beans的属性2 带包名的beans3 JSP与beans结合的简单例子学习资料(46页珍藏版)》请在金锄头文库上搜索。

1、第十讲 修改和获取Beans的属性 教学目的 本讲继续讲述JSP中使用Javabeans 。 1 获取和修改beans的属性 2 带包名的beans 3 JSP与beans结合的简单例子,10.1 获取和修改beans的属性,当我们使用useBean动作标签创建一个beans后,在java程序片中这个beans就可以调用方法产生行为,比如修改属性,使用类的中的方法等,如前面的例子1、2、3所示。获取或修改beans的属性还可以使用动作标签getProperty、setProperty,下面讲述怎样使用JSP的动作标签去获取和修改beans的属性。,10.1.1 getProperty动作标签,

2、使用该标签可以获得beans的属性值,并将这个值用串的形式显示给客户。使用这个标签之前,必须使用useBean标签获取得到一个beans,其中,name取值是beans的名字,用来指定要获取哪个beans的属性的值;property取值是该beans的一个属性的名字。该指令的作用相当于在程序片中使用beans调用getXxx()方法。 现在,我们将Circle类文件给予改进,增加circleArea和circleLength两个属性。,Circle2.java:,getProperty动作标签: 或 ,import java.io.*; public class Circle2 double

3、radius=1; double circleArea=0; double circleLength=0; public double getRadius() return radius; public void setRadius(double newRadius) radius=newRadius; public double getCircleArea() circleArea=Math.PI*radius*radius; return circleArea; public double getCircleLength() circleLength=2.0*Math.PI*radius;

4、 return circleLength; ,例子1(效果如图10.1所示) beansGetproperty.jsp:, 圆的半径是: 圆的面积是: 圆的周长是: ,10.1.2 setProperty动作标签,使用该标签可以设置beans的属性值。使用这个标签之前,必须使用useBean标签得到一个可操作的beans。 setProperty动作标签可以通过3种方式设置beans属性的值。 (1)将benas属性的值设置为一个表达式的值或字符串。 这种方式不如后面的两种方式方便,但当涉及属性值是汉字时,使用这种方式更好一些。 benas属性的值设置为一个表达式的值: ” / benas属性

5、的值设置为一个字符串: 如果将表达式的值设置为beans属性的值,表达式值的类型必须和beans的属性的类型一致。如果将字符串设置为beans的属性的值,这个字符串会自动被转化为beans的属性的类型。,Java语言将字符串转化为其它数值类型的方法如下: 转化到int :Integer.parseInt(Sting s), 转化到long :Long.parseInt(Sting s), 转化到float :Float.parseInt(Sting s), 转化到double :Double.parseInt(Sting s), 这些方法都可能发生NumberFormatException异常

6、,例如,当试图将字符串:“ab23”转化为int型数据时就发生了NumberFormatException。 在下面的例子中,我们写了一个描述学生的beans,在一个JSP页面中获得一个这样的beans,其有效范围是page。在JSP页面中使用动作标签设置、获取该beans的属性。,创建beans的源文件 Student.java:,public class Student String name=null; long number; double height,weight; public String getName() return name; public void setName(S

7、tring newName) name=newName; public long getNumber() return number; public void setNumber(long newNumber) number=newNumber; ,续前页:,public double getHeight() return height; public void setHeight(double newHeight) height=newHeight; public double getWeight() return weight; public void setWeight(double n

8、ewWeight) weight=newWeight; ,例子2 student.jsp, 名字是: 学号是: / 身高是: 米 体重是: 公斤 ,(2)使用setProperty设置beans属性值的第2种方式是:通过HTTP表单的参数的值来设置beans的相应属性的值,要求表单参数名字必须与beans属性的名字相同,JSP引擎会自动将字符串转换为beans属性的类型。 该标签不用再具体指定beans属性的值将对应表单中哪个参数指定的值,系统会自动根据名字进行般配对应。 下面的例子3通过表单来指定beans的属性值。由于客户可能提交汉语的姓名,所以我们将Student.java文件中的get

9、Name方法做以下改进:,public String getName() try byte b=name.getBytes(ISO-8859-1); name=new String(b); return name; catch(Exception e) return name; ,例子3 student2.jsp, 输入学生的姓名: 输入学生的学号: 输入学生的身高: 输入学生的体重: ,续前页:,名字是: 学号是: 身高是: 米 体重是: 公斤 ,注:需要注意的是,只有提交了和该beans相对应的表单后,该指令标签才被执行。 注:使用这种方式设置和获取beans的值很方便,我们把汉字的处理放

10、在了beans中,但需要注意的是,如果使用第1种方式,不要在beans中处理汉字,而应当在JSP页面中处理。,(3)使用setProperty设置beans属性值的第3种方式是:通过request的参数的值来设置beans的相应属性的值,要求request参数名字必须与beans属性的名字相同,JSP引擎会自动将request获取的字符串数据类型转换为beans相应的属性的类型。 下面的例子4说明使用request参数设置beans的属性的值。,例子4 student3.jsp, 输入学生的姓名: 输入学生的学号: 输入学生的身高: ,续前页:,输入学生的体重: 名字是: 学号是: 身高是:

11、米 体重是: 公斤 ,10.2 带包名的beans,在写一个beans的java文件时,可以使用package语句给beans一个包名。包名可以是一个合法的标识符,也可以是若干个标识符加“.”分割而成,如: package gping; package tom.jiafei; 程序如果使用了包语句,例如 package tom.jiafei; 那么必须在classes目录下有如下的子目录,例如,在D:Tomcatjakarta-tomcat-4.0classes下再建立如下的目录结构。 tomjiafei 并将beans的字节码文件存在该目录中,如图10.2所示。,图10.2 带包名的bean

12、s的存放目录,假如有一个包名是tom.jiafei的类Primnumber,如果在JSP页面中使用这个beans,必须有如下的语句: 或 ,求素数的beans PrimNumber.java:,package tom.jiafei; public class PrimNumber int number; StringBuffer result; public PrimNumber() result=new StringBuffer(); public void setNumber(int n) number=n; int i,j; for( i=2;i=number;i+) /找出number

13、以内的素数。,续前页:,for(j=2;j=i) result.append(+i+); public int getNumber() return number; public StringBuffer getResult() return result; ,例子5 使用求素数beans的JSP页面 primnumber.jsp:, 输入一个正整数: 小于 这个数的全部素数是: ,10.3 JSP与beans结合的简单例子,10.3.1 三角形beans,Triangle.java:,public class Triangle double sideA,sideB,sideC; double

14、 area; boolean triangle; public void setSideA(double a) sideA=a; public double getSideA() return sideA; public void setSideB(double b) sideB=b; public double getSideB() return sideB; ,续前页:,public void setSideC(double c) sideC=c; public double getSideC() return sideC; public double getArea() double p

15、=(sideA+sideB+sideC)/2.0; area=Math.sqrt(p*(p-sideA)*(p-sideB)*(p-sideC); return area; public boolean isTriangle() if(sideAsideB+sideC ,使用三角形beans的JSP页面 triangle.jsp:, 输入三角形的边A: 输入三角形的边B: 输入三角形的边C: 你给出三角形的三边是: 边A是: 边B是:,续前页:, 边C是: 这三个边能构成一个三角形吗? 面积是: ,10.3.2 计数器beans,计数器beans是一个application范围的beans,所

16、有的客户共享这个beans,任何客户改变这个beans的属性值,都会对其它客户产生影响。计数器beans有一个记录访问次数的属性count。 Counter.java: public class Counter long count=0; public synchronized long getCount() count+; return count; ,count.jsp:, 您是第 位访问本站的人 ,10.3.3 猜数字beans,当客户访问getNumber.jsp页面时,随机获取一个1到100之间的整数,由客户去猜测这个数是多少。,GuessNumber.java:,public class GuessNumber int answer=0, /实际答案。 guessNumber=0, /客户猜测

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 教学课件 > 高中课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号