教学材料《JSP设计与开发》-第6章_第1页
教学材料《JSP设计与开发》-第6章_第2页
教学材料《JSP设计与开发》-第6章_第3页
教学材料《JSP设计与开发》-第6章_第4页
教学材料《JSP设计与开发》-第6章_第5页
已阅读5页,还剩70页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

学习要点JavaBean概述创建和使用JavaBeanJavaBean的典型应用返回6.1

JavaBean概述6.1.1

什么是JavaBean简单地说,JavaBean是用Java语言描述的软件组件模型,其实际上是一个Java类。这些类遵循一个接口格式,以便于使函数命名、底层行为以及继承或实现的行为,可以把类看做标准的JavaBean组件进行构造和应用。JavaBean一般分为可视化组件和非可视化组件两种。可视化组件可以是简单的GUI元素,如按钮或文本框,也可以是复杂的,如报表组件;非可视化组件没有GUI表现形式。下一页返回6.1

JavaBean概述6.1.2

使用JavaBean的原因程序中往往有重复使用的段落,JavaBean就是为厂能够重复使用设计的程序段落,而且这些段落并不只服务于某一个程序,而且每个JavaBean都具有特定功能,当需要这个功能的时候就可以调用相应的JavaBean。从这个意义上来讲,JavaBean大大简化厂程序的设计过程,也方便了其他程序的重复使用。JavaBean传统应用于可视化领域,如AWT(窗口工具集)下的应用。而现在,JavaBean更多地应用于非可视化领域,同时,JavaBean在服务器端的应用也表现出强大的优势。非可视化的JavaBean可以很好地实现业务逻辑、控制逻辑和显示页面的分离,现在多用于后台处理,使得系统具有更好的健壮性和灵活性。JSP+JavaBean和JSP+JavaBean+Servlet成为当前开发Web应用的主流模式。上一页下一页返回6.1

JavaBean概述6.1.3JavaBean的优点JavaBean最大的优点在于可以实现代码的可重用性。总的来说,JavaBean具有以下优点。(1)易于维护、使用、编写。(2)可实现代码的重用性。

(3)可移植性强,但仅限于Java工作平台。

(4)便于传输,不限于本地还是网络。

(5)可以以其他部件的模式进行工作。上一页下一页返回6.1

JavaBean概述6.1.4JavaBean与ActiveX,EJB组件的区别对于有过其他语言编程经验的读者,可以将其看做类似微软的ActiveX的编程组件。但是区别在于JavaBean是跨平台的,而ActiveX组件则仅局限于Windows系统。总之,JavaBean比较适合于那些需要跨平台的、并具有可视化操作和定制特性的软件组件。JavaBean组件与EJB(EnterpriseJavaBean,企业级JavaBean)组件完全不同。EJB是J2EE的核心,是一个用来创建分布式应用、服务器端以及基于Java应用的功能强大的组件模型。JavaBean组件主要用于存储状态信息,而EJB组件可以存储业务逻辑。上一页下一页返回6.1

JavaBean概述6.1.5JavaBean的特性(1)JavaBean是公共的类。(2)构造函数没有输人参数。(3)属性必须声明为private,方法必须声明为public。(4)用一组set方法设置内部属性。(5)用一组get方法获取内部属性。(6)JavaBean是一个没有主方法的类(但可以编写主方法进行JavaBean功能测试),不需要继承自Object类。上一页返回6.2

创建和使用JavaBean6.2.1

创建JavaBean案例一:第一个简单的JavaBean【案例功能】使用JavaBcan定义、获取用户名和密码两个属性的方法【案例目标】学习在JSP文件中编写JavaBcan的方法。【案例要点】掌握JavaBcan的基本编写、set和get方法、JavaBcan与普通Java类的区别。【案例步骤】(1)在MyEclipse中,选择File

New

WebProjcct命令创建第6章源码文件夹ch06。(2)编写TestBean.java源代码文件。【源码】TestBean.java下一页返回6.2

创建和使用JavaBean上一页下一页返回6.2

创建和使用JavaBean【代码说明】①第1行:定义包mybean,将当前JavaBean类放在mybean包中。②第2行:定义类名TestBean,必须定义为公共类。③第3-4行:定义两个私有属性name和pass。④第5-7行:定义一个没有参数的构造函数。⑤第8-15行:定义属性name和pass的setXXX方法,设置属性的值。⑥第16-23行:定义属性name和pass的getXXX方法,获取属性值。JavaBean程序编写好后,保存(注意必须使用与类名相同的文件名保存)。上一页下一页返回6.2

创建和使用JavaBean(3)将TestBean.Java编译成类(TestBean.class文件)。(4)部署JavaBean。将TestBean.class类(连同所在的包ch06)复制到指定的应用程序项目文件夹中的classes文件夹(如E:\JSP\ch06\WebRoot\WEB-INF\classes)下,才可以被指定的JSP程序调用。Web应用程序的目录层次结构如表6-1所示。上一页下一页返回6.2

