第八章-JSP和JavaBean课件_第1页
第八章-JSP和JavaBean课件_第2页
第八章-JSP和JavaBean课件_第3页
第八章-JSP和JavaBean课件_第4页
第八章-JSP和JavaBean课件_第5页
已阅读5页,还剩20页未读, 继续免费阅读

下载本文档

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

文档简介

第8章JSP和JavaBean

本章将详细介绍什么是JavaBean,以及如何定义JavaBean。还将介绍如何在JSP中调用JavaBean,如何设置并获得JavaBean属性以及设置JavaBean的范围,最后还将介绍如何移除JavaBean。通过本章的学习,读者应该能够完成如下几个目标。熟练掌握定义JavaBean

熟练掌握在JSP中调用JavaBean

熟练掌握设置并获得JavaBean属性熟练掌握设置JavaBean的范围熟练掌握移除JavaBean8.1.1JavaBean简介JavaBean是为Java语言设计的软件组件模型,具有可重复使用和跨平台的特点。可以通过JavaBean来封装业务逻辑,进行数据库操作等。从而很好的实现业务逻辑和前后台程序的分离。

JavaBean其实就是一个简单的Java类,这也就意味着,Java类的一切特征,JavaBean也都具有。JavaBean同样可以使用封装、继承、多态等特性。

JavaBean可以分为两类,一类是有用户接口(UI)的JavaBean,一类是没有用户接口的JavaBean。一般在JSP中使用的都是没有用户接口的JavaBean,因此本章所介绍的JavaBean都是指没有用户接口的JavaBean。这类JavaBean只是简单的进行业务封装,如数据运算和处理、数据库操作等。8.1.1JavaBean简介

一个标准的JavaBean应该具有如下几个特点。1、JavaBean必须是一个公开的类,也就是说JavaBean的类访问权限必须是public的。2、JavaBean必须具有一个无参数的构造方法。如果在JavaBean中定义了自定义的有参构造方法,就必须添加一个无参数构造方法,否则将无法设置属性;如果没有定义自定义的有参构造方法,则可以利用编译器自动添加的无参构造方法。3、JavaBean一般将属性设置成私有的,通过使用getXXX()方法和setXXX()方法来进行属性的取得和设置。8.1.2定义JavaBean02 //一个简单的JavaBean示例03 publicclassUserBean{04 //用户名属性05 privateStringusername;06 //用户密码属性08 privateStringpassword;08 //获得用户名09 publicStringgetUsername(){10 returnusername;11 }12 //设置用户名13 publicvoidsetUsername(Stringusername){14 this.username=username;15 }16 //获得用户密码18 publicStringgetPassword(){18 returnpassword;19 }20 //设置用户密码21 publicvoidsetPassword(Stringpassword){22 this.password=password;23 }24 }声明了该类的访问权限为Public,符合JavaBean定义的第一个特点。代码中没有定义自定义的有参构造方法,符合JavaBean定义的第二个特点。JavaBean中的两个属性,其访问级别为private,然后通过添加相应的getXXX()方法和setXXX()方法来进行属性的取得和设置。符合JavaBean定义的第三个特点8.1.3在JSP中调用JavaBean在JSP中调用JavaBean,有如下两个优点。1、提高代码的可复用性。对于通常使用的业务逻辑代码,如数据运算和处理、数据库操作等,可以封装到JavaBean中。在JSP文件中可以多次的调用JavaBean中的方法来实现快速的程序开发。2、将HTML代码和Java代码进行分离,程序利于开发维护。将业务逻辑进行封装,使得业务逻辑代码和显示代码想分离,不会互相干扰。避免了代码有多有复杂的问题,方便了日后的维护。要想要JSP中调用JavaBean,就需要使用到<jsp:useBean>动作指令,其语法格式如下。<jsp:useBeanid="对象名称"scope="储存范围"class="类名"></jsp:useBean>其中id属性表示该JavaBean实例化后的对象名称。scope属性用来指定该JavaBean的范围,也就是指JavaBean实例化后的对象储存范围。范围的取值有如下四种,分别是page、request、session和application。class属性用来指定JavaBean的类名,这里所指的类名包括包名和类名。调用JavaBean的示例<%@pagelanguage="java"contentType="text/html;charset=gb2312"%><html><head><metahttp-equiv="Content-Type"content="text/html;charset=gb2312"><title>通过useBean动作指令调用JavaBean</title></head><body><%--通过useBean动作指令调用JavaBean--%><jsp:useBeanid="user"scope="page"class="com.javaweb.ch08.UserBean"></jsp:useBean><%//设置User的usernamen属性

