南昌航空大学基于JSP网上饰品系统的课程设计_第1页
南昌航空大学基于JSP网上饰品系统的课程设计_第2页
南昌航空大学基于JSP网上饰品系统的课程设计_第3页
南昌航空大学基于JSP网上饰品系统的课程设计_第4页
南昌航空大学基于JSP网上饰品系统的课程设计_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

1、JSP 网上饰品店系统(论文) 1 南昌航空大学信息工程学院课程设计南昌航空大学信息工程学院课程设计 课程设计题目:网上饰品店系统课程设计题目:网上饰品店系统 开设时间:开设时间: 20122012 学年第一学期学年第一学期 授课班级:授课班级: 网络工程网络工程 2 2 班班 指导教师:聂云峰指导教师:聂云峰 学生姓名:黎江超学生姓名:黎江超 学学 号:号:0904621309046213 同组人:金婷、曾飞、魏阳同组人:金婷、曾飞、魏阳 JSP 网上饰品店系统(论文) 2 摘 要 JAVA 语言是目前 Internet 上大型的 WEB 应用程序开发时使用得最热门的编程语言, 本文描述了

2、JAVA 和 JSP 技术的特点以及在互联网上的使用情况,介绍这两种技术的重 要编程方法和两者之关的联系,并完成一个基于这种技术的网上饰品系统。 目 录 前 言.2 第 1 章 概 述.3 1.1 JSP 简介和运行原理.4 1.2 开发背景.5 第 2 章 需求分析.4 2.1 系统组成:.5 2.2 系统要求配置.5 第 3 章 系统设计.6 3.1 数据库设计.7 3.1.1 数据库需求分析 .7 3.1.2 数据库逻辑结构设计 .7 第 4 章 详细设计.10 4.1 系统概述.10 411 用户界面部分.10 JSP 网上饰品店系统(论文) 3 412 管理界面部分 .10 42 业

3、务逻辑详细代码. .10 421 用户登录和注册. .10 422 商品显示以及分类处理. .13 423 购物车模块的实现. .16 4.3 客户端界面的设计和实现. .18 第 5 章 系统测试.25 5.1 数据库连接.25 第 6 章 总结.26 参考文献.27 前 言 随着计算机、 网络 、通信技术的发展和日益融合,以及 Internet 的普及应用,包 括电子商务(EC) 、视频会议、网上饰品等在内的一些应用已开始引起社会的关注,并 逐步走进人们的日常生活。 JSP 是 Sun 公司推出的一种网站开发技术,Sun 公司借助自己在 Java 上的不凡造诣, 又把人们引进 JSP 时代

4、,JSP 即 Java Server Page,它可以在 Servlet 和 JavaBean 的 支持下,完成功能强大的 Web 应用程序。所以,在我的课程设计中,我采用了 JSP 作为 开发工具,构建了一个能实现简单的电子商务的小型动态商务网站网上饰品销售系 统。 通过这次的课程设计,我了解了目前流行的动态商务网站的构成和运作原理,掌握 了用 JSP 构建动态网站的相关知识和技术原理,锻炼了自己的动手实践能力。 JSP 网上饰品店系统(论文) 4 第 1 章 概 述 1-1 JAVA 语言简介 Java 是一种简单易用、完全面向对象、具有平台无关性且安全可靠的主要面向 Internet 的

5、开发工具。自从 1995 年正式问世以来,Java 的快速发展已经让整个 Web 世 界发生了翻天覆地的变化。在早期,Java 比较多的用在浏览器上,插入到网页中(即是 Java Applet 程序),成为最灵活、最强大的网页多媒体的载体,但由于 Java 虚拟机相 对于个人电脑而言,有占用资源大,安全性相对较差等缺点,Applet 逐渐的被后起之秀 Flash 所替代,但随着 Java Servlet 的推出,Java 在电子商务方面开始崭露头角,最 新的 JSP(Java Server Page)技术的推出,更是让 Java 成为基于 Web 的应用程序的首选 开发工具,目前的 Java