创建和使用JavaBean6.2.2JSP中使用JavaBean

案例二:调用JavaBean【案例功能】在JSP中使用JavaBean、为用户名和密码赋值并显示输出。

【案例目标】学习在JSP文件中调用JavaBean的方法。

【案例要点]jsp:getProperty动作的使用、jsp:setProperty动作的使用和JavaBean的属性的读写操作。

【案例步骤】(1)在MyEclipse中打开第6章源码文件夹ch06。(2)编写调用TestBean的JSP文件firstbean.Jsp。【源码】firstbean.jsp上一页下一页返回6.2

创建和使用JavaBean上一页下一页返回6.2

创建和使用JavaBean【代码说明】①第2行:导人mybean包中的类TestBean。②第6行:应用<<jsp:useBean>声明使用TestBean,指定其id为“test”③第7-8行:调用TestBean属性的set方法分别设置两个属性值。④第10-14行:应用<jsp;getProperty>获得TestBean中的属性值并输出。⑤第15-16行:应用<jsp:setProperty>分别设置两个属性值。⑥第17-21行:调用TestBean属性的get方法获得TestBean中的属性值并输出。(3)运行该JSP文件:在WebBrowser的地址栏输人http://uj:8030/ch06/firstbean.jsp,运行结果如图6-1所示。上一页下一页返回6.2

创建和使用JavaBean6.2.3JSP中JavaBean的动作元素在JSP中用<<jsp:useBean>、<jsp:getProperty>、<jsp:setProperty>3个动作元素来实现对JavaBean的操作。1.<asp:useBean><asp:useBean>的基本语法格式:<asp:useBean>标签的基本属性含义如表6-2所示。上一页下一页返回6.2

创建和使用JavaBean2.<jsp:setProperty><jsp:setProperty>的作用:设置JavaBean的属性值。<jsp:setProperty>的基本语法格式:其中name属性代表已经存在的并且具有一定生存范围(scope)的JavaBean实例。lastsyntax代表的语法如下。上一页下一页返回6.2

创建和使用JavaBean<jsp:

setProperty>标签的基本属性含义如表6-3所示。(3)<jsp:getProperty><jsp:getProperty>的作用:得到JavaBean实例的属性值,并将其转换为java.lang.String,最后放置在隐含的Out对象中。JavaBean的实例必须在<jsp:getProperty>前面定义。<jsp:getProperty>的基本语句格式:<jsp:getProperty>标签的基本属性含义如表6-4所示。上一页下一页返回6.2

创建和使用JavaBean6.2.4JSP与JavaBean结合的实例案例三:JavaBean与HTML表单的交互

【案例功能】通过表单输人两个数字,单击“计算”按钮调用JavaBean类实现计算两个数的最大公因数,并显示输出计算结果。【案例目标】学习应用JavaBean实现与HTML表单交互的方法。

【案例要点】HTML表单的设计、与HTML表单交互的JavaBean的编写和调用、JavaBean获取HTML表单元素值、使用JavaBean封装业务逻辑的优点。【案例步骤】(1)在MyEclipse中打开第6帝源码文件夹ch06。(2)编写用于计算两个数的最大公因数的JavaBean文件Bean.java。【源码】Bean.Java上一页下一页返回6.2

创建和使用JavaBean上一页下一页返回6.2

创建和使用JavaBean【代码说明】①第1行:定义包mybean,将当前JavaBean类放在mybean包中。②第2行:定义类名:Bean,必须定义为公共类。③第3-4行:定义两个私有属性:numl和nutn2。④第5-6行:定义一个没有参数的构造函数。⑤第7-15行:定义计算两个数的最大公因数的getGCD()方法,返回计算的值。⑥第16-26行:定义属性num1和num2的getXXX方法和setXXX方法,分别获取和设置属性值。

(3)JavaBean程序编写好后,保存(注意必须使用与类名相同的文件名保存)。上一页下一页返回6.2

创建和使用JavaBean将TestBean.java编译成类TestBean.class文件(在MyEclipse中保存操作即可同时完成编译和部一署,编译好的类被部一署在应用程序项目文件夹中的classes文件夹(如E:\JSP\ch06\WebRoot\WEB-INF\classes)。Web应用程序的目录层次结构如表6-1所示。(4)编写输人两个数字的HTML页面form.html。【源码】form.html上一页下一页返回6.2

创建和使用JavaBean上一页下一页返回6.2

创建和使用JavaBean【代码说明】①第6行:创建输人数字表单,并指定以beanTest.jsp进行计算处理。②第7-8行:创建数字1和数字2两个输人框,其中的属性name指定的nutnl和nutn2与beanTest.jsp中的nutnl和nutn2属性对应,以便交互。③第9-10行:定义两个按钮“计算”和“清除”。(5)保存该文件到应用程序项目文件夹中(如E:\JSP\ch06\WebRoot)。(6)编写进行计算公因数的JSP文件beanTest.Jsp。【源码]beanTest.jsp上一页下一页返回6.2