user.setUsername("James");

//设置User的password属性

user.setPassword("1234");//打印输出User的usernamen属性

out.println("用户名:"+user.getUsername()+"<br>");//打印输出User的password属性

out.println("用户名:"+user.getPassword());%></body></html>通过<jsp:useBean>指令调用名为UserBean的JavaBean,并设置其实例化对象名为user,其存储范围为Page范围。user.setUsername(“James”)和user.setPassword(“1234”)语句分别设置其属性值。out.println("用户名:"+user.getUsername()+"<br>");out.println("用户名:"+user.getPassword());通过实例化对象名user分别获得其属性并输出在页面上。8.2设置JavaBean属性

JSP中提供了一个<jsp:setProperty>动作指令来设置JavaBean属性,其有如下四种语法格式。<jsp:setPropertyname="实例化对象名"property="*"/><jsp:setPropertyname="实例化对象名"property="属性名称"/><jsp:setPropertyname="实例化对象名"property="属性名称"param="参数名称"/><jsp:setPropertyname="实例化对象名"property="属性名称"value="属性值"/>其中name属性使用设置实例化对象名,和<jsp:useBean>中的id属性保持一致。property属性用来指定JavaBean属性名称。param属性用来指定接受参数名称,value属性用来指定属性值。8.2.1根据所有参数设置JavaBean属性第一种<jsp:setProperty>动作指令用来根据所有参数设置JavaBean属性,其语法格式如下。<jsp:setPropertyname="实例化对象名"property="*"/>其中“*”表示根据表单传递的所有参数来设置JavaBean的属性。比如通过表单传递了两个参数,如username和password,这时就可以自动的对JavaBean中的username属性以及password属性进行赋值。这里必须注意的是,表单的参数必须和JavaBean中的属性名称保持大小写一致,否则无法进行赋值操作。根据参数设置JavaBean属性的示例。该实例包含两个实例,一个是用来传递参数的用户表单useform.jsp,一个是设置JabaBean属性页面。Useform.jsp<html><head><title>用户表单</title></head><body><center><fontsize=4color=blue>用户表单</font></center><hr><formmethod="post"action="setpropertyDemo.jsp"><fontcolor=green>

用户名:<inputtype=textname="username"size=10maxlength=10><br>

密码:<inputtype=textname="password"size=10maxlength=10><br><inputtype=submitvalue="提交"><inputtype=resetvalue="清除"></form></font></body></html>setPropertyDemo.jsp<%@pagelanguage="java"contentType="text/html;charset=gb2312"%><html><head><metahttp-equiv="Content-Type"content="text/html;charset=gb2312"><title>设置JavaBean的属性</title></head><body><%--通过useBean动作指令调用JavaBean--%><jsp:useBeanid="user"scope="page"class="com.javaweb.ch08.UserBean"></jsp:useBean><%--根据所有的参数设置JavaBean中的属性--%><jsp:setPropertyname="user"property="*"/>//打印输出User的usernamen属性

out.println("用户名:"+user.getUsername()+"<br>");//打印输出User的password属性