6、技术已成为所有大型电子商务项目的必然选择。 1-2 开发背景 伴随着电子商务技术的不断成熟,电子商务的功能也越来越强大,注册用户可以在 网上搜索购买到自己想要的各种商品,初步让人们体会到了足不出户,便可随意购物的 快感。我们的课程设计也就正是一个电子商务系统的开发-网上饰品店销售系统。 JSP 网上饰品店系统(论文) 5 第 2 章JAVA 技术简介 2-1 在 Windows 平台下配置 JSP 运行环境 为了使系统能够正常运行 JSP 和相关程序,必须先配置好能够使用 JSP 的 WEB 服务 器。各种能使用 Servlet 技术的 WEB 服务器中,运用得最多的是 Tomcat 服务器,

7、如果 仅是为了用于测试程序,Tomcat 的配置则显得太复杂了,本文推荐使用 Resin 服务器, Resin 据称是最快的 Servlet 运行平台,不过限于单站点,对传统的一些网关支持不是 很好,因此对于商业网站而言,不是最好的选择,不过如果仅是为了测试 Servlet,这 个 Resin 的安装可谓有点傻瓜化。 Resin 比较新的版本是 3.x,但目前实际用的 2.x 版本的比较多,Resin 可到官方站 点下载: 2.1.13 版本,文件位置: 如果你的电脑上已装好 JDK,直接把下载的 resin 包解压到 D:盘根目录解压后即 D:resin-2.1.13 为服务器的目录,把本文

8、的源程序 jspweb 文件夹也放在 D:盘根目录, 即是 D:jspweb 为网站根目录,打开 D:resin-2.1.13conf resin.conf(是一份 XML 形式的配置文件) ,找到 doc 这里改为 D:jspweb,然后运行 D:resin- 2.1.13binhttpd.exe,在浏览器输入 http:/localhost:8080/j1.jsp,看到了“我是 JSP!”的字样了吧,你的 Servlet 服务器就这样配置成功了,为了能编译 Servlet 类, 还需要做的事情是:把 D:resin-2.1.13lib 加入到 windows 的 CLASSPATH 的环境

9、变量 中。 2-2 JSP、ASP 和 PHP 技术之比较 JSP 与 ASP、PHP 技术都是目前网上最流行的在服务器端运行的脚本技术,JSP 能用 JavaBeans 技术封装,达到商业逻辑的目的,ASP 对应之的是 COM 组件,因此两者都能 用于开发商业逻辑,PHP 则更像于一个纯脚本,仅适合于普通的网站开发,而不能用作 商业逻辑而被冠以“Person Home Page”的名称,这是最贴切不过的了。 JSP 与 ASP 相比,JSP 具有跨平台、安全、强大的可伸缩性的特点,而果硬要挑一 些毛病,JSP 相对别的脚本更加难掌握,因为精通 JSP 必须精通 Java 语言,对于中小型 项

10、目,我们要考虑开发人员、开发速度、开发成本等问题,在这方面 ASP 和 PHP 会比 JSP 更容易胜出。 值得一提的是,ASP 的最新版本 ASP.NET 与原来的 ASP 性质完全是不同的,它和 JSP 一样,都是一种编译性的脚本,本身完全与强大的 Net 框架结合,完美的支持 Xml 的各种应用,与昔日的 ASP 不可同日而语,但是无论是 ASP 还是 ASP.NET,它都摆脱不 了 Windows 平台本身,这是 ASP 一个致命的缺点。 JSP 网上饰品店系统(论文) 6 2-3 JSP 语法基础 2-3-1 嵌入了 JAVA 语言的 HTML 文件 把下面网页保存为:j1.jsp

11、这就成了一个最简单的 JSP 页面了,其中 是声明输出的文件类型为 text/html,字符编码是 gb2312,在 JSP 中里的内容表示 的是 JSP 编译时的一些选项或向客户端发送的头信息的 JSP 指令,里的内容就是 Java 语言,如果有必要,更改适当设定,还可以使用 javascript 作为脚本,不过实际应用 中很少有人这样做。 2-3-2 request、out 获得一个会话的值 session.getValue(名称); 2-3-4 JSP 其它基本内置对象 JSP 有九大内置对象,除了上述四种以外,还包括: JSP 网上饰品店系统(论文) 7 pageContext 网页的

