J2EE聊天室和购物车实验报告_第1页
J2EE聊天室和购物车实验报告_第2页
J2EE聊天室和购物车实验报告_第3页
J2EE聊天室和购物车实验报告_第4页
J2EE聊天室和购物车实验报告_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

实验报告||实验名称实现聊天室和购物车课程名称JavaEE编程技术||实验目的及要求学生在了解Java语言的基础上了解并掌握J2EE的构架及相关技术,重点掌握核心技术中最基本的Servlet、JSP、Javabean、JDBC,初步具有基于J2EE平台的软件开发能力、设计并实现小型应用系统1.设计并实现简单的聊天室:1)要求使用JSP或者servlet,使用session控制2)至少3个页面3)使用application对象或者servletcontext保存聊天信息4)能进行用户登录验证5)能显示在线用户名及数量6)供多个用户同时聊天7)选作:数据库存用户名、注册、登录2.实现购物车1)使用servlet、JSP实现购物车,要求使用java的集合对象、session控制,购物车在结算前能进行购买数量的反复修改。2)使用javaBean对购物车进行重新整合实现,实现表示层和业务逻辑层的分离。3)选作:使用数据库保存货物和购物订单、用户登录、注册二、所用仪器、设备PC机,基于windowxp或者windowsserver平台,使用JDK+Netbeans+MySQL为开发工具三、实验原理1.设计结构框架如下图2.聊天室由index.jsp,logincheck.jsp,room.jsp,say.jsp,out.jsp构成。购物车由index.jsp,shopping.jsp,sure.jsp构成。控制层是用来实现各个表示层间的跳转以及对数据的操作。数据层由session和application构成。3.javabean实质是一个java类;使用javabean可以实现代码的重复利用,减少代码的使用量。out.jsp//将用户状态改为下线,即将用户从application中删除Say.jspout.jsp//将用户状态改为下线,即将用户从application中删除Say.jsp//获得和处理聊天内容并转回room.jspIndex.jsp//登录页面Logcheck.jsp//验证用户名,重定向到聊天室Room.jsp//聊天室,接收和显示聊天内容Index.jsp//商场主页Shoping.jsp//将所买的物品的数量及复选框的选择情况记录到session,并通过调用javabean计算物品总花费。此时可以点确认付款或返回index.jsp进行修改Sure.jsp//显示“欢迎下次光临”Reture.jsp//返回shoping.jsp四、实验结果1.聊天室 登陆聊天室张三和李四同时在线李四退出2、购物车五、结论通过实验,我进一步理解和掌握了JAVAEE的编程思想.实验中,由于第一次接触网络编程,写代码很不规范,经老师的指点,受益良多.对于本次实验的一些改进思想:聊天器:聊天器我已经实现了密码的认证,但是用户信息是存储与application里面的,不能长期保存,应该放入数据库.功能方面应该增加密码保护和找回密码的功能,如果可能,最好再加入加载好友和私聊功能.购物车:购物车我用session实现了可以返回修改,但是商品是静态的,应该加入数据库,实现商品的动态添加和删除.另外,购物车最好可以实现登录功能.六、附录代码聊天室的实现:Index.html<html><head><title>login</title><metahttp-equiv="content-type"content="text/html;charset=gb2312"></head><body><formaction="logcheck.jsp"method="post">姓名<inputtype="text"name="Username"value="">密码<inputtype="text"name="Password"value=""><inputtype="submit"name="submit"value="提交"></form></body></html>Logcheck.jsp<html><head><metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"><title>JSPPage</title></head><body><%request.setCharacterEncoding("gb2312"); StringUsername=(String)request.getParameter("Username");ArrayListUsers=(ArrayList)application.getAttribute("Users");Stringtem=""; if(Users==null){Users=newArrayList(); Users.add(Username);application.setAttribute("Users",Users);session.setAttribute("Username",Username);tem=Username+",欢迎登入!";session.setAttribute("tem",tem); } else{booleanhasLog=false;for(inti=0;i<Users.size();i++){ Stringtemp=(String)Users.get(i); if(temp.equals(Username)){session.setAttribute("Username",Username);tem=Username+",您已登入!欢迎回来";session.setAttribute("tem",tem); hasLog=true; }session.setAttribute("Username",Username); }if(!hasLog){ Users.add(Username); application.setAttribute("Users",Users);session.setAttribute("Username",Username);tem=Username+",欢迎登入!";session.setAttribute("tem",tem); }}response.sendRedirect("room1.jsp");%></body></html>Room1.jsp<html><body><%response.setHeader("refresh","10");%><h3><%=session.getAttribute("tem")%></h3>已有的聊天信息:<hr/><textareaname="chatListBox"rows="20"cols="50"><%ArrayListapp=(ArrayList)application.getAttribute("app");if(app!=null){%><%Iteratorite=app.iterator();while(ite.hasNext()){Stringinfo=(String)ite.next();%><%=info%><%}}%></textarea><formaction="say.jsp"method="post">输入聊天信息:<br/><inputtype="text"name="talk"size="30"align="left"><inputtype="submit"value="确认"><inputtype="reset"value="清空"></form><formaction="out.jsp"method="post"><inputtype="submit"align="left"value="退出"></form><%ArrayListUsers=(ArrayList)application.getAttribute("Users");out.println("在线人数:"+Users.size());%>在线人员列表:<%for(inti=0;i<Users.size();i++){%><%=Users.get(i)%><%}%></body></html>Say.jsp<html><head><metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"><title>JSPPage</title></head><body><%response.setContentType("text/html;charset=GB2312");request.setCharacterEncoding("gb2312");Stringinfo=session.getAttribute("Username")+":"+(String)request.getParameter("talk");ArrayListappList=null;appList=(ArrayList)application.getAttribute("app");if(appList!=null){appList.add(info);}else{appList=newArrayList();appList.add(info);}application.setAttribute("app",appList);response.setCharacterEncoding("gb2312");response.sendRedirect("room1.jsp");%></body></html>Out.jsp<html><head><metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"><title>退出页面</title></head><body><%ArrayListUsers=(ArrayList)application.getAttribute("Users");Stringexitname=(String)session.getAttribute("Username");Stringtemp=newString();for(inti=0;i<Users.size();i++){temp=(String)Users.get(i);if(temp.equals(exitname)){Users.remove(i);break;}}%><h1align="center">感谢使用!</h1><h3align="center"><ahref="index.html">再次登入</a></h3></body></html>购物车实现:Index.jsp//复选框和购买量我实现了动态显示<formaction="shopping.jsp"method="post"><table><tr><tdalign="center"><b>种类</b></td><tdalign="center"><b>单价</b></td><tdalign="center"><b>数量</b></td></tr><tr><br><%Stringac=(String)session.getAttribute("applewaschecked");%><%if(ac==null)ac="0";%><tdalign="center"><inputtype="checkbox"name="checkbox1"value="苹果"<%=ac%>>苹果</td><tdalign="center">3</td><%Stringa=(String)session.getAttribute("apple");%><%if(a==null)a="0";%><tdalign="center"><inputtype="text"name="apple_count"value=<%=a%>></td></tr><tr><%Stringb=(String)session.getAttribute("banana");%><%if(b==null)b="0";%><%Stringbc=(String)session.getAttribute("bananawaschecked");%><%if(bc==null)bc="0";%><tdalign="center"><inputtype="checkbox"name="checkbox1"value="香蕉"<%=bc%>>香蕉</td><tdalign="center">4</td><tdalign="center"><inputtype="text"name="banana_count"value=<%=b%>></td></tr><tr><%Stringg=(String)session.getAttribute("grape");%><%if(g==null)g="0";%><%Stringgc=(String)session.getAttribute("grapewaschecked");%><%if(gc==null)gc="0";%><tdalign="center"><inputtype="checkbox"name="checkbox1"value="葡萄"<%=gc%>/>葡萄</td><tdalign="center">5</td><tdalign="center"><inputtype="text"name="grape_count"value=<%=g%>></td></tr></table><hr><inputtype="reset"value="重置"name="Reset"><inputtype="submit"value="提交"name="Submit"></form>Shopping.jsp<%request.setCharacterEncoding("gb2312");session.setAttribute("apple",request.getParameter("apple_count").toString());session.setAttribute("banana",request.getParameter("banana_count").toString());session.setAttribute("grape",request.getParameter("grape_count").toString());session.setAttribute("applewaschecked","0");session.setAttribute("bananawaschecked","0");session.setAttribute("grapewaschecked","0");String[]cheke={"applewaschecked","bananawaschecked","grapewaschecked"};ArrayListcount=newArrayList();Stringa=newString();Stringb=newString();Stringc=newString();a=request.getParameter("apple_count").toString();count.add(a);b=request.getParameter("banana_count").toString();count.add(b);c=request.getParameter("grape_count").toString();count.add(c);ArrayListfuitcost=newArrayList();fuitcost.add(3);fuitcost.add(4);fuitcost.add(5);shop.setCount(count);shop.setfuitcost(fuitcost);shop.setAllcost();%><br>总物品:苹果香蕉葡萄<br>价格:<%for(inti=0;i<fuitcost.size();i++){%><%=fuitcost.get(i).toString()%><%;}%><br>已买物品:<%//ArrayListcatfuit=newArrayList();String[]catfuit=request.getParameterValues("checkbox1");for(inti=0;i<catfuit.length;i++){%><%=catfuit[i]%><%;}%><br>数量:<%for(inti=0;i<count.size();i++){if(count.get(i).toString().equals("0"))continue;session.setAttribute(cheke[i],"checked");%><%=count.get(i).toString()%><%;}%><br>费用:

温馨提示

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

评论

0/150

提交评论