版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
项目五JavaBean开发模型
项目要
求本项目是JavaBean开发模型的应用,主要是完成JavaBean模型的创建和应用,并能提高程序的可读性、代码的重用性、节省开发时间。
项目分
析要完成项目任务,至少需要具备两个基本条件:一是掌握JavaBean的创建和方法的应用,二是掌握JavaBean综合应用,该项目分3个任务,分别是应用JavaBean计算梯形的面积、应用JavaBean实现网站注册功能和应用JavaBean实现购物车。
项目目
标【知识目标】掌握JSP中编写JavaBean的方法,掌握JavaBean数据库访问和编码转换。【能力目标】能编写和应用JavaBean,用应用JavaBean实现数据库的封装,并能解决中文乱码。【素质目标】培养学生代码的规范严谨性,提高学生的分析问题,解决问题的能力。
知识导
图任务一应用JavaBean计算梯形的面积--任务演示编写一个JSP页面,该页面提供一个表单,用户可以通过表单设置梯形的上底、下底和高的值,并提交给本JSP页面,该JSP页面将计算梯形面积的任务交给一个pagebean去完成。JSP页面使用getProperty动作标记显示pagebean中的数据,如图所示任务一应用JavaBean计算梯形的面积–知识准备JavaBean的分类JavaBean的规范使用JavaBeanJavaBean介绍1.
JavaBean介绍Javabean是Java的可重复使用软件组件,实际上JavaBean是一种Java类。每个JavaBean都实现了一个特定的功能,经过合理地组织不同功能的JavaBean,可以快速生成一个全新的应用程序。假设将一个应用程序比做一间空房间,那么这些JavaBean就好比房间中的家具。由于JavaBean是基于Java语言的,因此JavaBean不依赖平台,具有以下特点:(1)可以实现代码的重复利用。(2)易编写、易维护、易使用。(3)可以在任何安装了Java运行环境的平台上使用,而不需要重新编译。2.
JavaBean的分类JavaBean起初的目的是将可以重复使用的代码进行打包,在传统的应用中,JavaBean应用于可视化界面,Java图形界面中使用的按钮、文本框和列表框等,这种JavaBean称为可视化的JavaBean。随着技术的不断发展与项目需求的增加,JavaBean的功能与应用范围也在不断扩展,目前JavaBean主要实现一些业务逻辑或封装一些业务对象,这些JavaBean并没有可视化界面,又称为非可视化的JavaBean。3.
JavaBean的分类孟子曰“不以规矩,不能成方圆”,同样,在设计JavaBean时,需要遵循有关约定:(1)使用package语句进行打包(2)类中声明的方法的访问属性都必须是public的。(3)类中需提供public、无参数的构造方法。(4)属性必须声明为私有的(即用private修饰)(5)如果类的成员变量的名字是xxx,类中提供两个方法:getXxx(),用来获取属性xxx。setXxx(),用来修改属性xxx.。
也就是方法的名字用get或set为前缀,后缀是将成员变量名字的首字母大写的字符序列。
(6)对于boolean类型的成员变量,即布尔逻辑类型的属性,允许使用“is”代替上面的“get”和“set”。JavaBean的创建【例5-1-1】创建一个Student的Bean类
packagemy.bean;publicclassStudent{ privateStringname; privateintage; publicStudent(){ } publicStringgetName(){ returnname;
} publicvoidsetName(Stringname){ =name; } publicintgetAge(){ returnage; } publicvoidsetAge(intage){ this.age=age; }}JavaBean和JSP技术结合不仅可以实现表现层和逻辑层的分离,还可以提高JSP程序的运行效率和代码重用的程度,并且可以实现并行开发,在JSP中提供了<jsp:useBean>、<jsp:setProperty>和<jsp:getProperty>动作元素来实现对JavaBean的操作。4.使用JavaBean1.<jsp:useBean>动作元素基本格式如下:<jsp:useBeanid="beanname"class=“package.class"scope=“page|request|session|application"/>或<jsp:useBeanid="beanname"class="package.class"scope="page|request|session|application"></jsp:useBean><jsp:useBean>动作元素的基本属性4.使用JavaBean序号属性名功能1idJavaBean对象的唯一标识,代表了一个JavaBean对象的实例。它具有特定的scope存在范围。在JSP页面中通过id来识别JavaBean2scope代表JavaBean对象的生存时间,可以是page,request等,默认是page3class代表了JavaBean对象的class名字,需要特别注意的是大小写要完全一致2.<jsp:getProperty>动作元素<jsp:getProperty>用于获取Bean对象中属性的值。JavaBean的实例必须在<jsp:getProperty>前面定义,基本语句的格式如下:<jsp:getPropertyname="id"property="bean属性"/>或<jsp:getPropertyname="id"property="bean属性"/></jsp:getProperty><jsp:getProperty>动作元素的基本属性4.使用JavaBean3.<jsp:setProperty>动作元素<jsp:setProperty>可以设置JavaBean的属性,基本语句格式如下:方式一:将bena属性的值设置为一个字符串<jsp:setPropertyname="beanname"property="propertyname"value="propertyvalue"/>方式二:将bena属性的值设置为一个表达式的值<jsp:setPropertyname="id"property="bean的属性"value="<%=expression%>"/>序号属性名功能1Name指出了要获取哪个bean的属性值,取值与useBean中的id值相同2property指出要获取该bean的哪个属性值
<jsp:setProperty>动作元素的基本属性4.使用JavaBean序号属性名功能1Name指出了要获取哪个bean的属性值,取值与useBean中的id值相同2property代表要设置值的属性property名字,(1)property=“*”,程序就会反复地查找当前的ServletRequest所有参数,并且匹配JavaBean中相同名字的属性property,并通过JavaBean中属性中的set方法给这个属性赋值value。(2)如果value属性为空,则不会修改JavaBean中的属性值。3param代表了页面请求的参数的名字,<jsp:setProperty>元素不能同时使用param和value4Value代表了赋给JavaBean的属性property的具体值4.使用JavaBean【例5-1-2】编写Person.jsp页面去访问例5-1-1的bean属性<jsp:useBeanid="lili"class="my.bean.Student"
scope="request"></jsp:useBean>
<head><title>Inserttitlehere</title>
</head><bodybgcolor="f0fff0"><fontsize=4><b>
<jsp:setPropertyproperty="name"name="lili"value="丽丽"/>
<jsp:setPropertyproperty="age"name="lili"value="<%=20%>"/>
学生的姓名:<jsp:getPropertyproperty="name"name="lili"/><br>
学生的年龄:<jsp:getPropertyproperty="age"name="lili"/>
</font></b>
</body>任务一应用JavaBean计算梯形的面积--任务实施编写一个JSP页面,该页面提供一个表单,用户可以通过表单设置梯形的上底、下底和高的值,并提交给本JSP页面,该JSP页面将计算梯形面积的任务交给一个pagebean去完成。JSP页面使用getProperty动作标记显示pagebean中的数据,如图所示任务一应用JavaBean计算梯形的面积--任务实施第一步:bean的类文件以“class"形式创建,为”AreaBean.java"。需要把bean文件放到my.bean包中。packagemy.bean;publicclassAreaBean{privatedoublehight,up,down,area;publicAreaBean(){}publicdoublegetHight(){ returnhight;}publicvoidsetHight(doublehight){ this.hight=hight;}publicdoublegetUp(){ returnup;}publicvoidsetUp(doubleup){ this.up=up;}publicdoublegetDown(){ returndown;}publicvoidsetDown(doubledown){ this.down=down;}publicdoublegetArea(){ this.area=(up+down)*hight/2; returnarea;}publicvoidsetArea(doublearea){ this.area=area;}}任务一应用JavaBean计算梯形的面积--任务实施第二步
创建jsp文件<jsp:useBeanid="tixing"class="my.bean.AreaBean"scope="request"></jsp:useBean><bodybgcolor="f0fff0"><fontsize=4><b><jsp:setPropertyproperty="up"name="tixing"value="20"/><jsp:setPropertyproperty="down"name="tixing"value="30"/><jsp:setPropertyproperty="hight"name="tixing"value="5"/>梯形的上底:<jsp:getPropertyproperty="up"name="tixing"/><br>梯形的下底:<jsp:getPropertyproperty="down"name="tixing"/><br>梯形的高:<jsp:getPropertyproperty="hight"name="tixing"/><br>梯形的面积:<jsp:getPropertyproperty="area"name="tixing"/><br></font></b></body>任务一应用JavaBean计算梯形的面积--任务拓展通过任务5.1的学习,我们已经学会使用一个简单的bean,有时在写一个bean的时候,除了需要应用import语句引入系统提供的类,可能还需要其它一些自己编写的类,此时只要将这些类和创建的bean的类写在一个Java源中即可。1.FilenameFilter介绍FilenameFilter是一个接口,实现FilenameFilter接口的类的实例用于过滤不符合规格的文件名,并返回合格的文件,只有一个accpet方法。publicbooleanaccept(Filedir,Stringname){}作用:它用来测试指定的文件是否应包含在文件列表中dir:表示文件的当前目录name:表示文件名任务一应用JavaBean计算梯形的面积--任务拓展2.File文件File类的一个对象,代表一个文件或一个文件目录(文件夹),基本格式如下:Filef=newFile("路径");常用的方法:(1)String[]fs=f.list();//获取指定目录下的所有文件或者文件目录的名称数组(2)File[]fs=f.listFiles();//获取指定目录下的所有文件或者文件目录的FiLe数组FilenameFilter用来把符合要求的文件或目录返回;因此可以调用:(1)String[]fs=f.list(FilenameFilterfilter);;(2)File[]fs=f.listFiles(FilenameFilterfilter);当向list方法传递一个FilenameFilter接口对象时,list方法在列出文件时,将让该文件调用accept方法检查该文件是否符合accept方法指定的目录和文件的要求。任务一应用JavaBean计算梯形的面积--任务拓展【例5-1-3】应用bean列出JSP页面所在目录中特定扩展名的文件。第一步:编写FileName和ListFile类packagemy.bean;importjava.io.File;importjava.io.FilenameFilter;classFileNameimplementsFilenameFilter{ Stringstr=null; FileName(Strings)
{ str="."+s; } publicbooleanaccept(Filedir,Stringname){ returnname.endsWith(str); }}任务一应用JavaBean计算梯形的面积--任务拓展第一步:编写FileName和ListFile类publicclassListFile{ StringextendsName=null; StringBufferallFileName=newStringBuffer(); publicStringgetExtendsName(){ returnextendsName; } publicvoidsetExtendsName(StringextendsName){ this.extendsName=extendsName; } publicStringBuffergetAllFileName(){ Filedir=newFile("D:/douban"); FileNamefilename=newFileName(extendsName); Stringfile_name[]=dir.list(filename); for(inti=0;i<file_name.length;i++)
{allFileName.append(file_name[i]+"");}
returnallFileName;}}任务一应用JavaBean计算梯形的面积--任务拓展第二步:编写JSP文件<%@pageimport="my.bean.ListFile"%><jsp:useBeanid="file"class="my.bean.ListFile"scope="page"></jsp:useBean><bodybgcolor="pink"><formaction=""method="post">输入文件的扩展名:<inputtype="text"name="extendsName"><inputtype="submit"value="提交"></form><jsp:setPropertyproperty="extendsName"name="file"param="extendsName"/><p>扩展名是<jsp:getPropertyproperty="extendsName"name="file"/>文件有:<br><jsp:getPropertyproperty="allFileName"name="file"/></body>
任务二应用JavaBean实现网站注册功能--任务演示当我们进入网站时,想购商品,需要先注册,然后才能购买,如图所示运行界面输入信息任务二应用JavaBean实现网站注册功能--任务演示提交后的信息任务二应用JavaBean实现网站注册功能–知识准备setProperty元素setProperty元素使用setProperty设置bean属性值可以通过HTML表单的参数的值来设置bean的相应属性的值,要求bean属性的名字必须在表单中有相应的参数名字与之对应,JSP引擎会自动将参数的字符串值转换为bean相对应的属性的值。如果用HTTP表单的所有参数的值设置bean相对应的属性的值可以使用setProperty元素:方式一:<jsp:setPropertyname="beanname"property="*"/>该元素不再具体指定bean属性的值将对应表单中哪些参数指定的值,系统会自动根据名字进行对应的匹配。1.
response对象实现重定向【例5-2-1】通过bean,实现表单读取网站登录信息用户登录前后界面setProperty元素第一步:编写JavaBean类Loginpackagemy.bean;publicclassLogin{privateStringusername;privateStringpassword;publicLogin(){}publicStringgetUsername(){ returnusername;}publicvoidsetUsername(Stringusername){ this.username=username;}publicStringgetPassword(){ returnpassword;}publicvoidsetPassword(Stringpassword){ this.password=password;}}setProperty元素第二步:编写JSP页面<jsp:useBeanid="lili"class="my.bean.Login"></jsp:useBean><bodybgcolor="pink"><formaction=""method="post">用户的登录界面<br>用户名:<inputtype="text"name="username"><br>密
码:<inputtype="password"name="password"><br><inputtype="submit"value="提交给本页面"><br></form>显示用户的登录信息<br><%request.setCharacterEncoding("utf-8");%><jsp:setPropertyproperty="*"name="lili"/>用户名:<jsp:getPropertyproperty="username"name="lili"/><br/>密码:<jsp:getPropertyproperty="password"name="lili"/></body>setProperty元素方式二:<jsp:setPropertyname="beanname"property="propertyName",param="parameterName"/>这种方式适合于HTML表单中元素的name属性值与JavaBean中的属性名不一致的情况。如果将案例5-2-1中的用户名的name属性设置为user,密码框的name的属性设置为pwd,则用方式一,就会出错,但可以应用方式二,参考语句如下:<jsp:setPropertyproperty="username"name="lili"param="user"/><jsp:setPropertyproperty="password"name="lili"param="pwd"/><br/>property是JavaBean的属性,param是表单控件的名称方式三:<jsp:setPropertyname="beanname"property="propertyName",value="propertyValue"/>这种方式适合于直接给指定的属性值赋值<jsp:setPropertyproperty="username"name="lili"value="丽丽"/><jsp:setPropertyproperty="password"name="lili"value="123456"/><br/>第一步:编写JavaBean类Register任务二应用JavaBean实现网站注册功能–任务实现packagemy.bean;publicclassRegister{Stringlogname="",password,phone="",address="",realname="";publicRegister(){}publicStringgetLogname(){
returnlogname;}publicvoidsetLogname(Stringlogname){this.logname=logname;}publicStringgetPassword(){returnpassword;}publicvoidsetPassword(Stringpassword){this.password=password;}publicStringgetPhone(){returnphone;}publicvoidsetPhone(Stringphone){this.phone=phone;}publicStringgetAddress(){returnaddress;}publicvoidsetAddress(Stringaddress){this.address=address;}publicStringgetRealname(){returnrealname;}publicvoidsetRealname(Stringrealname){this.realname=realname;}}第二步:编写jsp文件任务二应用JavaBean实现网站注册功能–任务实现*重复密码:<inputtype="password"name="again_password"><br><br>
联系电话:<inputtype="text"name="phone"><br><br>
收件地址:<inputtype="text"name="address"><br><br>
真实姓名:<inputtype="text"name="realname"><br><br><inputtype="submit"value="提交"></form></div><div><h1>显示用户网站注册信息</h1><%request.setCharacterEncoding("utf-8");%><jsp:setPropertyproperty="*"name="register"/>用户名称:<jsp:getPropertyproperty="logname"name="register"/><br><br>用户密码:<jsp:getPropertyproperty="password"name="register"/><br><br>联系电话:<jsp:getPropertyproperty="phone"name="register"/><br><br>收件地址:<jsp:getPropertyproperty="address"name="register"/><br><br>真实姓名:<jsp:getPropertyproperty="realname"name="register"/><br><br></div></body>任务二应用JavaBean实现网站注册功能–任务拓展1.编写最美的逆行者相册任务要求:2022年8月,重庆市北碚区歇马街道虎头村突发山火,从山火烧起来的那一刻,各方力量开始集结,消防救援人员和志愿者们为了人民生命财产安全,在极端高温天气下又处于炙烤险峻的一线,勇往直前、迎难而上,他们是最美的逆行者在北碚山火中读懂重庆,应用你学的知识,做一个救火相册,如图所示。任务二应用JavaBean实现网站注册功能–任务拓展第一步:创建FileName1类和Imagebean类publicclassImagebean{intimageNumber=0,max;StringpictureName[]={},playImage;
publicImagebean() {Filedir=newFile("D:/workspace/项目五/WebContent/image"); pictureName=dir.list(newFileName1()); max=pictureName.length; } publicintgetImageNumber()
{returnimageNumber; } publicvoidsetImageNumber(intn)
{ if(n<0) n=max-1; if(n==max) n=0; imageNumber=n; }任务二应用JavaBean实现网站注册功能–任务拓展publicStringgetPlayImage(){playImage=newString("<imgsrc=image/"+pictureName[imageNumber]+""+"width=500height=300></img>");returnplayImage;}}第二步:创建jsp文件<%@pageimport="my.bean.*"%><jsp:useBeanid="photo"class="my.bean.Imagebean"scope="session"></jsp:useBean><bodybgcolor="pink"><jsp:setPropertyproperty="imageNumber"name="photo"param="imageNumber"/><h1>北碚的守护神</h1>任务二应用JavaBean实现网站注册功能–任务拓展<table><formaction=""method="post"><tr><td><inputtype=submitname="up"value="上一张"></td><inputtype="hidden"name="imageNumber"value="<%=photo.getImageNumber()-1%>"></form><formaction=""method=post><td><inputtype=submitname="down"value="下一张"></td><inputtype="hidden"name="imageNumber"value="<%=photo.getImageNumber()+1%>"></tr></form></table><jsp:getPropertyproperty="playImage"name="photo"/></body>
任务三应用JavaBean实现购物车--任务演示为了进一步提高水果销售业绩,便利客户购买商品,请应用JavaBean技术实现购物车系统,主要功能包含展示水果,购买水果,添加水果到购物车,清空购物车,如图所示
水果列表购买商品任务三应用JavaBean实现购物车–知识准备ArrayList的应用任务三应用JavaBean实现购物车–知识准备封装业务的JavaBean是完成一定运算和操作功能的业务类,主要包含一些特定的方法,进行业务处理。使用JavaBean一定程度上可以将Java处理代码从JSP页面中分离。封装数据的JavaBean要将表单中的用户输入值送入数据库中相应的字段,或将数据库中的字段值取出并显示到网页中,需要一个专用的Bean与封装数据的JavaBean配合完成操作。在项目四已经详细介绍了JSP中连接数据库的多种方法和数据库进行增加、删除、修改和查询的各种操作。在同一个应用程序中的许多地方都需要进行数据库连接和数据库内容的更新操作,可以通过所学的JavaBean技术将数据库的一些操作封装到Bean中,需要用到这些功能,直接调用JavaBean动作元素来实现Bean的调用,具体的知识点,前面已介绍,这里不再一一赘述。任务三应用JavaBean实现购物车–任务实施第一步:创建封装商品信息的值JavaBeanpackagemy.bean;publicclassGoods{privateStringname;//商品名称privatefloatprice;//商品价格privateintnum;//购买商品的数量publicGoods(){
super();}publicGoods(Stringname){super();
=name;}publicGoods(Stringname,floatprice,intnum){ super();=name;
=name;
this.price=price;
this.num=num;}publicStringgetName(){returnname;}publicvoidsetName(Stringname){=name;}publicfloatgetPrice(){returnprice;}publicvoidsetPrice(floatprice){this.price=price;}publicintgetNum(){returnnum;}publicvoidsetNum(intnum){this.num=num;}}任务三应用JavaBean实现购物车–任务实施publicclassMyTools{//实现字符串转换为整型publicstaticintstrToint(Stringstr){ if(str==null||str.equals(""))
str="0"; intnum=0; try{num=Integer.parseInt(str); }catch(Exceptione){
num=0;
e.printStackTrace(); } returnnum;}第二步创建工具MyTools,主要实现中文乱码处理和类型转换//实现中文乱码处理publicstaticStringtoChinese(Stringstr){if(str==null)str="";
try{str=newString(str.getBytes("ISO-8859-1"),"utf-8");}catch(Exceptione){str="";e.printStackTrace(); } returnstr;}}任务三应用JavaBean实现购物车–任务实施publicclassShopCar{privateArrayListbuylist=newArrayList();publicArrayListgetBuylist(){
returnbuylist;}publicvoidsetBuylist(Goodslist){//添加数据 if(list!=null)
{if(buylist.size()==0)
{ Goodstemp=newGoods();
temp.setName(list.getName());
temp.setPrice(list.getPrice());temp.setNum(list.getNum());buylist.add(temp);}else 第三步
创建购物车,主要功能是添加、移除、清空购物车的操作任务三应用JavaBean实现购物车–任务实施{inti=0;
for(;i<buylist.size();i++)
{Goodstemp=(Goods)buylist.get(i);if(temp.getName().equals(list.getName())){temp.setNum(temp.getNum()+1);
break; }} if(i>buylist.size()) {Goodstemp=newGoods(); temp.setName(list.getName()); temp.setPrice(list.getPrice()); temp.setNum(list.getNum()); buylist.add(temp);}}}}
publicvoidremoveItem(Stringname)//移动数据{ for(inti=0;i<buylist.size();i++)
{Goodstemp=(Goods)buylist.get(i);if(temp.getName().equals(MyTools.toChinese(name))){
if(temp.getNum()>1)
{ temp.setNum(temp.getNum()-1);
break;}
elseif(temp.getNum()==1)
{
buylist.remove(i);} } }}任务三应用JavaBean实现购物车–任务实施publicvoidclearCar()//清除数据{buylist.clear();}}第四步:创建水果列表页面<%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%><%@pageimport="my.bean.Goods"%><%@pageimport="java.util.*"%><body><%!staticArrayListgoodslist=newArrayList();static{ String[]names={"水龙果","芒果","西瓜","哈密瓜"}; float[]prices={4.5f,6.7f,2.4f,3.5f};任务三应用JavaBean实现购物车–任务实施for(inti=0;i<4;i++){ Goodslist1=newGoods(); list1.setName(names[i]); list1.setPrice(prices[i]); list1.setNum(1); goodslist.add(i,list1);}}%><%session.setAttribute("goodslist",goodslist);response.sendRedirect("show.jsp");%></body>任务三应用JavaBean实现购物车–任务实施第五步:展示数据页面<%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%><%@pageimport="java.util.ArrayList"%><%@pageimport="my.bean.Goods"%><body><%ArrayListgoodslist=(ArrayList)session.getAttribute("goodslist");%><tableborder="1"width="450"rules="none"cellpadding="0"cellspacing="0"><trheight="50"><tdcolspan="3"align="center">水果列表</td></tr><tralign="center"height="30"bgcolor="lightgrey"><td>名称</td><td>价格</td><td>购买</td></tr><%if(goodslist==null||goodslist.size()==0){%><tr><td>没有水果了!</td></tr><%}else{for(inti=0;i<goodslist.size();i++){Goodslist=(Goods)goodslist.get(i);%><trheight="50"align="center"><td><%=list.getName()%></td><td><%=list.getPrice()%></td><td><ahref="docar.jsp?action=buy&id=<%=i%>">购买</a></td></tr><%}}%><trheight="50"><tdalign="center"colspan="3"><ahref="ShopCar.jsp">查看购物车</a></td></tr></table></body>任务三应用JavaBean实现购物车–任务实施第五步:展示数据页面<%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%><%@pageimport="java.util.ArrayList"%><%@pageimport="my.bean.Goods"%><body><%ArrayListgoodslist=(ArrayList)session.getAttribute("goodslist");%><tableborder="1"width="450"rules="none"cellpadding="0"cellspacing="0"><trheight="50"><tdcolspan="3"align="center">水果列表</td></tr>
任务三应用JavaBean实现购物车–任务实施第五步:展示数据页面<tralign="center"height="30"bgcolor="lightgrey"><td>名称</td><td>价格</td><td>购买</td></tr><%if(goodslist==null||goodslist.size()==0){%><tr><td>没有水果了!</td></tr><%}else{for(inti=0;i<goodslist.size();i++){Goodslist=(Goods)goodslist.get(i);%>
任务三应用JavaBean实现购物车–任务实施第五步:展示数据页面<trheight="50"align="center"><td><%=list.getName()%></td><td><%=list.getPrice()%></td><td><ahref="docar.jsp?action=buy&id=<%=i%>">购买</a></td></tr><%}}%><trheight="50"><tdalign="center"colspan="3"><ahref="ShopCar.jsp">查看购物车</a></td></tr></table></body>任务三应用JavaBean实现购物车–任务实施第六步:购物车页面<%@pageimport="java.util.ArrayList"%><%@pageimport="my.bean.*"%><jsp:useBeanid="myCar"class="my.bean.ShopCar"scope="session"></jsp:useBean><body><%Stringaction=request.getParameter("action");if(action==null) action="";if(action.equals("buy")){ ArrayListgoodslist=(ArrayList)session.getAttribute("goodslist"); intid=MyTools.strToint(request.getParameter("id")); Goodslist=(Goods)goodslist.get(id); myCar.setBuylist(list); response.sendRedirect("show.jsp"); }任务三应用JavaBean实现购物车–任务实施第六步:购物车页面elseif(action.equals("remove")){ Stringname=request.getParameter("name"); myCar.removeItem(name); response.sendRedirect("ShopCar.jsp"); }elseif(action.equals("clear")){ myCar.clearCar(); response.sendRedirect("ShopCar.jsp");}else{ response.sendRedirect("show.jsp"); }%></body>任务三应用JavaBean实现购物车–任务拓展1.在JSP页面显示数据库表(book)图书信息信息任务要求:通过数据库获取数据,并显示在JSP页面,如图所示第一步,首先在mysql数据库中创建book数据库,并创建如表所示的book表字段类型说明isbnVarchar(20)书的ISBNbooknameVarchar(20)书名authorVarchar(20)作者publicdateint出版日期pricedouble价格任务三应用JavaBean实现购物车–任务拓展第二步创建一个date类和bookbean,要求包含book表中的5个属性和相应的set,get方法·packagemy.bean;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.SQLException;publicclassBookBean{privateStringisbn;privateStringbookname;privateStringauthor;privateintpublicdate;privatedoubleprice;Connectionconn=null;publicStringgetIsbn(){returnisbn;}publicvoidsetIsbn(Stringisbn){this.isbn=isbn;}publicStringgetBookname(){returnbookname;}publicvoidsetBookname(Stringbookname){this.bookname=bookname;}publicStringgetAuthor(){returnauthor;}publicvoidsetAuthor(Stringauthor){this.author=author;}
publicintgetPub
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 四川省泸州市泸县2024-2025学年高一上学期1月期末考试 化学试题(含答案)
- 1017汽车行业的电子商务与的竞争力
- 2024高级母婴护理服务协议样式书
- 2025年度大型数据中心服务器及网络设备采购协议3篇
- 2024门窗安装劳务合同范本
- 2025年度35KV电力线路巡检合同模板3篇
- 2025厂房租赁居间服务及产业配套服务协议3篇
- 2024金融借款业务协议:线上贷款操作指南版B版
- 2025年企业兼职人员安全责任合同范本3篇
- 2025年度冷链物流承运商质量保障协议书3篇
- 大一中国近代史纲要期末考试试题及答案
- (完整版)钢筋加工棚验算
- 安徽省合肥市庐阳区2023-2024学年三年级上学期期末数学试卷
- 概念方案模板
- 西南交大毕业设计-地铁车站主体结构设计
- 2024年山东传媒职业学院高职单招(英语/数学/语文)笔试历年参考题库含答案解析
- 江苏省南通市崇川区2023-2024学年三年级上学期期末语文试卷
- crtd植入术护理查房
- 扫雪铲冰安全教育培训
- 人教版三年级下册必读书目《中国古代寓言故事》
- 涉密内网分级保护设计方案
评论
0/150
提交评论