课件课后练习代码经典案例_第1页
课件课后练习代码经典案例_第2页
课件课后练习代码经典案例_第3页
课件课后练习代码经典案例_第4页
课件课后练习代码经典案例_第5页
已阅读5页,还剩76页未读 继续免费阅读

下载本文档

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

文档简介

JavaSERVLET&JSP购物车(提高题选做1问通过Servlet生成一张返回给浏览器(是一张压缩为jpg格式的随机数方小知如何写Java程序web应用 图示演服务器部署某个应用,该应用添加了session验证,必须登录才能浏览器向login.jspjsp会创建一个sessionJsp返回给浏览器一个登陆页面(html、js、该页面包含一行代码<imgsrc="checkCode">(checkCode是一个请求地址)6)同时,CheckCodeServlet发送给浏览器一张(验证数字+)此时,用户在浏览器上看到完全的登录页用户填写完表单后提交,LoginServlet从Session对象中取到验证数字案例演<imgsrc="checkCode">新建部署项服务器立即打印 说明浏览器页面test.html时,在执行<imgsrc="checkcode">语句时向服务器发送了实CheckcodeServlet代码如下packageimportimportimportimportimportimportimportimportimportimportimportimportpublicclassCheckcodeServletextendsHttpServlet{publicvoidservice(HttpServletRequestHttpServletResponsethrowsServletException,IOException/*1设置服务器返回文件的格式为jpg格式 //常见的还有:text/html和/*2画图//BufferedImage:内存映象对BufferedImageimagenewBufferedImage(60,Randomr=new//获得画Graphicsg=//设置背景颜g.setColor(new//填充背景颜g.fillRect(0,0,60,//设置前景颜g.setColor(newStringnumber=上g.drawString(number,5,/*3并输出OutputStreamosresponse.getOutputStream();//JPEGImageEncoderencoder}}隐web.xml代码如下<?xmlversion="1.0"encoding="UTF-<web-app"h/xml/ns/j2ee/web-<servlet-name>CheckcodeServlet</servlet-<servlet-class>web.CheckcodeServlet</servlet-class><servlet-><servlet-name>CheckcodeServlet</servlet-<url-pattern>/checkcode</url-</servlet-></web-隐test.html代码如下<metahttp-equiv="Content-content="text/html;charset=UTF-<title>Inserttitle<bodystyle="font-size:30px;"><imgsrc="checkcode"隐每次刷新会生成一个新的随机扩为用户页面加入拷贝day06的session修改添<%@pagepageEncoding="utf-contentType="text/html;charset=utf-8"<metahttp-equiv="Content-Type"content="text/html;charset=UTF-<linkrel="stylesheet"type="text/css"href="css/style.css"<div<div<div<div 2009/11/20<br<div<h1<a<div<div<p<formaction="regist.do"<tablecellpadding="0"cellspacing="0"<tdvalign="middle"用户名<tdvalign="middle"<inputtype="text"name="username"Stringmsg <spanstyle="color:red;font-<%=(msg==null?"":<tdvalign="middle"真 <tdvalign="middle"<inputtype="text"class="inputgri"name="name"<tdvalign="middle" <tdvalign="middle"<inputtype="password"class="inputgri"name="pwd"<tdvalign="middle" <tdvalign="middle"男<inputtype="radio"name="gendar"value="m"女<inputtype="radio"name="gendar"<tdvalign="middle" <imgid="img1"src="checkcode"<a

='checkcode?'+Math.random();">换一张<tdvalign="middle"<inputtype="text"name="number"<inputtype="submit"value="确<div<div隐拷贝CheckedServlet到项目packageimportimportimportjava.awt.image.BufferedImage;importjava.io.IOException;importimportimportimportimportimportimportimportimportpublicclassCheckcodeServletextends{publicvoidservice(HttpServletRequestHttpServletResponsethrowsServletException,IOException//BufferedImage:内存映象对BufferedImageimagenewBufferedImage(60,Randomr=new//获得画Graphicsg=newr.nextInt(255),g.fillRect(0,0,60,g.setColor(newStringnumber=g.drawString(number,5,//获得字节输出流,因为要输出的是图像压缩//的字节数组,所以,不能用PrintWriterOutputStreamos=// 压缩,输出JPEGImageEncoderencoder修改部署应测点击“换一张”能验修改绑定生成的验证数字到Session注意:给用户看的是+验证数字;放入Session对象的是验证数修改添加“在时比较用户输入验证数字和Session中取出的验证数字”的代packageimportimportimportimportimportimportimportimportimportimportimportimportimportpublicclassActionServletextendsHttpServlet{publicvoidservice(HttpServletRequestHttpServletResponsethrowsServletException,IOExceptionrequest.setCharacterEncoding("utf-Stringuri=Stringpath=uri.lastIndexOf("/"),if(path.equals("/regist"))/*1先比 //1.1表单提交Stringnumber1=//1.2session中绑订HttpSessionsession=Stringnumber2(String)//用于测System.out.println("number1:"+System.out.println("number2:"+//当用户禁 ,session将失效,number2为(number2!=nullnumber2.equals(number1))StringusernameUserDAOdao=newtryUseruser=if(user==null)//用户名不存在,插入user=new}else//用户名存在,则提示request.setAttribute("regist_error","用户名已经存在request,}}catch(Exceptione)thrownew}}else//错"错误}}}elseif(path.equals("/login"))Stringusername=request.getParameter("username");Stringpwd=request.getParameter("pwd");UserDAOdao=newtryUseruser=if(user!=null&&user.getPwd().equals(pwd))录成session中绑订HttpSessionsession=System.out.println("sessionId:"+session.setAttribute("user",}else录失request.setAttribute("login_error","用户名或 错 }catch(Exceptione)thrownew}}elseif(path.equals("/logout"))HttpSessionsession=}}}隐修改加入验证失败的<%@pagepageEncoding="utf-contentType="text/html;charset=utf-8"<metahttp-equiv="Content-Type"content="text/html;charset=UTF-<linkrel="stylesheet"type="text/css"href="css/style.css"<div<div<div<div 2009/11/20<br<div<h1<a<div<div<p<formaction="regist.do"<tablecellpadding="0"cellspacing="0"<tdvalign="middle"用户名<tdvalign="middle"<inputtype="text"name="username"Stringmsg<spanstyle="color:red;font-<%=(msg==null?"":<tdvalign="middle"真实<tdvalign="middle"<inputtype="text"class="inputgri"name="name"<tdvalign="middle":<tdvalign="middle"<inputtype="password"class="inputgri"name="pwd"<tdvalign="middle":<tdvalign="middle"男<inputtype="radio"name="gendar"value="m"女<inputtype="radio"name="gendar"<td<tdvalign="middle" <imgid="img1"src="checkcode" <a ='checkcode?'+Math.random();">换一张<tdvalign="middle"<inputtype="text"name="number"Stringmsg2 <spanstyle="color:red;font-<%=(msg2==null?"":<inputtype="submit"value="确认"/><div<div隐重新部测成功,跳入登录加干扰线或干扰点(防止机器人识别修改购物车(提高题选做问购物车的主要功能商品列商查看购删除购物车当中的商修改购物车当中的商品的删除购物车中的所有商购物车商品总先需要实现商品列表和商品功能方SQL>createidbigintprimarykeymodelprodDescpricedouble);SQL>insertvalues('x200','x200.jpg','还算便宜',2000);insertvalues('x500','x500.jpg','性价比最好',4000);insertvalues('x600','x600.jpg','性能不错',6000);step3Computer实体类step4ComputerDAO类step5ComputerDAOstep6ActionServletstep7computer_list.jsp建表&&准备数新建web工程新建b.执行数据实体类&&DAO操作根据数据库表新建实体 packagepublicclassComputerprivatelongprivateStringprivateStringpic;privateStringprodDesc;privatedoubleprice;publicComputer()publicComputer(Stringmodel,Stringpic,StringprodDesc,doublethis.model=this.pic=dDesc=this.price=publiclonggetId(){returnpublicvoidsetId(longid){this.id=id;}publicStringgetModel(){returnmodel;}publicvoidsetModel(Stringmodel){this.model=publicStringgetPic(){returnpublicvoidsetPic(Stringpic){this.pic=publicdoublegetPrice(){returnpublicvoidsetPrice(doubleprice){this.price=price;}publicStringgetProdDesc(){returnprodDesc;}publicvoidsetProdDesc(StringprodDesc){dDesc=隐导入jar拷贝packageimportimportimportjdbc工具类,提供获得连接、关闭连接的@authorpublicclassDBUtilpublicstaticConnectiongetConnection()throwsException{Connectionconn=null;try{conn= }catch(Exceptione)throw return publicstaticvoidclose(Connectiontry}catch(SQLExceptione)}}}publicstaticvoidmain(String[]throwsException//TODOAuto-generatedmethod}}隐新 方 packageimportimportjava.sql.PreparedStatement;importjava.sql.ResultSet;importimportimport import publicclassComputerDAOpublicList<Computer>findAll()throwsList<Computer>computersnewConnectionconnPreparedStatementprep"select* ResultSetrstComputercnew}return}publicComputerfindById(longid)throwsComputerc=ConnectionconnPreparedStatementprep"select* puterwhereprep.setLong(1,ResultSetrstc=new隐}return}} puterDAO测试很重要!拷贝css&html到项目请shop拷 puter_list.html到项目下,改名为新建packagepublicpackagepublicvoidservice(HttpServletRequestimportimportimportimportimportimportimportimportimportimportimportpublicclassActionServletextends{HttpServletResponsethrowsServletException,IOExceptionStringuri=StringpathComputerDAOdaonewtryList<Computer>computersrequest.setAttribute("computers",.forward(request,}catch(Exceptione)thrownew}}}}隐<?xmlversion="1.0"encoding="UTF-<web-app"h/xml/ns/j2ee/web-<servlet-name>ActionServlet</servlet-<servlet-class>web.ActionServlet</servlet-<servlet-><url-pattern>*.do</url-</servlet-</web->隐修改<%@pagepageEncoding="utf-8"contentType="text/html;charset=utf-<%@pageimport="java.util.*,entity.*"<metahttp-equiv=Content-Typecontent="text/html;charset=utf-8"<linktype="text/css"rel="stylesheet"<body <div<tablecellSpacing=6cellPadding=2width="100%"<tableclass="guide"cellPadding="0"<ahref='#'>主页 <ahref='#'>笔记本订购 ;商品列<br<tableclass="tableborder"cellPadding="0"width="100%"<tr<tdclass="altbg1"<b>型号<tdclass="altbg1"<b>产品<tdclass="altbg1"<b>产品说明<tdclass="altbg1"<b>产品报价<tdList<Computer>computersfor(intComputerc=<td <td<imgsrc="img/d007/<%=c.getPic()%>"height="90"<td<td<td<a <br<inputclass="button"value="查看购物name="settingsubmit"隐部署应测实现2:商品**不同用户数据存放在不同Session图示演示流程用户发送请求服务器创建Session对不再直接session的方法,而是绑定一个Cart对用户商品时,只调用Cart的add方法进行操作,而不再直接操作删除(修改)时也一如此,我们以后只要操作Cart类的方法就OK了,不再直接操作Session。这是一个经典的计Cart和CartItem伪实现步新建商品条目类,作用是为了更方便实现购物车Cart的实packageimport商品条目类,其作用是更方便实现Cart类的操作@authorpublicclass{privatec;privateintpublicComputergetC(){returnpublicvoidsetC(Computerc){this.c=publicintgetQty(){returnpublicvoidsetQty(intqty){this.qty=隐新建packageimportimport *购物*实现了商品的添加、删除、列表、清空、*@author*publicclassCart//items存放用 的所有商privateList<CartItem>itemsnewpublicbooleanadd(CartItem//先判断有没 过该商品,如果买过//则返回false,否则,添加到items集合for(intCartItemcurr=if(curr.getC().getId()==//已return return publicList<CartItem>return publicvoiddelete(longfor(intCartItemcurr=if(curr.getC().getId()==return; publicvoid publicvoidmodify(longid,intfor(intCartItemcurr=if(curr.getC().getId()==return; publicdoubledoubletotal=for(intCartItemcurr=total+=curr.getQty()* return 隐隐packageimportimportimportimportimportimportjavax.servlet.http.HttpServletResponse;importjavax.servlet.http.HttpSession;importimportimportimportpublicclassActionServletextendsHttpServletpublicvoidservice(HttpServletRequestHttpServletResponseresponse)throwsServletException,IOException{Stringuri=StringpathComputerDAOdaonewtryList<Computer>computersrequest.setAttribute("computers",.forward(request,}catch(Exceptione)thrownew}}else longid= ComputerDAOdao new try Computerc= CartItemitem=new HttpSessionsession Cartcart= if(cart==null){ //如果是第一 ,需要先创建好cart对 //然后绑订到session cart=new session.setAttribute("cart", booleanflag= request.setAttribute("buy_error"+"已过该商品隐.forward(request,}else{//没有买过,返回到商品}}catch(Exceptione)thrownew}}}}测试a.地址跳向c.继续点击“”,出现提示“已经过该产品功能实现2.3参考方案2.4购物车的主要功能商品列商查看购删除购物车当中的商修改购物车当中的商品的删除购物车中的所有商购物车商品总修 添加查看购物车地拷贝cart.jhtml到项目中,修改为<%@pagepageEncoding="utf-8"contentType="text/html;charse

温馨提示

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

评论

0/150

提交评论