创建和使用JavaBean上一页下一页返回6.2

创建和使用JavaBean【代码说明】①第4行:应用<jsp:useBean>定义一个id为“gcdBean”的一个Bean实例。②第5行:应用property=“*”实现HTML表单元素与Bean中属性的映射(同名匹配),完成Bean重属性的赋值。③第6-7行:应用property=“GCD”实现对两个数字计算公因数,完成获取Bean属性的值并显示输出。(7)保存该文件到应用程序项目文件夹中(如E:\JSP\ch06\WebRoot)。(8)在MyEclipsc中的WebBrowserde的location栏中输人http://localhost:8080/ch06/form.html,运行结果如图6-2所示。上一页下一页返回6.2

创建和使用JavaBean(9)在表单中输人两个数的值,单击“计算”按钮,可得到两数字的最大公因数。运行运行结果如图6-3所示。JSP中使用JavaBean的操作方法总结如下。①编写并编译实现特定功能的JavaBean。②将编译好的JavaBean部署到特定应用程序的classes文件夹中。③在调用JavaBean的JSP文件中应用<jsp:useBean>,在JSP页面中声明并初始化JavaBean,这个JavaBean有一个唯一的id标志,还有一个生存范围scope(根据具体的需要进行指定),同时还要指定JavaBean的class来源(如mybean.LoginBean)。④调用JavaBean提供的public方法或者直接使用<jsp:Property>标签来得到JavaBean中属性的值。上一页下一页返回6.2

创建和使用JavaBean⑤调用JavaBean中的特定方法完成指定的功能(如进行用户登录验证)在JSP中调用JavaBean中最关键的是对<jsp:setProperty>的使用,根据不同的适用场合,其用法描述如下。①使用<jsp:setPropertyname=“myBean”property=“*”/>。这种方法适合于HTML表单中元素的name属性值与JavaBean中的属性名一致的情况,参考语句格式如下。②使用param属性。这种方法适合于HTML表单中元素的name属性值与JavaBean中的属性名不一致的情况。例如,在案例三中将form.htm页面中的数字1文本框的“name”属性设置为“nutnberl”,数字2上一页下一页返回6.2

创建和使用JavaBean文本框的“name”属性设置为“nutnber2”,则不能使用第1种方法,但可以使用第2种方法。参考语句格式如下。③使用value属性。这种方法适合于直接给指定的属性赋值,参考语句格式如下。上一页返回6.3

JavaBean的典型应用6.3.1JavaBean数据库技术案例四:设计JavaBean连接访问数据库【案例功能】事先创建好一个Access数据库student,并且配置一个数据源dbstudent,通过JavaBean封装数据库连接操作的功能,然后通过一个JSP页面,使用该JavaBean组件访问Access数据库,完成对登录的用户名和密码进行验证(用student数据库中的user表的合法用户记录比较)。【案例目标】学习据库访问操作通过JavaBean进行封装。【案例要点】通用数据库访问JavaBean的编写、数据库连接方法、数据库更新方法、数据库查询方法等。下一页返回6.3

JavaBean的典型应用【案例步骤】(l)在开始设计之前,先创建所需的数据库,这里使用Access数据库的示例,图6-4是一个创建好的Access数据库student.mdb,在数据库中包含user表,该表有两个字段sname、apass,分别存储用户名和密码。(2)然后配置一个ODBC数据源,数据源的名字为dbstudent,并指向上一步创建的Access数据库student.Mdb,如图6-5所示。(3)MyEclipse中打开第6帝源码文件夹ch06。(4)编写用于连接数据库的JavaBean文件ConnDB.Java。【源码】ConnDB.Java上一页下一页返回6.3

JavaBean的典型应用上一页下一页返回6.3

JavaBean的典型应用上一页下一页返回6.3

JavaBean的典型应用上一页下一页返回6.3

JavaBean的典型应用上一页下一页返回6.3

JavaBean的典型应用上一页下一页返回6.3

JavaBean的典型应用【代码说明】①第1行:定义包mybean,将当前JavaBean类放在mybean包中。②第2-4行:引入相关包。③第7-9行:初始化连接对象、命令对象、结果集对象。④第10-13行:设置连接属性(使用JDBC-ODBC桥接方式)。⑤第14-31行:getConnection方法,打开数据库连接并返回连接对象⑥第32-45行:doQuery方法,根据指定的SELECT语句执行数据库查询并返回结果集。

上一页下一页返回6.3

