华北电力大学科技学院
实 验 报 告
实验名称  基于J2EE架构的小型应用系统的设计与实现                 课程名称  J2EE开发平及程序设计
学生姓名:     号:              成    绩:
指导教师:陈晴           实验日期:2011-10
| |
| |
专业班级:                 学
华 北 电 力 大 学 实 验 报 告
一、 实验目的及要求 学生在了解Java语言的基础上了解并掌握J2EE的构架及相关技术,重点掌握核心技术中最基本的Servlet、JSP、Javabean、JDBC,初步具有基于J2EE平台的软件开发能力、设计并实现小型应用系统 1.设计并实现简单的聊天室:1)要求使用JSP或者servlet,使用session控制2)至少3个页面3)使用application对象或者servletcontext保存聊天信息4)能进行用户登录验证5)能显示在线用户名及数量6)供多个用户同时聊天 2. 实现购物车  1)使用servlet、JSP实现购物车,要求使用java的集合对象、session控制,购物车在结算前能进行购买数量的反复修改。 2)使用javaBean对购物车进行重新整合实现,实现表示层和业务逻辑层的分离。 3)选作:使用数据库保存货物和购物订单 二、所用仪器、设备 PC机,基于window xp 或者windows server 平台,使用JDK+Netbeans+MySQL为开发工具 三实验原理 对于聊天室: 1先做一个登录界面网页Login.html; 使用javascript进行账号和密码是否为空的检查,而不用jsp来检查,实现了客户端和服务器端脚本的分离 2登陆验证LoginCheck.jsp; 开启会话页面:本页用于获得login.html输入的用户名和密码 3主谈天页面ChatRoom.jsp;   form表单用于输入提交处理谈天信息 4谈天信息处理Say.jsp;   放到application中,供主谈天页面ChatRoom.jsp预示谈天内容 5退出处理Out.jsp; 6防止重复登录,也就是错误处理logcheck.jsp  也就是将数据写入session,以后用户列表使用java的集合类型ArrayList存储   对于购物车用:会话实现购物车! 2个Servlet: 1) 水果订购的订单——catalog.java  退出应用前,可以多次订购,购物车(内的商品数量)保存在session中可以累计商品数量, 2) 购物车结算——cart.java 第   页 共   页
华 北 电 力 大 学 实 验 报 告
1.呈现订单页面   接受用户的输入,使用session控制,使之与购物车结算页面为一个session内 session.getAttribute(“cart”) 2.首次调用该页面时,购物车cart不存在,  创建购物车,并存入session 用hash表存储购物车cart cart=new HashMap(); 并置几种商品均为0 cart.put(“apple”,0); 在session对象新建cart属性,用于存储购物车 Session.setAttibute(“cart”,cart); 3.更新购物车 若cart存在,则从requset中获得订单页面录入 的商品的数量累加,并更新购物车  用javabean实现网页是计数,在聊天室里,用javabean来实现在线人数和历史访问人数的记录,可以类比cookie。  第   页 共   页
华 北 电 力 大 学 实 验 报 告
四、 实验方法与步骤 聊天室关键代码: 登录页面Login.jsp,就是进步前辈行一下初始化,之后重定向到主页面ChatRoom.jsp,代码如下:  <%@page import=\"java.util.*\"%>  <% ArrayList al_say=new ArrayList(); //始于ArrayList数组www.itstudy.cn  application.setAttribute(\"say\ response.sendRedirect(\"ChatRoom.jsp\");  %>  主谈天页面ChatRoom.jsp有两部门:form表单用于输入提交处理谈天信息;另外一部门用于预示谈天内容。  <%@page contentType=\"text/html;charset=GBK\"%>  <%@page import=\"java.util.*\"%>  
  
  <% ArrayList al_say=new ArrayList();  al_say=(ArrayList)application.getAttribute(\"say\");  for (int says=0;says
华 北 电 力 大 学 实 验 报 告{ %>  <%=al_say.get(says)%>
  <% } %>  谈天信息处理页面say.jsp  实现接收提交处理的谈天信息,放到application中,供主谈天页面ChatRoom.jsp预示谈天内容  <%@page contentType=\"text/html;charset=GBK\"%>  <%@page import=\"java.util.*\"%>  <% String say=new String (request.getParameter(\"say\").getBytes(\"iso-8859-1\" ));  ArrayList al_say=new ArrayList();  al_say=(ArrayList)application.getAttribute(\"say\");  al_say.add(say);  response.sendRedirect(\"ChatRoom.jsp\"); %> <%--防止用户重复登录logcheck.jsp--%>  <%@ page language=\"java\" import=\"java.util.*\" contentType=\"text/html;charset=GB2312\"%>        
    <%   String promt=new String();     request.setCharacterEncoding(\"gb2312\");     String Name=request.getParameter(\"UserName\");     boolean hasLog=false;     ArrayList names=(ArrayList)session.getAttribute(\"lognames\");     if(names==null){                  names=new ArrayList();  names.add(Name);  session.setAttribute(\"lognames\ promt=\"欢迎\"+Name+\"登录!你的名字已经写入session!\";      hasLog=true;     }     else{ for(int i=0;i           CartServlet.java HttpSession session=request.getSession();         HashMap cart=(HashMap)session.getAttribute(\"cart\");         if(cart==null){             cart=new HashMap();             cart.put(\"apple\            cart.put(\"banana\            cart.put(\"grape\            session.setAttribute(\"cart\          }       request.setCharacterEncoding(\"GB2312\");       String apple_amount=request.getParameter(\"apple_amount\");       int new_apple_amount=Integer.parseInt((String)cart.get(\"apple\"))+Integer.parseInt(apple_amount);        cart.put(\"apple\        session.setAttribute(\"cart\      //显示购物车内容       out.println(new_apple_amount+\"斤苹果\"+new_banana_amount+\"斤香蕉\"+new_grape_amount+\"斤葡萄\");       out.println(\"
\");       out.println(\"回到水果店\"); catalog.jsp <%@page contentType=\"text/html\" pageEncoding=\"GB2312\"%> <%@page import=\"javax.servlet.*,java.util.HashMap\"%>     <%   int itemCount=0;         HashMap cart=(HashMap)session.getAttribute(\"cart\");         if(cart!=null)             itemCount=cart.size(); //物品的种类        %>                        简单购物车                    第   页 共   页华 北 电 力 大 学 实 验 报 告
                  五、 实验结果与数据处理 聊天室:  第   页 共   页华 北 电 力 大 学 实 验 报 告
第   页 共   页
华 北 电 力 大 学 实 验 报 告
购物车:  第   页 共   页
华 北 电 力 大 学 实 验 报 告
六、结论    由于对一些语句和语法的了解没有那么透彻,老师给的两个实验,虽然都不是非常难的,但是写出来的东西也是好多错误,再加上最终还是没能把实验给做好,尽管实验时间已经过去了,但是学习永无止步,我还是要继续钻研,争取把课本上的这些东西都搞懂了,对各个页面的跳转关系,还有每条语句之间的联系都搞懂了,不要最后一事无成。 通过对J2EE的实验,我得出了以下结论: 1, 自身java语言的功底太薄弱,使得在写网页时事倍功半,浪费了好多时间。 2, 对J2EE本身的原理了解的不是非常透彻,在做实验时,要是没有老师讲过的实例,我是根本做不出来的。 3, 还有就是对课程本身的理解还是不够的,在做实验时也充分说明了这个。 总结来,以下是我认为走上JavaEE道路必备的技能:   1)做一俩个好项目,比去一个好公司更重要。   2)认识一些有经验的人,可以寻求他们帮助。   3)真正对软件有兴趣。   4)经常看书是,能看英语书籍最好,这样能先睹为快。   5)还有一个我不太确认是否正确的就是“多花些时间看看官方文档,了解正统的JavaEE知识。
第   页 共   页