out.println(“用户密码:"+user.getPassword());%></body></html>通过<jsp:useBean>指令调用名为UserBean的JavaBean,并设置其实例化对象名为user,其存储范围为Page范围。<jsp:setPropertyname=“user”property=“*”/>动作指令来根据所有参数设置JavaBean属性。out.println("用户名:"+user.getUsername()+"<br>");out.println("用户名:"+user.getPassword());通过实例化对象名user分别获得其属性并输出在页面上。8.2.2根据指定参数设置JavaBean属性第二种<jsp:setProperty>动作指令用来根据指定参数设置JavaBean属性,其语法格式如下。<jsp:setPropertyname=“实例化对象名”

property=“属性名称"/>第二种<jsp:setProperty>动作指令相比第一种<jsp:setProperty>动作指令具有更好的弹性。第一种<jsp:setProperty>动作指令要求设置所有的参数,而第二种<jsp:setProperty>动作指令可以用来设置指定的参数。比如通过表单传递了两个参数,如username和password,这时就可以指定只为JavaBean的username属性赋值,也可以指定只为JavaBean的password属性赋值。setPropertyDemo2.jsp<%@pagelanguage="java"contentType="text/html;charset=gb2312"%><html><head><metahttp-equiv="Content-Type"content="text/html;charset=gb2312"><title>设置JavaBean的属性</title></head><body><%--通过useBean动作指令调用JavaBean--%><jsp:useBeanid="user"scope="page"class="com.javaweb.ch08.UserBean"></jsp:useBean><%--根据所有的参数设置JavaBean中的属性--%><jsp:setPropertyname="user"property=“username"/>//打印输出User的usernamen属性

out.println("用户名:"+user.getUsername()+"<br>");//打印输出User的password属性

out.println(“用户密码:"+user.getPassword());%></body></html>通过<jsp:useBean>指令调用名为UserBean的JavaBean,并设置其实例化对象名为user,其存储范围为Page范围。<jsp:setPropertyname="user"property=“username"/>动作指令来根据指定参数设置JavaBean属性。out.println("用户名:"+user.getUsername()+"<br>");out.println("用户名:"+user.getPassword());通过实例化对象名user分别获得其属性并输出在页面上。8.2.3根据指定参数设置指定JavaBean属性第三种<jsp:setProperty>动作指令用来根据指定参数设置指定JavaBean属性,其语法格式如下。<jsp:setPropertyname="实例化对象名"property="属性名称"param="参数名称"/>第三种<jsp:setProperty>动作指令相比前两种<jsp:setProperty>动作指令更加具有弹性。前面两种<jsp:setProperty>动作指令都需要设置参数和JavaBean属性必须相同,而且必须保证大小写一致。而第三种<jsp:setProperty>动作指令没有此限制,因为可以通过其指定需要设置的JavaBean属性。setPropertyDemo3.jsp<%@pagelanguage="java"contentType="text/html;charset=gb2312"%><html><head><metahttp-equiv="Content-Type"content="text/html;charset=gb2312"><title>设置JavaBean的属性</title></head><body><%--通过useBean动作指令调用JavaBean--%><jsp:useBeanid="user"scope="page"class="com.javaweb.ch08.UserBean"></jsp:useBean><%--根据所有的参数设置JavaBean中的属性--%><jsp:setPropertyname="user"property=“username“param=“username”/><jsp:setPropertyname="user"property=“password“param=“password”/>//打印输出User的usernamen属性

out.println("用户名:"+user.getUsername()+"<br>");//打印输出User的password属性

out.println(“用户密码:"+user.getPassword());%></body></html>通过<jsp:useBean>指令调用名为UserBean的JavaBean,并设置其实例化对象名为user,其存储范围为Page范围。<jsp:setPropertyname="user"property=“username“param=“username”/><jsp:setPropertyname=“user”property=“password“param=“password”/>上述两条动作指令用username和password来分别设置JavaBean的username和password两个属性。out.println("用户名:"+user.getUsername()+"<br>");out.println("用户名:"+user.getPassword());通过实例化对象名user分别获得其属性并输出在页面上。8.2.4设置指定JavaBean属性为指定值第四种<jsp:setProperty>动作指令用来设置指定JavaBean属性为指定值,其语法格式如下。<jsp:setPropertyname="实例化对象名"property="属性名称"value="属性值"/>第四种<jsp:setProperty>动作指令相比前三种<jsp:setProperty>动作指令更加具有弹性。前面三种<jsp:setProperty>动作指令都需要接受表单参数,而第四种可以根据需要动态的设置JavaBean属性值。setPropertyDemo4.jsp<%@pagelanguage="java"contentType="text/html;charset=gb2312"%><html><head><metahttp-equiv="Content-Type"content="text/html;charset=gb2312"><title>设置JavaBean的属性</title></head><body><%--通过useBean动作指令调用JavaBean--%><jsp:useBeanid="user"scope="page"class="com.javaweb.ch08.UserBean"></jsp:useBean><%--根据所有的参数设置JavaBean中的属性--%><jsp:setPropertyname="user"property=“username“value=“abc”/><jsp:setPropertyname="user"property=“password“value=“123”/>//打印输出User的usernamen属性

out.println("用户名:"+user.getUsername()+"<br>");//打印输出User的password属性

out.println(“用户密码:"+user.getPassword());%></

温馨提示

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

评论

0/150

提交评论