版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第7章 JavaBean在JSP中的应用,7.1 JavaBean简介 7.2 JavaBean的范围 7.3 JSP访问JavaBean的语法 7.4 在JSP中使用JavaBean 7.5小结 7.6习题,7.1 JavaBean简介,7.1.1什么是JavaBean 7.1.2编写JavaBean 7.1.3编译JavaBean,7.1.1什么是JavaBean,JavaBean 是一种Java语言写成的可重用组件。 为成为JavaBean,类必须是具体的和公共的,并且具有无参数的构造函数。,7.1.1什么是JavaBean,一个Web应用系统包括数据层、业务逻辑层和表示层。 一个基本的
2、JSP页面包含了HTML标记和Java程序段,将表示层和业务逻辑层混杂在一起,使得页面显得混乱,不好维护。 应用JavaBean可以将表示层和业务逻辑层分开,把业务处理过程交给JavaBean完成,再由JSP页面去调用JavaBean。JavaBean降低了JSP程序的复杂度,同时也增加了软件的可重用性。,7.1.2编写JavaBean,编写JavaBean实际上就是编写一个Java类,因此可以使用任何一个文本编辑器来编写,如记事本。 设计JavaBean类就是要设计这个JavaBean的属性和方法,JavaBean方法的命名规则:,(1)如果成员变量的名字为Xx,则相应地有两个用来得到成员变
3、量值和设置变量值的方法,它们分别命名为getXx()和setXx()。 即如下的两种形式: public dataType getXx() public void setXx(dataType data) 其中,dataType是成员变量的数据类型,参数data是赋予成员变量的值。 注意,方法名getXx和setXx中变量名第一个字母大写。,7.1.2编写JavaBean,(2)如果成员变量是boolean类数据,则有三个方法和该成员变量对应,分别是: public boolean isXx() public boolean getXx() public void setXx(boolean
4、data) 前两个可用来得到成员变量的值,第三个用于设置成员变量的值。 (3)访问成员变量的方法都设为public,即公有方法;如果有构造函数,则必须有一个public类型且没有参数的构造函数。,7.1.2编写JavaBean,【例7.1】 JavaBean的编写。 此处以第四章的图书征订Bean为例。 BookBean.java源代码如下: package bean; import java.io.*; public class BookBean private String BookName=; private int BookNum=1; public BookBean() public
5、 void setBookName( String BookName ) this.BookName = BookName; ,7.1.2编写JavaBean,public String getBookName() return this.BookName; public void setBookNum( int BookNum ) this.BookNum = BookNum; public int getBookNum() return this.BookNum; 需要注意的是,文件名必须要和类的名字相同, 否则编译时会出错。,7.1.3编译JavaBean,JavaBean必须经过编译成
6、class字节码文件才能供JSP文件调用。 在许多的集成开发环境中,能够自动完成编译工作,如在Eclipse集成开发环境中编译JavaBean类的方法很简单,只需要保存源文件,就会自动编译,7.2 JavaBean的范围,JavaBean存在四种作用范围,或者叫生命周期: 页面范围 请求范围 会话范围 应用范围 具体取值是通过scope属性来指定的。,7.2.1页面范围,page范围的JavaBean只在当前页面有效 常用于进行一次性操作的JavaBean,这样的Bean用的最多,比如: 大部分表单提交 bean的一些计算处理,7.2.2请求范围,此JavaBean对象保存在request对象
7、中 有request范围的JavaBean实例可以在处理请求的所有JSP页面中都存在,这个对象只有在请求全部处理完毕后才会被释放掉。 比如判断用户登录功能,如果用户输入的用户名和密码合法就可以用forward动作转到一个合法输入的处理页面,否则就转到一个出错的处理页面,这时,所转到的页面仍然可以得到用户的输入。,7.2.3会话范围,是保存在session里的,它的生存周期是整个session,只有当session过期后才能释放掉。 通常用于共享同一session的JSP页面,比如 购物车 登录后的用户信息,7.2.4应用范围,是保存在application对象里的,它的生存周期是整个appli
8、cation。 只有当Web Server关闭才会消失。通常用于共享同一application的JSP程序中,比如: 程序中一些经常用到的数据库连接URL 全局计数器 聊天室中的人员统计,7.3 JSP访问JavaBean的语法,在JSP页面中要使用JavaBean,应首先在文件头部导入这个JavaBean对应的类,如: 或 ,7.3 JSP使用JavaBean的四个步骤,1 编写JavaBean类(成员、构造函数、get方法(is方法)、set方法) 2 JSP页面使用page指令中的import导入Bean 3 动作定义一个Bean实例 4 和设置和访问Bean属性,7.4 在JSP中使用
9、JavaBean,【例7.2】 JavaBean的使用及其作用范围。 用Java编写的Box类可以 设置立方体的长、宽、高 求立方体的表面积和体积 在JSP页面中使用JavaBean,并显示不同scope属性值JavaBean的使用范围。 page作用域 session作用域 application作用域,7.4 在JSP中使用JavaBean,本例在Tomcat的发布目录webapps下建立了一个文件夹JavaBeans,使用beans的所有JSP页面文件存放在Tomcat5.5webappsJavaBean目录下 用Java编写的立方体类Box.java编译生成的字节码文件Box.clas
10、s存放路径为Tomcat5.5webappsJavaBeansWEB-INFclassesbean目录下。,Box.java源代码,package bean; import java.io.*; public class Box int length,width,height; public Box() length=1; width=1; height=1; public void setlength(int newlength) length=newlength; ,7.4 在JSP中使用JavaBean,public void setwidth(int newwidth) width=n
11、ewwidth; public void setheight(int newheight) height=newheight; public int getlength() return length; public int getwidth() return width; public int getheight(),7.4 在JSP中使用JavaBean,return height; public int BoxVolume() int volume; volume=length*width*height; return volume; public int BoxArea() int a
12、rea; area=2*(length*width+width*height+length*height); return area; ,7.4 在JSP中使用JavaBean,(1)scope=”page”,JavaBean的有效范围是当前页 在boxBean_page.jsp页面中,获得一个id为Mybox, 作用域是page的JavaBean,该JavaBean的生命期 为当前页。boxBean_page.jsp代码清单如下: , Box 的长是: Box 的宽是: Box 的高是: ,Box 的体积是: Box 的表面积是: 在浏览器中显示效果如图7.2所示。 图7.2 作用域为pag
13、e的JavaBean页面,7.4 在JSP中使用JavaBean,(2)scope=”session”,用户在不同页面共享JavaBean 用户在boxBean_session1.jsp和boxBean_session2.jsp页面间共享一个立方体JavaBean,如果用户在一个页面中更新了立方体的数据,那么刷新另一个页面,则可见到更新后的数据。 boxBean_session1.jsp代码清单如下: ,Box 的长是: Box 的宽是: Box 的高是: Box 的体积是: Box 的表面积是: boxBean_session2.jsp ,boxBean_session2.jsp代码清单如下
14、: Box 的长是: Box 的宽是: Box 的高是: Box 的体积是: ,Box 的表面积是: 修改后Box 的长是: 修改后Box 的宽是: ,修改后Box 的高是: 修改后Box 的体积是: 修改后Box 的表面积是: boxBean_session1.jsp ,boxBean_session1.jsp在浏览器中的执行结果如图7.3所示。单击超链接跳转到boxBean_session2.jsp,显示立方体的初始数据并将其数值更新,显示效果如图7.4所示。单击超链接返回页面boxBean_session1.jsp,会发现立方体的数据已经修改,说明用户在两个页面间共享了一个JavaBea
15、n。 图7.3 页面1运行结果 图7.4页面2运行结果 图7.5 再次运行页面1,(3)scope=”application”,不同用户共享JavaBean 在boxBean_app.jsp文件中创建了一个id为MyBox的JavaBean,作用域为application,该JavaBean由所有用户共享,直到服务器关闭。boxBean_app.jsp代码如下: ,Box 的长是: 修改后Box 的长是: Box 的宽是: 修改后Box 的宽是: ,Box 的高是: 修改后Box 的高是: 修改后Box 的体积是: 修改后Box 的表面积是: ,第一个用户运行boxBean_app.jsp显示立方体的数据,然后更
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中医护理在妇产科的应用
- 言语康复技师试卷及答案
- 压路机司机高级技师考试试卷及答案
- 老年人夏季营养与膳食指导
- 2025年云南省泸水市高二生物下册期末考试考试卷含答案【培优B卷】
- 2026年河北省高碑店市高二生物下册期末考试模拟卷附答案【黄金题型】
- 2026年河南省巩义市高二生物下册期末考试考试卷及参考答案(综合题)
- 2026年吉林省德惠市高二生物下册期末考试考试卷附参考答案【完整版】
- 2026年湖北省麻城市高二生物下册期末考试试卷附完整答案【考点梳理】
- 2025年山东省高密市高二生物下册期末考试测试卷及完整答案(典优)
- 中央空调维保服务 投标方案(技术方案)
- 部编版道德与法治四年级下册期末测试卷(含答案)
- DZ∕T 0215-2020 矿产地质勘查规范 煤(正式版)
- 电力管道顶管工程简易非开挖(牵引管)施工方案
- 驾驶员分心驾驶的安全警示
- 关于脑梗死的病例分析报告
- 苏少版四年级下册美术期末质量调研试卷及问卷调查
- 2023年副主任医师(副高)-中医耳鼻咽喉科(副高)考试历年真题集锦附答案
- 渗透作用创新方案 说课课件
- 淮北长源煤矸石综合利用有限公司锅炉烟气治理超低排放改造项目环境影响报告表
- 2023-2024学年江苏省张家港市小学数学五年级下册期末高分试卷
评论
0/150
提交评论