12、属性是在这里管理 application Servlet 正在执行的内容 config Servlet 的构架部件 page JSP 网页本身 exception 针对错误网页,未捕捉的例外 这些基本的内置对象是构成 JSP 页面的重要因子。 第 3 章 系统设计 本系统采用三层架构设计,它的工作原理如图 3-1 所示。 图 3-1 三层架构模型 采用三层构架以后,用户界面层通过统一的接口向业务层发送请求,业务层按自己 的逻辑规则将请求处理之后进行数据库操作,然后将数据库返回的数据封装成类的形式 返回给用户界面层。 JSP 网上饰品店系统(论文) 8 订购 用户 订单列表订单 饰品 3.1 数

13、据库设计 数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直接 对应用系统的效率,以及实现的效果产生影响。合理的数据库结构设计可以提高数据存 储的效率,保证数据的完整和一致。 3.1.1 数据库需求分析 针对一般在线饰品的需求,得出如下需求信息。 用户分为游客和已注册用户。 订单分为单张详细订单和总订单。 一个用户可以购买多个饰品。 一个用户对应一张订单。 针对本系统功能分析,总结出如下的需求信息。 用户,包括数据项:用户名、密码。 饰品,包括数据项:饰品编号、饰品名、价格、饰品介绍。 订单列表,包括数据项:订单编号、饰品编号、购买数量。 订单,包括数据项:订单编号、用户编

14、号、下单时间。 从本系统中规划出的实体有:用户实体、饰品实体、订单实体、订单列表实体。 实体之间关系的 E-R 图如图 3-5 所示。 1 1N N 图 3-5 实体关系 E-R 图 JSP 网上饰品店系统(论文) 9 关系图 3.1.2 数据库逻辑结构设计 在线饰品数据库中各个表的设计结果如下面的标和所示。 表 3.1 为用户信息列表 User_info。 表 3.2 商品信息表 goodsInfo。 JSP 网上饰品店系统(论文) 10 表 3.3 订单表 goodsOrder。 表 3.4 订单详情表 goodsOrder。 JSP 网上饰品店系统(论文) 11 第 4 章 详细设计 4

15、.1 系统概述 411 用户界面部分 商品选购 购物车功能。 查看商品详细信息。 用户注册。 用户登录。 查看用户的订单信息。 修改用户个人信息。 412 管理界面部分 现有饰品管理:修改,删除,查看。 用户管理:查看,修改,删除。 订单管理:查看订单清单,更新订单付款,出货状态,删除订单。 添加新饰品。 添加饰品分类。 4.2 业务逻辑详细代码 .1、用户登录和注册、用户登录和注册 这是一个以客户为中心的交易平台,只有成为了系统的合法用户才能够使用这 个系统,因此需要检验每个用户的合法性,管理用户登录正是要完成这样的功能。 (1)该类实现用户登录验证 public boole

