您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > Jsp与JavaBean
第5章Jsp与JavaBean本章导读知识点:掌握怎样编写JavaBean和使用JavaBean。理解怎样使用JavaBean分离JSP页面的数据显示和数据处理。重点:理解各种JavaBean的生命周期。使用有关标记加载JavaBean、设置和获取JavaBean的属性的值。难点:掌握session声明周期的JavaBean的使用。关键实践:针对某实际问题编写JSP页面,使用JavaBean处理有关数据,将数据的显示和处理分离。Jsp与JavaBeanJavaBean是一个可重复使用的软件组件,是遵循一定标准、用Java语言编写的一个类,该类的一个实例称为一个JavaBean,简称bean。由于JavaBean是基于Java语言的,因此JavaBean不依赖平台,具有以下特点:可以实现代码复用。易编写、易维护、易使用。可以在任何安装了Java运行环境的平台上的使用,而不需要重新编译。一个JSP页面可以将数据的处理过程指派给一个或几个bean来完成,我们只需在JSP页面中调用这个bean即可。Jsp与JavaBean本章内容编写和使用JavaBean获取和修改bean属性bean的辅助类举例5.1编写和使用JavaBean编写beanbean的分类什么是beanbean的命名规则使用bean文件的保存目录在Jsp中使用bean5.1.1编写bean——bean的分类JavaBean分为:可视组件:组件在运行中能够显示出来,像按钮、文本框等非可视组件:通常来处理程序中的一些复杂事物,一般不会有可视化的输出5.1.1编写bean——什么是bean编写JavaBean就是编写一个Java类,这个类创建的一个对象称为一个bean。5.1.1编写bean——bean的命名规则为了能够让使用这个bean的应用程序构建工具(如Tomcat服务器)知道这个bean的属性和方法,只需在类的方法命名上遵循以下规则:如果类的成员变量的名字是xxx,那么为了获取或更改成员变量的值,即获取或更改属性,类中必须提供两个方法:getXxx()用来获取属性xxxsetXxx()用来修改属性xxx即方法的名字用get或set为前缀,后缀是将成员变量名字的首字母大写的字符序列。5.1.1编写bean——bean的命名规则对于boolean类型的成员变量,即布尔逻辑类型的属性,允许使用“is”代替上面的“get”和“set”;类中声明的方法的访问属性都必须是public的;类中声明的构造方法必须是public、无参数的。Lader.java举例:编写一个简单的bean。5.1.2使用bean——文件的保存目录在Jsp中使用JavaBean时,需要创建的应用程序目录有:在路径D:\Tomcat\webapps下创建应用程序的目录目录D:\Tomcat\webapps\ex:存放Jsp文件和HTML文件目录D:\Tomcat\webapps\ex\WEB-INF\src:存放Java类源程序文件目录D:\Tomcat\webapps\ex\WEB-INF\classes:存放Java类编译后的.class文件目录D:\Tomcat\webapps\ex\WEB-INF\lib:存放引用到的类库5.1.2使用bean——文件的保存目录创建完目录后,需要建立配置文件web.xml,web.xml存放于D:\Tomcat\webapps\ex\WEB-INF\内容如下:?xmlversion=1.0encoding=UTF-8?web-appversion=2.4xmlns=:xsi=:schemaLocation=://java.sun.com/xml/ns/j2ee/web-app_2_4.xsdwelcome-file-listwelcome-fileregister.html/welcome-file/welcome-file-list/web-app5.1.2使用bean——在Jsp页面中使用beanuseBean标记的格式如下:jsp:useBeanid=“给bean起的名字”class=“创建bean的类scope=bean有效范围/jsp:useBean或jsp:useBeanid=“给bean起的名字”class=“创建bean的类”scope=“bean有效范围”/5.1.2使用bean——在Jsp页面中使用beanscope的取值scope取值page该bean的有效范围是当前页面,当客户离开这个页面时,Tomcat取消分配的bean,即释放bean所占有的内存空间。不同用户的scope取值是page的bean也是互不相同的。5.1.2使用bean——在Jsp页面中使用beanscope的取值scope取值sessionbean的有效范围是客户的会话期间。当客户的会话(session)消失,如客户关闭浏览器时,Tomcat取消分配的bean,即释放bean所占有的内存空间。5.1.2使用bean——在Jsp页面中使用beanscope的取值scope取值requestbean的有效范围是request期间。每个页面分配的bean也是互不相同的。5.1.2使用bean——在Jsp页面中使用beanscope的取值scope取值application不同用户的scope取值是application的bean也都是相同的一个。需要注意当用户改变时,还需要注意页面改变时例5-1举例:useBean.jsp存放在Web服务目录chaper5中,负责创建bean的类是上述的Lader类,存放在chaper5\WEB-INF\classes\tom\jiafei中。创建的bean的名字是lader,lader的scope取值是page。分析程序:本程序为useBean.jsp和Lader.java。通过本程序演示bean的使用,以及scope取为page时的运行效果。例5-2举例:将bean的scope的值设为session,beans1.jsp页面存放在Web服务目录chapter5中,beans2.jsp页面存放在目录chapter5\hello中。分析程序:本程序为beans1.jsp、beans2.jsp和Lader.java。通过本程序演示bean的使用,以及scope取为session时的运行效果。例5-3举例:bean的scope的值设为application,创建的bean的名字是lader,创建该bean的类文件仍然是上述的Lader.class。当第一个用户访问页面door1.jsp时,把lader的above和bottom的值修改为1000和5000.当其他客户(可以新打开浏览器模拟其他用户)访问door2.jsp时,看到的lader的above和bottom的值分别为1000和5000。分析程序:本程序为door1.jsp、door2.jsp和Lader.java。通过本程序演示bean的使用,以及scope取为application时的运行效果。5.2获取和修改bean的属性获取或修改bean的属性还可以使用动作标记getProperty、setProperty,一个bean就是一个遵守了一定规范的类所创建的对象,当JSP页面使用jsp:useBean标记获得一个bean之后,就可以使用jsp:setProperty和jsp:getProperty标记设置和获取bean的属性,在JSP页面中不必使用Java程序片。5.2获取和修改bean的属性动作标记getPropertygetProperty动作标记格式getProperty动作标记举例动作标记setProperty将bean属性值设为一个表达式的值或字符串通过http表单的参数值来设置bean的相应属性的值通过request的参数值来设置bean的相应的属性值5.2.1动作标记getPropertygetProperty动作标记的格式如下:jsp:getPropertyname=“bean的id”property=bean的属性/或jsp:getPropertyname=beanidproperty=bean的属性/jsp:getProperty例5-4举例:book.jsp页面保存在Web服务目录chp5中,该页面使用useBean标记,用Book类创建一个名字是book的bean,并使用getPropert标记获取book的各属性的值。分析程序:本程序为book.jsp和Book.java。5.2.2动作标记setProperty——将beans属性设计为一个表达式或字符串使用setProperty动作标记将bean的属性设置为一个表达式的值的格式如下:jsp:setPropertyname=bean的名字property=bean的属性value=%=expression%/5.2.2动作标记setProperty——将beans属性设计为一个表达式或字符串使用setProperty动作标记将bean的属性设置为一个字符串的格式如下:jsp:setPropertyname=bean的名字property=bean的属性value=字符串/5.2.2动作标记setProperty——将beans属性设计为一个表达式或字符串如果将表达式的值设置为bean属性的值,表达式值的类型必须与bean的属性的类型一致。如果将字符串设置为bean的属性的值,这个字符串会自动被转化为bean的属性的类型。Java语言将字符串转化为其他数值类型的方法如下:♣转化到int:Integer.parseInt(Stings)♣转化到long:Long.parseLong(Stings)♣转化到float:Float.parseFloat(Stings)♣转化到double:Double.parseDouble(Stings)例5-5举例:Jsp页面文件student.jsp保存在Web服务目录chp5中,该页面中使用Book类创建两个bean,其有效范围是page。在Jsp页面中使用动作标记设置、获取这些bean的属性。分析程序:本程序为student.jsp和Student.java。5.2.2动作标记setProperty——通过HTTP表单的参数值来设置bean的属性值通过HTTP表单的参数值来设置bean的相应属性的值,要求表单参数名字必须与bean属性的名字相同,Tomcat服务器会自动将字符串转换为bean属性的类型。这种方式的setProperty标记的格式如下:jsp:setPropertyname=bean的名字property=*/例5-6举例:使用Student创建bean,用户可以通过表单来指定bean的属性的值。分析程序:本程序为studentForm1.jsp和Student.java。5.2.2动作标记setProperty——通过request的参数值来设置bean的属性值通过request的参数的值来设置bean的相应属性的值,要求request参数名字必须与bean属性的名字相同,Tomcat服务器会自动将request获取的字符串数据类型转换为bean相应的属性的类型。其格式如下:jsp:setPropertyname=bean的名字property=属性名param=参数名/例5-7举例:使用request参数设置bean的属性的值。分析程序:本程序为studentForm2.jsp和Student.java。5.3bean的辅助类在编写bean时,可能需要编写其他类,只要将这
本文标题:Jsp与JavaBean
链接地址:https://www.777doc.com/doc-3818053 .html