《基于SSM的商城系统.doc》由会员分享,可在线阅读,更多相关《基于SSM的商城系统.doc(47页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、摘要现如今这个时代,“上网购物”这种购物方式已经成为购物主流。在这种背景之下,可靠的网上商城系统不可或缺,网上购物系统自然而然成为必须。它可以使消费者更加方便地购物,更快地满足顾客的需求,也可以让用户选择自己真正喜欢的商品。目前市面上已经有现成、稳定的商品销售系统,但存在操作复杂、维护繁琐等问题。这些因素直接导致了销售系统在目前市场上的推广受到了限制,开发出费用低廉、功能强大的系统正是我们需要解决的问题。该系统提供商品在线分享购买的平台,划分用户和管理员两个角色,用户功能有登陆、注册、商品分类展示、商品详情展示分享等,管理员部分的功能有商品分类管理,商品管理等本课题采用JAVA EE平台,基于
2、B/S结构,SSM框架技术。 关键词:javaEE ssm B/S结构 线上购物系统 AbstractNowadays, online shopping has become the mainstream of shopping. In this context, a safe, stable and powerful online shopping mall system is indispensable. Driven by this mature market demand, online shopping system came into being. It can make cons
3、umers more convenient to shop, faster to meet the needs of customers, but also allows users to choose what they really like. At present, there are relatively mature commodity sales system in the market, but the existing commodity website system has more or less complex maintenance, operation and oth
4、er issues. Some systems even directly use static web pages to publish commodity information, which directly leads to the limitation of the marketing system in the current market. The system is used by businesses and customers, and provides a platform for online sharing and purchase of goods. The fun
5、ctions of the administrator part include commodity classification management and commodity management , order management, user management, message management, etc.This project adopts Java EE platform, SSM framework technology, and is based on B / S structure Key words:javaEE; SSM; B / S structure; o
6、nline shopping;目 录1绪论11.1研究背景11.2目的和意义11.3开发工具及技术12功能需求分析22.1网站前台功能22.2网站后台功能22.3系统用户用例图23系统设计43.1系统的总体设计43.2数据库的分析与设计43.2.1数据库概念设计43.2.2数据库物理结构64系统主要功能实现104.1系统注册页面实现104.1.1客户端用户注册104.2系统登录页面实现114.2.1用户登录114.2.2管理员用户登录114.3系统前台功能实现134.3.1一级分类模块134.3.2商品模块144.3.3购物模块194.3.4订单模块224.3.5留言模块244.4系统后台功能
7、实现254.4.1用户模块254.4.2一级分类模块264.4.3二级分类模块294.4.4商品分类模块325总结36附录38致谢431 绪论1.1 研究背景现如今这个时代,“上网购物”这种购物方式已经成为购物主流。在这种背景之下,可靠的网上商城系统不可或缺,网上购物系统自然而然成为必须。它可以使消费者更加方便地购物,更快地满足顾客的需求,也可以让用户选择自己真正喜欢的商品。目前市面上已经有现成、稳定的商品销售系统,但存在操作复杂、维护繁琐等问题。这些因素直接导致了销售系统在目前市场上的推广受到了限制,开发出费用低廉、功能强大的系统正是我们需要解决的问题。1.2 目的和意义商家应用此软件之后,
8、可以降低销售难度,降低人力成本,增加销售业绩。应用此软件是为了在打破传统线下销售模式,再开辟一条新的销售通路,控制库存量。此软件的数据统计分析功能完善可拓展,成熟稳定、使用非常方便、界面简洁明了、操作简单不需要学习成本,可以成为一个能真正帮助商家销售发展的有力工具。1.3 开发工具及技术Jsp用于前端页面设计,java用于后端数据维护。实现该系统,使用spring和spring-Mvc的同时后端还使用了MyBatis框架对数据库中的数据进行封装和操作。系统的架构也是基与mvc设计模式。Mybatis是一个经典的后端开源框架,原理是mybatis框架自动依据开发者自建的XML文件映射(一种声明)
9、创建出会话工厂,然后会话工厂根据配置文件创出SqlSession对象,该对象包含了执行sql所需要的所有方法,可以通过SqlSession这个对象执行所有事先声明的方法使用数据库完成所需目的,操作结束后执行相应的事务控制。本次采用的是spring的声明式 方式。 2 功能需求分析2.1 网站前台功能1.首页商品展示:展示出最新商品和热门商品。2.首页:提供一个网站首页,显示该企业的商标,该网站用户的登录,注册,所有商品的一级分类,热门商品和最新商品的展示等。3.用户登录:已经注册的用户登录。4.用户注册:用户完成注册功能的使用,利用ajax发送异步请求校验5.用户退出:已经登录的用户退出系统。
10、6.分类页面商品展示:根据一级分类和二级分类去展示该分类下的所有商品7.商品详情展示:点击某个商品时可以展示该商品的具体详细信息。8.购物车:用于存放用户的购物内容9.订单:用户查看订单2.2 网站后台功能1.管理员登录2.商品一级、二级分类管理:管理者可以对前台显示的一级、二级分类进行增删改3.商品管理:管理者可以对前台显示的商品进行管理包括增删改查,以及上传商品图片。4.用户管理:查看该网站中所有用户的所有信息。2.3 系统用户用例图2.2.0用户用例图2.2.1管理员用例图3 系统设计3.1 系统的总体设计系统的开发采用B/S模式,基于ssm框架。SSM框架是目前J2EE领域中最热门而且
11、用的比较成熟的一套开源框架,它是基于MVC设计模式之上,充分发挥了MVC的优点。SSM是一套轻量级框架,系统功能模块结构图如图3-1所示:图3-13.2 数据库的分析与设计 数据库使用 mysql,版本为5.5+ 3.2.1数据库概念设计数据库各实体描述:用户:包括如图所示九个字段 用户姓名联系方式用户id用户性别用户密码用户地址用户名用户邮箱状态态用户图3-2-1 用户实体联系图管理员包含的字段如图显示:账号密码编号管理员3.2.1-2 管理员实体图商品实体:商品包含的字段如图所示:商品名称是否热门商品id商城价商品图片二级分类id上架时间商品描述市场价格态商品订单包含的字段如图所示:订单总
12、价订单状态订单id收货地址收货电话商品id用户id下单时间购买者格态订单3.2.2数据库物理结构该系统设计了7张表,在这里列出7张表分别为如下所示:数据库表总览描述表一级商品分类表category管理员表adminuser二级商品分类表categorysecond管理员表主要记录了管理员的基本消息,表结构如表3-1所示。管理员表3-1(adminuser)数据类型允许空值(默认NO)自动递增备注idINT (11)YESYES账号usernameVARCHAR(1000)NONO用户名passwordVARCHAR (1000)NONO密码一级分类表主要记录了一级分类的基本信息,表结构如图3-
13、2所示。一级分类表3-2(category)数据类型允许空值(默认NO)自动递增备注cidINT (11)YESYES一级分类IDcnameVARCHAR (1000)NONO一级分类名二级分类表主要记录了二级分类的基本信息,表结构如图3-3所示。二级分类表3-3(categorysecond)数据类型允许空值(默认NO)自动递增备注CsidINT (11)YESYES二级分类idCsnameVARCHAR (1000)NO二级分类名称cidVARCHAR (1000)NO所属一级分类id订单项表主要记录了订单项的基本信息,表结构如图3-4所示。订单项表3-4(orderitem)-数据类型允
14、许空值(默认NO)自动递增备注OiidINT (11)YESYES订单项idcountVARCHAR (1000)购买数量subtotalDOUBLE单项总价idPidINT (11)所购商品idcidINT (11)所属订单id订单表主要记录了订单的基本信息,表结构如图3-5所示。订单表3-5(order)-允许空值(默认NO)自动递增数据类型备注oidYESYESINT (11)订单idmoneyDOUBLE订单总价stateINT (11)订单状态ReceiveinfoVARCHAR (255)收货地址phonumVARCHAR (255)收货人电话Order_timeDATETIME下
15、单时间UidINT (11)所属用户id商品表主要记录了商品的基本信息,表结构如图3-6所示。商品表3-6(product)-允许空值(默认NO)自动递增数据类型备注PidYESYESINT(11)商品idPnameVARCHAR (255)商品名称Market_priceINT (11)市场价Shop_priceVARCHAR (255)商城价imageVARCHAR (255)商品图片PdescVARCHAR (255)商品描述Is_hotINT (11)是否热门PdateDatetime商品上架日期csidINT (11)所属二级分类id前台用户表结构如图所示。前台用户表3-7(user
16、)-数据类型允许空值(默认NO)自动递增备注UidINT (11)YESYES用户idUsernameVARCHAR (255)用户名passwordVARCHAR (255)用户密码NameVARCHAR (255)用户真实姓名EmailVARCHAR (255)用户邮箱PhoneVARCHAR (255)用户手机号AddrVARCHAR (255)用户地址StateINT (11)用户状态4 系统主要功能实现4.1 系统注册页面实现4.1.1 客户端用户注册注册效果如图4-1所示: 图4-1客户端用户注册界面4.2 系统登录页面实现4.2.1 用户登录系统登录界面程序运行如下图所示: 图4
17、-2登录页面4.2.2 管理员用户登录运行结果如图,图4-3为管理员登录页面,图4-4为管理员登录成功后跳转的页面图4-3 后台登录页面图4-4管理员页面4.34.44.3系统前台功能实现系统前台页面包括以下几个部分:首页一级、二级商品分类显示,已登录用户的订单展示。4.3.1一级分类模块l 查询一级分类说明:一级分类存储在数据库中,如果在同一时间的用户访问该网站的第一个分类的审讯主页。在图4-5的分类显示:图4-5 一级分类显示设计思路:一级分类展示于系统的首页,当用户访问index.action时,跳转到首页,跳转之前,系统进行查询,将结果存放到session中l 查询一级分类下的子分类描
18、述:用户进入主页后,点击某一级分类,即查询该分类下的二级分类,发出请求得到数据。效果图如图4-6所示: 图4-6二级分类设计思路:查询一级分类后,用户发出请求再根据域中一级分类id查询其子分类(二级分类),再将数据放入域中。主要代码:4.3.2商品模块查询最热商品描述:当用户访问该网站时,首先显示的是网站的首页,首页中将显示本网站中最热的商品。程序运行结果如图4-7所示:图4-7 首页热门商品展示设计思路:用户访问首页index时,根据路劲“/index.action”首先调用的是系统的index.action,最后跳转至系统的首页index.jsp,因为最热商品显示于首页中,因此在页面跳转之
19、前必须前往数据库查询出本系统中所有的热门商品,因此使用了findHotProduct()这个方法,由于首页中仅仅显示了最新商品中的前十个,因此这里是使用的分页查询,最终查询的结果是一个list集合,最终保存在Model中。l 查询最新商品描述:当用户访问该网站时,首先显示的是网站的首页,首页中将显示本网站中最新的商品。程序运行结果如图4-8所示:图4-8首页最新商品设计思路:用户访问首页index时,根据路劲“/index.action”首先调用的是系统的index.action,最后跳转至系统的首页index.jsp,因为最新商品和最热商品一样都是显示于首页中,因此在页面跳转之前必须前往数据
20、库查询出本系统中所有的最新商品,因此使用了findNewProduct()这个方法,查询最新商品的依据是商品被上传的时间,根据时间来进行排序,由于首页中仅仅显示了最新商品中的前十个,因此这里是使用的分页查询,最终查询的结果是一个list集合,最终保存在Model中。l 查询分类商品描述:用户在点击首页的一级分类时,系统自动跳转页面,同时要求在右面显示某个二级分类下的商品。程序运行结果如图4-9所示:图4-9查询某个分类商品设计思路:首先导入页面,页面和查询二级分类下的商品使用的是一个页面category.jsp。当用户点击按钮时,客户端向服务器请求发送请求并携带一级分类的主键id,因此服务器端
21、应该接受参数并使用这个参数来调用方法然后去数据库进行查询数据,最后将查询出的数据把保存于Model中,最后跳转页面。由于页面大小的关系,这里仅仅显示12个商品,因此这里采用了分页查询,并在右下角设置相应的按钮,方便用户来回查看该分类下所有的商品。l 查询二级分类商品用户在点击首页的一级分类时,系统自动跳转页面,并且在页面的左面显示所有一级分类包含的级分类,同时要求在右面显示某个二级分类下的商品。程序运行结果如图4-10所示 图4-10 查询某个二级分类商品设计思路:首先编写页面category.jsp,这个页面用来显示某个二级分类下的所有的商品,当用户点击二级分类时系统访问对应的action,
22、并且携带参数(相应二级分类的主键id),到前端控制层,然后findCategorySecond1()方法接收主键id和分页的数目去product表查询商品,最终将查询到的结果存放于Model中。由于页面大小的关系,这里仅仅显示12个商品,因此这里采用了分页查询,并在右下角设置相应的按钮,方便用户来回查看该分类下所有的商品。前端控制层接收参数并调用service层:PageBeanproPageBean = productService.finbProductByCsid(csid,page);model.addAttribute(pageBean,proPageBean);查询商品信息用户再浏
23、览该商场,查看某个商品的详细信息。程序运行结果如图4-11所示:图4-11 某个商品的具体信息设计思路:首先编写页面,这里使用的是product.jsp,在这个页面中显示了分类的信息,还有每个一级分类下的二级分类,右下方是某个商品的具体信息,其中包括商品的名称、商品的商城价和市场价,包括一个选择框,用于用户选择购买数量,最下面则是商品的具体介绍。当用户点击某个想要查看的商品图片时,其实就是点击了某个超链接,向服务器发送链接并携带参数(商品的主键id),服务器端接收这个参数,并使用这个参数去数据库中查看这个商品的具体信息最后封装于product中,最终存放于Model中。4.3.3购物模块l 添
24、加到购物车对于已经登录的用户,可以将看中的商品具体信息保存于自己的购物车中。图4-12购物车设计思路:首先编写cart.jsp用于显示登录用户的购物车,如果用户没有登录会有提示,用点击查看商品的详情之后会出现一个“加入购物车”按钮,当点击此按钮时,自动访问服务器,并通过隐藏表单携带参数(商品的主键id),服务器端在接受此参数,并接收用户选购的数量,最终保存于我们为每个用户在session域中创建的cart。最后进行页面跳转,在cart.jsp中展示购物车的信息,主要包括:商品的具体信息和每项的价格和购物车的总价。对于已登录用户的页面,可以看到一个购物车的图标,用户可以查看自己的购物车。l 从购
25、物车中移除商品点击已经添加到购物车的商品后的删除按键从购物车移出该商品。程序运行结果如图4-13所示:图4-13 移出购物车设计思路:当用户点击 “删除”按钮时,向服务器端进行请求,并携带参数(商品的主键id),服务器端在设计购物车时采用的是用Map集合存储的,key值即商品的id,因此删除的时候只需从session中拿到购物车直接根据主键删除,最后将页面重定向到cart.jsp.l 清空购物车将购物车里面的购物项全部清空。程序运行结果如图4-14所示:图4-14 清空购物车设计思路:当“清空购物车”按下时,浏览器发出请求,服务器端收到请求之后,从会话域中取出内容,由于cart在设计的时候使用
26、的是Map集合,所以只需调用Map中的clear()方法即可,并且还需将购物车的总价改为0,最后将页面重定向到cart.jsp.4.3.4订单模块l 生成订单当用户点击“生成订单”按钮时,页面跳转至order.jsp,并让用户填写相关信息。程序运行结果如图4-15所示:图4-15生成订单设计思路:首先编写order.jsp页面,其中包含用户的购物信息和收货地址、收货人和联系方式。当用户点击cart.jsp中的生成订单按钮时,向服务器发送请求,服务器端从session域中拿到cart中的信息,并将这些信息保存于order表中,此时,需要清空购物车并且将订单信息保存到session域中,最后跳转到
27、order.jsp页面让用户填写相关信息,并付款。l 我的订单用户对自己的选购的商品所生成的订单项进行付款。即可生成订单,进入我的订单列表界面;程序运行结果如图4-16所示:图4-16 我的订单4.3.5留言模块l 留言板当用户点击“留言板”按钮时,页面跳转至messageList.jsp,并让用户填写相关信息。程序运行结果如下图所示:留言板界面4.4系统后台功能实现4.4.1用户模块查询用户管理员进入后台管理页面之后,当他点击“用户管理”按钮时,则在主页面中显示所有用户的详细信息。程序运行结果如图4-17所示:图4-17 查询所有用户设计思路:先编辑list.jsp页面,当用户点击“用户管理
28、”按钮时,浏览器发出请求到服务器,经过controller解析最终调用service层的findAll()方法再经过service 层调用事先定义好的mapper接口,返回一个list集合,最终信息封装成一个Model对象,再跳转至静态页面list.jsp。4.4.2一级分类模块l 添加一级分类图4-18 添加一级分类设计思路:首先编写add.jsp页面,当用户在一级分类list.jsp页面点击“添加”按钮时, 服务器将页面跳转至add.jsp,在此页面共有三个按钮,“确定”按钮用于提交信息,“重置”按钮清空表单中的内容,“返回”按钮返回前一个页面。当用户填写好要添加的一级分类的名称之后点击“
29、确定”按钮,服务器端接收此表单中的内容,然后调用service层的addCategory()方法,将新增的一级分类保存到数据库category表中,最后将页面重定向到list.jsp页面,展示所有的一级分类。l 修改一级分类此功能属于管理员的权限范围内,管理员用户修改网站中各大服饰的一级分类的名称。程序运行结果如图4-19所示:图4-19 修改一级分类页面设计思路:首先编写edit.jsp页面,当用户在一级分类list.jsp页面点击“添加”按钮时, 服务器将页面跳转至edit.jsp,在此页面共有三个按钮,“确定”按钮用于提交信息,“重置”按钮清空表单中的内容,“返回”按钮返回前一个页面。当
30、用户填写好要修改的一级分类的名称之后点击“确定”按钮,服务器端接收此表单中的内容,然后调用service层的adminCategory_update()方法,将修改的一级分类更新到数据库category表中。 l 查询一级分类 “一级分类管理”按钮按下后,展示所有的一级分类的详细信息。程序运行结果如图4-21所示:图4-21查询一级分类设计思路:首先编写list.jsp页面,当管理员用户点击“一级分类管理页面”按钮时,服务器端接收请求然后调用adminbFindCategory()方法最终由service层调用myBatis提供的Mapper接口将所有的一级分类的信息查询出来保存到list集合
31、中,最终保存到Model中并将信息进行展示。考虑到一级分类比较多,这里使用了分页查询,在页面展示的效果就是每页显示固定的个数,并在右下角提供了相应的按钮方便用户进行查看其他的一级分类。4.4.3二级分类模块l 添加二级分类管理员用户为新增加的一级分类添加二级分类。程序运行结果如图4-22所示:图4-22 添加二级分类设计思路:首先编写二级分类添加页面add.jsp,管理员用户点击“添加”按钮时,页面跳转到add.jsp,同时服务器端将查询出所有的一级分类的名称,用于管理员选择新增的二级分类的归属,这在add.jsp页面中通过一个下拉列表进行显示。管理员用户在填写好新增的二级分类的名称并选择好所
32、属的一级分类之后点击“确定”按钮,服务器端接收新增的二级分类名称和所属的一级分类的主键id,然后调用adminCategorySecond_save()方法将新增的Categorysecond保存于数据库的categorysecond表中。最后将页面重定向到二级分类的list.jsp页面进行展示。l 修改二级分类管理员用户可以为网站中所有的二级分类的名称进行编辑。程序运行结果如图4-23所示:图4-23 二级分类编辑页面设计思路:首先编写二级分类修改页面edit.jsp,管理员在list.jsp点击“编辑”按钮时,页面跳转到edit.jsp页面,跳转之前,服务器端查询到对应的二级分类的名称并将
33、二级分类的名称保存到edit.jsp对应的表单中,这样方便用户知道自己修改的是哪个二级分,增加了用户体验度l 删除二级分类后台管理员根据查询出的二级分类列表对二级分类进行操作,根据系统的要求,管理员用户在删除二级分类的同时应该删除该二级分类下的所有商品。设计思路:管理员用户在点击“二级分类用户”按钮时,在管理员页面展示所有的二级分类,当用户点击“删除”按钮时,服务器端收到客户端发来的请求,并接受客户端传来的数据(二级分类的主键id),然后根据二级分类的主键id调用adminCategorySecond_delete(csid)方法,删除二级分类,然后根据外键删除商品。最后将页面重定向到二级分类
34、的list.jsp页面。l 查询二级分类图4-24二级分类展示设计思路:首先得编写二级分类的list.jsp页面。管理员用户点击“二级分类管理”按钮时,给服务器发送请求,并携带分页参数,服务器端接收此参数之后开始查询所有的二级分类,这里创建了一个pageBean对象用于封装查询出来的数据,包括二级分类的集合,当前的页数,一共的页数等信息,最后直接返回一个pageBean对象,因为二级分类较多,这里采用了分页查询,需要用到这些数据因此直接封装在了pageBean对象里。用户可以通过二级分类的list.jsp页面右下方的按钮来查看所有的二级分类。4.4.4商品分类模块l 添加商品程序运行结果如图4
35、-25所示:图4-25 商品添加页面设计思路:首先编写商品添加页面add.jsp。管理员用户点击商品展示页面list.jsp上的“添加”按钮之后客服端跳转到add.jsp页面,在客户端页面跳转之前,服务器端需要查询出所有商品的二级分类,方便上传用户选择该商品所属的二级分类。管理员需要填写页面上的信息包括商品名称、选择是否热门、市场价格、商城价格、上传商品图片、选择所属二级分类和编写商品描述这些信息。管理员用户点击“确定”按钮之后客户端将数据提交给服务器,客户端在上传上传组件时必须将上传组件表单type设置为file类型,这样服务器端才能正确的识别。最后服务器端接收到数据之后封装于product
36、对象中,并调用adminProduct_save(product);将新上传的product保存到数据库中的product表中,最后将页面重定向到商品的list.jsp页面。 l 查询商品管理员通过点击“商品管理”按钮来查看本网站中所有的商品信息。程序运行结果如图4-26所示:图4-26 查询商品设计思路:首先编写商品下面的list.jsp页面,管理员用户在点击“商品管理”按钮时,给服务器发送请求,并携带分页参数,服务器端接收此参数之后开始查询所有的商品信息,这里创建了一个pageBean对象用于封装查询出来的数据,包括商品的集合,当前的页数,一共的页数等信息,最后直接返回一个pageBean
37、对象,因为商品个数较多,这里采用了分页查询,需要用到这些数据因此直接封装在了pageBean对象里。用户可以通过商品文件夹里面的list.jsp页面右下方的按钮来查看所有的是商品信息。小结:本章主要对系统的注册登录、一级分类二级分类的添加、购物车的添加移除和清空以及订单的下单、取消、支付做出了介绍。4.4.5留言管理模块l 留言管理管理用户通过点击留言管理链接,即可打开前台顾客的留言列表界面,并且可以删除不合时宜的留言信息。程序运行结果如图4-26所示:图4-27 留言管理界面5 总结如今,JavaEE是一个非常优秀的企业信息化开发平台,由于其拥有一些很好的性质包括稳定的性能、良好的开发性和非
38、常高的安全性因此被广泛运用于企业级开发。这篇论文基于当前比较流行的电商系统为项目背景,遵循javaEE应用软件的规则进行开发,将系统划分为四个层次包括模型model层,持久层,业务逻辑service层和表现层,并整合了目前在企业中广泛运用的spring、springMvc和myBatis框架进行开发。Spring用于整个系统的统一调度,贯穿于各层之间。myBatis的逆向工程极大的方便了dao层的开发,也方便了系统dao层的维护。本论文主要完成了以下的任务:正确分析了电商目前的发展形势,特别是对网购的发展进行了深入的调查和研究。关于系统的总体架构,在技术选型上选取了三个现今主流优秀成熟的框架,
39、对这些框架的功能与作用、整合等做了详细的描述。本项目的开发严格按照主流软件的规范进行开发,有详细的开发步骤,项目开发之前进行了大量的工作如:环境配置、技术选型等。完成了提出的需求功能。处于信息时代下会有更多的技术应运而生,不光需要对框架进行深入学习和研究还要对系统的架构进行研究。目前客户端技术正在崛起,我们需要认真做调查和研究做出一能让用户体验度更好的产品。以上只是目前的构想,接下来会继续深入研究并作进一步的完善和设计开发。参 考 文 献1 杨开振等. Java EE互联网轻量级框架整合开发 SSM框架(Spring MVC+Spring+MyBatis)和Redis实现M. 电子工业出版,2
40、017.07.2李俊民.HTML 5+CSS 3网页设计经典范例M.电子工业出版,2010.3邹红霆. 基于SSM框架的Web系统研究与应用J. 湖南理工学院学报(自科版), 2017, 30(1):39-43.4 王珊 萨师煊 数据库系统概论M 北京:高等教育出版社 20075 陈雄华 Spring企业级应用开发详解M 北京:电子工业出版社 20096 原著施奈德 成栋翻译 电子商务M 北京:机械工业出版社 2008 7 阿里巴巴网络技术有限公司 中小企业电子商务之路M 北京:清华大学出版社 2007 8 刘克强 电子商务平台建设M 北京:人民邮电出版社 2007 9 程杰 大话设计模式M
41、北京:清华大学出版社 201010 雷之宇 朱训雨 张麟 JAVA实用组件集M 北京:电子工业出版社 2008 附录客户端用户注册主要代码:Ajax异步校验代码:var username = document.getElementById(username).value;var xmlHttp = creatXMLHttpreauest();xmlHttp.open(GET,$pageContext.request.contextPath/registFindByid.action?username=+ username, true);xmlHttp.send(null);xmlHttp.on
42、readystatechange = function() if (xmlHttp.readyState = 4 & xmlHttp.status = 200) document.getElementById(span1).innerHTML = xmlHttp.responseText;服务器端二次数据合法性校验(此处采用的配置文件加注解的方式):user.username.length.error=用户名的名字的长度必须是1至30user.email.notNull=邮箱不可为空Size(min=2,max=30,message=user.username.length.error) pr
43、ivate String username; NotNull(message=user.email.notNull)private String email;查询最热商品主要代码:前段控制层代码:List hList= productService.findHotProduct();service层代码:List list = productMapper.selectByExample(example);查询最新商品主要代码:前端控制层代码:List nList =productService.findNewProduct();service层代码:ProductExample example = new ProductExample();ProductExample.Criteria criteria = example.createCriteria();example.setOrderByClause(pdate DESC);example.setBeginPage(0);example.setEnd(10); 查询分类商品主要代码:/前端控制层接收参数并调用service层代码: /根据一级目录查找二级目录下面的商品p
限制150内