16、an UserLognIn(String name,String pword) boolean success=false; try JSP 网上饰品店系统(论文) 12 ct=new connDB().getConnection(); ps=ct.prepareStatement( select UserName,UserPassWd from UserInfo where UserName=?); ps.setString(1, name); rs=ps.executeQuery(); rs.next(); if(name.equals(rs.getString(1) else succe

17、ss=false; catch (SQLException e) / TODO Auto-generated catch block e.printStackTrace(); finally this.close(); return success; (2)该类实现用户注册认证 public class register extends HttpServlet public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException /获取数

18、据乱码处理 request.setCharacterEncoding(gb2312); /获取客户端发送过来的信息 String name = request.getParameter(name); JSP 网上饰品店系统(论文) 13 String password=request.getParameter(password); String email = request.getParameter(email); String trueName=request.getParameter(trueName); String sex = request.getParameter(sex); S

19、tring birthday=request.getParameter(birthday); String address = request.getParameter(address); String postcode = request.getParameter(postcode); String phone = request.getParameter(phone); String mphone = request.getParameter(mphone); String question = request.getParameter(question); String answer =

20、 request.getParameter(answer); UserBean user = new UserBean(); UserBeanBO userbo=new UserBeanBO(); user.setUserName(name); user.setUserPassWd(password); user.setEmail(email); user.setTrueName(trueName); user.setSex(sex); user.setBirthday(birthday); user.setAddress(address); user.setPostcode(postcode

21、); user.setPhone(phone); user.setMphone(mphone); user.setQuestion(question); user.setAnswer(answer); if(userbo.UserRegister(user) response.sendRedirect(success.jsp); else response.sendRedirect(failed.jsp); JSP 网上饰品店系统(论文) 14 .2、商品显示以及分类处理、商品显示以及分类处理 为了使用上的方便,我们把对商品的管理,包括商品的添加,删除,修改,查 询等集合成一个

22、管理类。 下面是该类的部分函数: public goodsBean getGoodsBean(String id) goodsBean gb=new goodsBean(); try ct=new connDB().getConnection(); ps=ct.prepareStatement(select * from GoodsInfo where goodsNum=?); ps.setString(1, id); rs=ps.executeQuery(); while(rs.next() gb.setGoodsNum(rs.getInt(1); gb.setGoodsName(rs.ge

23、tString(2); gb.setPrice(rs.getInt(3); gb.setStyle(rs.getString(4); gb.setClass1(rs.getString(5); gb.setClass2(rs.getString(6); gb.setClass3(rs.getString(7); gb.setInfo(rs.getString(8); gb.setPhoto1(rs.getString(9); gb.setPhoto2(rs.getString(10); gb.setPhoto3(rs.getString(11); gb.setPhoto4(rs.getStri

24、ng(12); gb.setRecommend(rs.getInt(13); gb.setNow_volume(rs.getInt(14); gb.setStore_volume(rs.getInt(15); gb.setSale_volume(rs.getInt(16); catch(Exception e) e.printStackTrace(); finally this.close(); return gb; JSP 网上饰品店系统(论文) 15 /获得热销商品的编号 public String GetSaleNum() String Number=new String500; int

25、 i=0; try ct=new connDB().getConnection(); ps=ct.prepareStatement(select goodsNum from GoodsInfo order by sale_volume desc); rs=ps.executeQuery(); while(rs.next() Numberi=rs.getString(1); i+; catch (SQLException e) / TODO Auto-generated catch block e.printStackTrace(); finally this.close(); return N

26、umber; /获得推荐商品的编号 public String GetRecNum() String Number=new String8; int i=0; try ct=new connDB().getConnection(); ps=ct.prepareStatement(select goodsNum from GoodsInfo where recommend=?); ps.setString(1, 1); rs=ps.executeQuery(); while(rs.next() Numberi=rs.getString(1); i+; if(i8)break; JSP 网上饰品店

27、系统(论文) 16 catch (SQLException e) / TODO Auto-generated catch block e.printStackTrace(); finally this.close(); return Number; /查询分类函数 public ArrayList getclassGoods(String s) ArrayList al=new ArrayList(); try ct=new connDB().getConnection(); ps=ct.prepareStatement(select * from goodsInfo where class1

28、=? or class2=? or class3=? ); ps.setString(1, s); ps.setString(2, s); ps.setString(3, s); rs=ps.executeQuery(); while(rs.next() goodsBean gb=new goodsBean(); gb.setGoodsNum(rs.getInt(1); gb.setGoodsName(rs.getString(2); gb.setPrice(rs.getInt(3); gb.setStyle(rs.getString(4); gb.setClass1(rs.getString

29、(5); gb.setClass2(rs.getString(6); gb.setClass3(rs.getString(7); gb.setInfo(rs.getString(8); gb.setPhoto1(rs.getString(9); gb.setPhoto2(rs.getString(10); gb.setPhoto3(rs.getString(11); gb.setPhoto4(rs.getString(12); gb.setRecommend(rs.getInt(13); gb.setNow_volume(rs.getInt(14); gb.setStore_volume(rs

30、.getInt(15); JSP 网上饰品店系统(论文) 17 gb.setSale_volume(rs.getInt(16); al.add(gb); catch (SQLException e) / TODO Auto-generated catch block e.printStackTrace(); finally this.close(); return al; /关闭资源函数 public void close() try/关闭rs if(rs!=null) rs.close(); rs=null; /关闭ps if(ps!=null) ps.close(); ps=null; /

31、关闭ct if(ct!=null) ct.close(); ct=null; catch(Exception e) e.printStackTrace(); .3、购物车的实现模块、购物车的实现模块 购物车实现使用了集合类 hashMap,该集合类的许多函数刚好适合做购物车,方便 商品的添加、删除以及清空购物车等。下面是该类的代码: public class CartBo /定义一个HashMap用于储存购物车中的商品ID和数量 JSP 网上饰品店系统(论文) 18 HashMap hm=new HashMap(); /1、添加商品 public void addGoods(S

32、tring goodsId,String goodsNum) hm.put(goodsId, goodsNum); /2、删除商品 public void delGoods(String goodsId) hm.remove(goodsId); /3、清空购物车 public void clear() hm.clear(); /4、修改商品数量 public void updateGoodsNum(String goodsId,String NewNum) hm.put(goodsId, NewNum); /5、显示购物车 public ArrayList showMyCart() Array

33、List al=new ArrayList(); Iterator it=hm.keySet().iterator(); while(it.hasNext() goodsBean gb; goodsBeanBO gbb=new goodsBeanBO(); String goodsId=(String)it.next(); String s=(String)hm.get(goodsId); gb=gbb.getGoodsBean(goodsId); int volume=Integer.parseInt(s); gb.setVloume(volume); al.add(gb); return

34、al; 其他功能的代码请看源代码 JSP 网上饰品店系统(论文) 19 4.3客户端界面设计与实现 1、主界面设计 为了提高代码的重用性,我把客户界面部分相同的头和尾作成两个独立的块,分 别命名为 head.jsp 和 back.jsp 如下图。 Head.jsp 设计页面 Back.jsp 设计页面 JSP 网上饰品店系统(论文) 20 图 4-1 主界面显示效果 JSP 网上饰品店系统(论文) 21 2、用户注册模块的设计。 为了检验用户是否合法,首先需要注册用户名和密码来验证用户的合法性,用户注 册模块刚好完成这样的一个功能,该模块要用到 ajax 技术。效果图如下:图 4-2 图 4-

35、2 用户注册界面 3、个人中心模块 在该模块用户登录到自己的主页,可以查看自己的个人信息,还可以跳转到其他的 模块,例如查看购物车,查看订单信息等。 图 4-3 个人中心效果显示 JSP 网上饰品店系统(论文) 22 个人中心页面模块主要代码如下: 我的交易 我的购物车 已卖到的宝贝 我的收藏 个人资料 基本信息 修改信息 修改密码 4:购物车模块页面设计。 在购物车这个模块当中用户可以修改购买数量,可以删除已选饰品,可以提交购物车, 也可以清空购物车,同时也可以继续购物。该模块运行时效果如图 4-4 所示: JSP 网上饰品店系统(论文) 23 图 4-4 购物车模块显示效果 页面核心代码如

36、下 cart.jsp: 返回首页 今日特价 超值套餐 项链 耳环 手链 戒指 情侣 专区 编号 名称 单价 数量 JSP 网上饰品店系统(论文) 24 %for(int i=0;i imgstyle=vertical- align:middlesrc=images/Goods/ width=80px height=80px/ ahref=ShowGoods?goodsId= target=_black input type=textstyle=width:40px;height:25px;vertical- align:middle id= value= / input type=button

37、 style=width:60px;height:20px value=修改数量 onclick=updateVolume() / a href=ShowMyCart?goodsId= 清空购物车 JSP 网上饰品店系统(论文) 26 第 5 章 实验遇到的问题及解决办法 5.1 数据库连接 在系统的整个开发工程中,我们最容易碰到的难题是数据库连接这个模块。在 JavaBean 中连接数据库注意的一些事项有: 1 首先要下载 Microsoft SQL Server 2000 Driver for JDBC 这个包,并安装。 2 把 Microsoft SQL Server 2000 Driver for JDBC 的 lib 文件夹下的: msbase.jar,mssqlserver.jar,msutil.jar 三个文件拷贝到 Tomcat 安装目录下的 commen/lib 文件夹下。 3 把 msbase.jar,mssqlserver.jar,msutil.jar 三个文件的路径添加到 CLASSP

温馨提示

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

最新文档

评论

0/150

提交评论