JavaBean的典型应用⑦第46-60行:doUpdale方法,根据指定的INSERT,UPDATE、或DELETE语句执行数据库的更新操作,并返回更新操作所影响的行数⑧第61-90行:closeConnection方法,关闭数据库连接。(5)编写用于登录验证的JSP文件login

ok.Jsp。【源码】loginok.jsp上一页下一页返回6.3

JavaBean的典型应用上一页下一页返回6.3

JavaBean的典型应用上一页下一页返回6.3

JavaBean的典型应用【代码说明】login

ok.jsp文件通过ConnDB的,doQuery方法调用实现数据库的连接,根据所输人的用户名和密码执行查询,实现用户名和密码的验证,如果是合法用户就跳转到welcome.jsp页面,否则,提示用户名或密码错误重新输人。(6)编写登录界面的HTML文件mylogin.Html。

【源码】mylogin.Html上一页下一页返回6.3

JavaBean的典型应用上一页下一页返回6.3

JavaBean的典型应用上一页下一页返回6.3

JavaBean的典型应用【代码说明】该登录界面可输人用户名和密码,然后调用loginok.jsp页面,完成登录验证。(7)运行效果如图6-6所示。输人非法用户名和密码,显示如图6-7所示。重新输人正确用户名和密码如图6-8所示。跳转到welcom.jsp页面,显示如图6-9所示。上一页下一页返回6.3

JavaBean的典型应用6.3.2

应用JavaBean实现编码转换编写JSP程序时,经常需要对HTML表单中的中文数据进行编码处理,如将ISO-8859-1编码转换成GBK编码格式,或者将GBK转换成ISO-8859-1格式。通常使用JavaBean技术将编码转换功能封装到JavaBean中实现代码重用。案例五:处理字符串的JavaBean【案例功能】转换中文字符串解决中文乱码问题、过滤空格与空值

【案例目标】学会解决中文乱码问题和过滤空格与空值的方法。

【案例要点】ISO-8859-1转换成GB2312编码格式及中文乱码问题。【案例步骤】编写实现处理字符串的JavaBean文件Str.java【源码】Str.java上一页下一页返回6.3

JavaBean的典型应用上一页下一页返回6.3

JavaBean的典型应用上一页下一页返回6.3

JavaBean的典型应用【代码说明】①第1行:定义包mybean,将当前JavaBean类放在mybean包中。②第2行:引入相关包。③第4行一第17行:定义方法loChinese,主要在从数据库中提取数据后并送HTML输出显示到客户端前使用,实现由iso-8859-1编码格式到GB2312的转换,避免中文乱码的出现。此处是通过调用String类的getBytes方法实现的。④第18行-第31行:定义方法,dbEncode,主要用于从HTML页面获取数据后、存人数据库前对数据进行过滤空格。

上一页下一页返回6.3

JavaBean的典型应用⑤该JavaBean组件的toChinese()方法,主要在从数据库中提取数据后并送HTML输出显示到客户端前使用,对数据进行编码转换,避免中文乱码的出现。⑥该JavaBean组件的,dbEncode(

)方法,主要在从HTML页面获取数据后,存人数据库前对数据进行过滤空格。上一页下一页返回6.3

JavaBean的典型应用6.3.3

使用JavaBean上传文件案例六:利用JavaBean实现文件上传【案例功能】在使用电子邮箱时,会将一些文件以附件的形式发送出去,再由服务器转发到收件者的邮箱中。本例实现将文件上传到服务器中。【案例目标】学会利用JavaBean实现上传文件的方法。

【案例要点】Bean文件经所独取的文件以字节方式更新到服务器的指定位置。【案例步骤】(1)编写实现文件上传的JavaBean文件upload.Java。【源码】upload.java上一页下一页返回6.3

JavaBean的典型应用上一页下一页返回6.3

JavaBean的典型应用上一页下一页返回6.3

JavaBean的典型应用上一页下一页返回6.3

JavaBean的典型应用上一页下一页返回6.3

JavaBean的典型应用上一页下一页返回6.3

JavaBean的典型应用【代码说明】①第1行:定义包mybean,将当前JavaBean类放在mybean包中。②第2-4行:引入相关包。③第6行:声明上传行标识。④第7行:声明上传路径标识。⑤第8行:声明上传类型标识。⑥第9行:声明上传文件字符编码。⑦第10-18行:获取上传文件名。⑧第19-21行:设置上传路径。⑨第22-29行:设置上传文件类型。⑩第30-32行:设置上传文件字符编码。上一页下一页返回6.3

JavaBean的典型应用⑩第33-37行:初始化上传设置。⑩第38-38行:上传文件。⑩第39-45行:定义使用的变量。⑩第46-54行:得到文件名。⑩第55-87行:将数组中的内容写入文件。⑩第88-108行:使用while循环读取行内容,每次循环读入一行内

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论