《Java Web技术及案例开发》 课件 第6章 JSP与JavaBean_第1页
《Java Web技术及案例开发》 课件 第6章 JSP与JavaBean_第2页
《Java Web技术及案例开发》 课件 第6章 JSP与JavaBean_第3页
《Java Web技术及案例开发》 课件 第6章 JSP与JavaBean_第4页
《Java Web技术及案例开发》 课件 第6章 JSP与JavaBean_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

第6章

JSP与JavaBean本章思维导图本章目标了解JavaBean特性优势掌握JavaBean的种类和规范掌握JavaBean类的创建掌握在JSP中使<jsp:useBean>、<jsp:setProperty>和<jsp:getProperty>三个动作元素JavaBean是一种特殊的Java类,以封装和重用为目的,在类的设计上遵从一定的规范,以供其它组件根据这种规范来调用。JavaBean最大的优势在于重用,同时它又具有以下特性:易于维护、使用、编写;封装了复杂的业务逻辑;可移植性;便于传输,既可用于本地也可用于网络传输。JavaBean简介JavaBean可分为两种:一种是有用户界面(UI,UserInterface)的JavaBean,例如一些GUI组件(按钮、文本框、报表组件等);另一种是没有用户界面、主要负责封装数据、业务处理的JavaBean。JSP通常访问的是后一种JavaBean。JSP与JavaBean搭配使用,具有以下优势:JSP页面中的HTML代码与Java代码分离,便于页面设计人员和Java编程人员的分工与维护;使JSP更加侧重于生成动态网页,事务处理由JavaBean来完成,使系统更趋于组件化、模块化。JavaBean简介JavaBean的这些优势,使系统具有了更好的健壮性和灵活性,使得JSP+JavaBean和JSP+Servlet+JavaBean的组合设计模式成为目前开发JavaWeb应用的主流模式。JavaBean简介一个标准的JavaBean需要遵从以下规范:JavaBean是一个公开的(public)类,以便被外部程序访问;具有一个无参的构造方法(即一般类中默认的构造方法),以便被外部程序实例化时调用;提供setXxx()方法和getXxx()方法,以便让外部程序设置和获取其属性。凡是符合上述规范的Java类,都可以被称为JavaBean。JavaBean规范【示例】一个普通JavaBeanJavaBean示例publicclassDemoBean{ privateStringuserName; privateintage; privateDatebirthday; privatebooleanmarried; privateString[]hobby; publicStringgetUserName(){ returnuserName; } publicvoidsetUserName(StringuserName){ this.userName=userName; } publicintgetAge(){ returnage; } publicvoidsetAge(intage){ this.age=age; } publicDategetBirthday(){ returnbirthday; } publicvoidsetBirthday(Datebirthday){ this.birthday=birthday; } publicbooleanisMarried(){ returnmarried; } publicvoidsetMarried(booleanmarried){ this.married=married; } publicString[]getHobby(){ returnhobby; } publicvoidsetHobby(String[]hobby){ this.hobby=hobby; }}JavaBean中的setXxx()方法和getXxx()方法也被称为setter方法和getter方法,是针对JavaBean方法的一种命名方式。方法的名称由字符“set+属性名”和“get+属性名”构成,“属性名”是将JavaBean的属性名称首字母大写后得来。例如:名称为“userName”的JavaBean属性,对应的setter和getter方法为:“setUserName()”和“getUserName()”。JavaBean通过这种方法的命名规范,以及对类的访问权限和构造函数的要求,使得外部程序能够通过反射机制来实例化JavaBean和查找到这些方法,从而调用这些方法来设置和获取JavaBean对象的属性。JavaBean规范在JavaBean中,对于属性的定义也不同于普通类中的属性定义。JavaBean的属性是指setter和getter方法名中所包含的属性名,即使在JavaBean类中没有定义此名称的实例变量,也可称为JavaBean的属性。这种定义方式扩展了属性的定义,融入了对JavaBean所封装的业务功能状态的表示。JavaBean的属性【示例】封装商品价格计算的JavaBeanJavaBean的属性publicclassProductBean{ //商品单价 privatefloatprice; //商品数量 privateintnum;

publicfloatgetPrice(){ returnprice; } publicvoidsetPrice(floatprice){ this.price=price; } publicintgetNum(){ returnnum; } publicvoidsetNum(intnum){ this.num=num; }

publicdoublegetTotalPrice(){ returnthis.price*this.num; }}JSP提供的访问JavaBean的3个动作元素<jsp:useBean>:创建或查找JavaBean实例对象<jsp:setProperty>:设置JavaBean对象的属性值<jsp:getProperty>:获取JavaBean对象的属性值在JSP中使用JavaBean【示例】使用动作元素访问JavaBean在JSP中使用JavaBean<jsp:useBeanid="product"class="com.zkl.ch06.javabean.ProductBean"/><jsp:setPropertyproperty="price"value="23.5"name="product"/><jsp:setPropertyproperty="num"value="2"name="product"/><jsp:getPropertyproperty="totalPrice"name="product"/>【示例】使用Java脚本访问JavaBean在JSP中使用JavaBean<%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"import="com.zkl.ch06.javabean.ProductBean"%><%Objectobj=pageContext.getAttribute("product");ProductBeanproduct=null;if(obj==null){ product=newProductBean(); pageContext.setAttribute("product",product,pageContext.PAGE_SCOPE);}product.setPrice(23.5f);product.setNum(2);%><%=product.getTotalPrice()%><jsp:useBean>元素用于在某个指定的作用域范围内查找一个指定名称的JavaBean对象,如果存在则直接返回该JavaBean对象的引用,如果不存在则实例化一个新的JavaBean对象,并将它按指定的名称存储在指定的作用域范围内。<jsp:useBean>元素的语法格式:其中:id属性用于指定JavaBean对象的引用名称和其存储域属性名;class属性用于指定JavaBean对象的完整类名;scope属性用于指定JavaBean对象的存储域范围,其取值只能是page、request、session、application四个值中的一个,默认为page。<jsp:useBean>元素<jsp:useBeanid="beanInstanceName"class="package.class" scope="page|request|session|application"/><jsp:setProperty>元素用于设置JavaBean对象的属性,相当于调用JavaBean对象的setter方法。语法其中:name属性用于指定JavaBean对象的名称,其值应与<jsp:useBean>标签中的id属性值相同;property属性用于指定JavaBean对象的属性名;value属性用于指定JavaBean对象的某个属性的值,可以是一个字符串也可以是一个表达式,它将被自动转换为所要设置的JavaBean属性的类型,该属性可选;param属性用于将一个请求参数的值赋给JavaBean对象的某个属性,它可以将请求参数的字符串类型的返回值转换为JavaBean属性所对应的类型,该属性可选。value和param属性不能同时使用。<jsp:setProperty>元素<jsp:setPropertyname="beanInstanceName"property="propertyName"value="propertyValue"|property="propertyName"param="parameterName"|property="propertyName"|property="*"/>【示例】表示通过value属性来指定JavaBean对象“product”的“price”属性的值。其中value属性的值将被自动转换为与JavaBean对应属性相同的类型。【示例】表示使用一个表达式的value属性值来指定JavaBean对象“product”的“price”属性的值。<jsp:setProperty>元素<jsp:setPropertyname="product"property="price"value="23.5"/><%floatprice=23.5f;%><jsp:setPropertyname="product"property="price"value="<%=price%>"/><jsp:setProperty>元素还可用于<jsp:useBean>元素起始标签和终止标签间,表示在此JavaBean对象实例化时,对其属性进行初始化。【示例】由于嵌套在<jsp:useBean>元素中的<jsp:setProperty>元素只有在实例化JavaBean对象时才被执行,因此如果<jsp:useBean>元素所引用的JavaBean对象已经存在,嵌套在其中的<jsp:setProperty>元素将不被执行,只能在JavaBean对象初始化时执行一次。<jsp:setProperty>元素<jsp:useBeanid="product"class="com.zkl.ch06.javabean.ProductBean"><jsp:setPropertyname="product"property="price"value="23.5"/><jsp:setPropertyname="product"property="num"value="2"/></jsp:useBean><jsp:getProperty>元素用于读取JavaBean对象的属性,等同于调用JavaBean对象的getter方法,然后将读取的属性值转换成字符串后输出到响应正文中。【语法】其中:name属性用于指定JavaBean对象的名称,其值应与<jsp:useBean>标签的id属性值相同;property属性用于指定JavaBean对象的属性名。【示例】<jsp:getProperty>元素<jsp:getPropertyname="beanInstanceName"prop

温馨提示

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

最新文档

评论

0/150

提交评论