电子商务发展现状以下是根据CNNIC公布的中国电子上午发展报告来进一步分析目前的网上购物的现状。
2-1B/S架构示意这种结构不仅把客户机从沉重的负担和不断对其提高的性能的要求中解放出来,也把技术维护人员从繁重的维护升级工作中解脱出来。由于客户机把事务处理逻辑部分分给了功能服务器,使客户机一下子“苗条”了许多,不再负责处理复杂计算和数据访问等关键事务,只负责显示部分,所以维护人员不再为程序的维护工作奔波于每个客户机之间,而把主要精力放在功能服务器上程序的更新工作。这种三层结构在层与层之间相互独立,任何一层的改变不会影响其它层的功能。2基于MVC的应用开发模型在传统的基于Web的应用系统中,例如ASP,CGI等,通常开发者将业务逻辑,数据逻辑、展示逻辑等混杂在一起,在同一个界面面里既进行后台数据库的访问和操作,同时还包含业务流程和页面表示。这样编写出来的程序,既不利于程序员对业务代码的调试,同时也不利于编辑人员进行交互页面的设计。同时系统也不具备可扩展性,当我们要在现有业务上进行扩展的时候,通常无法借助于现有的资源和应用,而只能够重新编写,大大增加了投资,延长了系统上线的时间,失去了竞争市场的优势。在本网上购物系统中,将采用通行的MVC模式来构建应用。这种结构解决了前面所述的所有问题,在我们的应用集成网络中,通过企业级高端J2EE应用服务器实现MVC开发模型。MVC的逻辑如下:
2-2应用服务器之上采用MVC开发的逻辑示意
2-3MVC业务流程示意通过这种方案,我们可以迅速地实现整个业务,其优势和特点如下:Model层:由EJB组件来实现,EJB将具体的业务封装在组件内部,具备安全、高性能、可重用等优秀的特征。View层:由JSP、HTML组成。这一层次的特点是能够真实地展示和客户交互的界面,具备可描绘的功能。同时能够嵌套动态数据,可以进行动态页面的展示。同时可以方便地进行客户端的个性化定制。根据每个客户的需求来展示不同风格的界面。Controller层:是非常重要的一层,这一层是连接View和Model的纽带,同时也是将这两层进行最大限度分离的工具。通常由Servlet来实现,Servlet和JSP虽然同样都属于页面展示工具,但分属两层。主要在于JSP以脚本语言的形式存在,它的主要优势是进行动态数据的Web展示,而Servlet是一个完整的Java程序,进行业务的调用和流程的处理是它的长处。通过这种模型的建立,我们的应用系统具备了非常好的性能和可扩展性。将业务组件和展示页面进行分离,并通过Controller来描述调用关系,一方面可以提高效率,另一方面也可以增加系统扩充的能力,使我们的系统可以进行最快速度的业务扩展,以满足不同用户、不同阶段、各种各样的业务需求。
3-1购物流程后台管理系统针对商店管理提供各种管理功能,因为一个商店的管理是一个十分复杂的过程,往往涉及许多不同的管理流程和系统。本系统作为网上商店,它应有一个自己的后台管理系统,用于完成网站管理商品信息、后台的订单管理、会员信息管理、管理员信息管理等功能。商品信息管理:是对商品数据的维护,添加新的货物信息入库。信息管理主要对一些商品的信息进行更新,比如有些商品的价格需要调整,有些商品最近需要打折销售,通过此模块可以很快的实现。会员信息管理:提供管理员对会员注册信息的修改及维护。该模块用来完成对注册用户的浏览及删除功能,。如果用户蓄意性注册或在很长的时间内没有购买商品,管理员就可以将该用户删除。管理员还可以对用户信息加以更新。管理员信息管理:包括修改管理员的口令,管理员退出管理登录。管理员主要用来管理对商城的后台加以管理。2可行性分析商业企业在运营过程中,经常会受到以下一些条件的限制:产品的宣传受到限制,采购商或顾客只能通过上门咨询、电话沟通等方式进行各种信息的获取,受一定的时间与物理空间的局限并且成本较高。庞大的商业经济周转。复杂的产品周转渠道。从看样品、谈价格到支付货款等一系列的产品周转渠道过于复杂,企业与顾客之间缺乏全面的沟通与快捷运营的平台。商业企业中根据季节的变化,热销商品在销售高峰到来时货源紧张,业需要实时了解商品的销售情况,保证热销商品的要货满足率。企业需要重新认识市场、消费者以及自身市场定位,正确认识电子商务技术在企业中的重要地位,以少量的时间和资金建立企业信息门户网站并架设一定范围的商务网络,以此来制定长远发展战略,使企业与顾客间的经济活动变得更灵活、更主动。4总体设计1项目总体设计1设计思想网上商城是一种全新的销售方式,随着互联的网普及,新技术的层出不穷,在线交易的安全性不断的提高,都为网上商城如雨后春笋般的发展奠定了良好的基础。由于商品这种商品易保存,配货方便,运输过程中安全性高,另外商品货物信息在网上可以比其它商品更容易直观真实地向用户展示,折扣率也较高,所以目前国内各大网上商城比较红火。我们开发网上商城系统,首先要从客户角度出发,提供良好的用户界面,对网站的布局、功能的设计尽量采用人性化设计,使用户感觉亲切,在首先在视觉上引吸顾客。提供方便快捷操作功能,使无论什么知识水平的用户都能很快的对购物系统熟练使用。提供功能强大的检索系统,快速地检索到站内所有信息。能按着用户的要求快速准确的显示出所有商品信息,并且能够方便添加到购物车内。提高网站的安全性及信息的准备性,保证个人的购物信息的保密性,加强用户购物过程的安全性。提供对购物车内商品信息的修改,确认后下定单。提供安全的在线支付方式及全面及时的配货方式。2总体框架设计电子商务系统是一个典型的JSP数据库开发应用程序,由前台商品展示及销售、后台管理2部分组成。
前台商品展示及销售:该部分主要包括特价商品、销售排行、购物车、会员管理、商品公告及查看购物车、商品查询等。后台商品管理和用户管理:该部分主要对商城内的一些基础数据进行有效管理,包括商品管理、会员管理等。功能结构如下:
4-1功能模块设计从中可以看出,网上购物系统可以分为前台和后台两个部分,前台部分由用户使用,主要包括用户注册,用户登陆,购物车管理,查看购物车,订购商品,商品查询,6个模块;后台部分由管理员使用,主要包括管理员身份验证,商品信息管理,用户信息管理3个模块。2数据库设计1数据库设计数据库的设计通常是以一个已经存在的数据库管理系统为基础的,常用的数据库管理系统有MYSQL,SQLServer,Oracle等。我采用了SQLServer2005数据库管理系统,建立的数据库名为Shopping。整个系统功能需要以下数据项:管理员:ID号、用户名、登陆密码。管理员表4-1字段说明数据类型备注Man_IDID号varchar不允许空Man_name管理员名称varchar不允许空Man_password管理员密码varchar不允许空用户:用户名、登录密码、性别、联系地址、联系电话、用户类型。用户表4-1字段说明数据类型备注Mem_name用户名varchar不允许空Mem_password用户密码varchar不允许空Mem_age用户年龄int可以为空Mem_sex用户性别varchar可以为空Mem_addr用户地址varchar可以为空Mem_type用户类型varchar不允许空商品:商品编号、名称、价格、会员价、类型、简要描述。商品表4-2字段说明类型备注Comm_ID商品编号Varchar不允许空Comm_Name商品名称Varchar不允许空Comm_Type商品类型Varchar不允许空Comm_Price商品价格Int不允许空Comm_youhui商品会员价格Int可以为空Comm_Desc商品描述Varchar可以为空商品定单表:编号、定单号、用户名、商品编号、商品名称、商品价格、购买数量。商品定单表4-3字段说明类型备注Id编号Varchar不允许空Order_id定单号Varchar不允许空User_name用户名Varchar不允许空Goods_id商品编号Varchar不允许空Goods_name商品价格Varchar不允许空Goods_price购买数量int不允许空用户定单表:编号、定单号、用户名、联系电话、邮政编码、通讯地址、备注、定单时间。用户定单表4-4字段说明类型备注Id编号Varchar不允许空Order_id定单号Varchar不允许空User_name用户名Varchar不允许空User_tel联系电话Varchar不允许空User_post邮政编码Varchar可以为空User_addr通讯地址Varchar可以为空User_beizhu备注Varchar可以为空User_date定单时间datetime不允许空2JSP连接数据库在本系统中,需要多次连接数据库,而且这种连接是一项很消耗资源的操作,在本系统中对数据库连接的部分写成了一个.jsp文件。文件名为Condb.jsp,关键代码如下:<%!StringdriverName=”com.microsoft.sqlserver.jdbc.SQLServerDriver”;StringdbURL=”jdbc:sqlserver://120.0.1:1433;DatabaseName=Shopping”;StringuserName=”sa”;//默认用户名StringuserPwd=”123”;//密码Connectionconn;PreparedStatementpstmt=null;ResultSetrs;Stringsql=null;try{Class.forName;//加载数据库驱动程序conn=DriverManager.getConnection;}catch{e.printStackTrace;}%>5系统详细设计及实现1前台总体框架前台部分由用户使用,包括用户注册,购物车管理,个人资料管理等几个部分。
5-1网站前台首页的功能结构如所示1用户管理模块用户管理模块主要包括用户注册和登录2个部分。
用户注册模块
5-2注册流程当用户第一次登录时首先要注册,成为会员后,才可以购买物品。用户可以通过单击首页的注册按键来打开注册页面进行会员注册操作,用户注册页面的运行结果如所示。
5-3注册页面在点击提交注册按钮要进行相应条件的判断,比如用户类型,两次输入的密码必须相同且长度必须大于3小于关键代码如下:
为了便于管理网站对用户的管理,在index.htm用户注册页接收到的注册信息要经过严格的过滤,保证注册用户的唯一性,在提交表单后需要对数据表中的数据进行查询,如果没有找到,则在插入数据表时提示注册成功,否则提示用户以被站用,请重新注册,关键代码如下:try{sql=”selectMem_NamefromMemberwhereMem_Name=?”;pstmt=conn.prepareStatement;pstmt.setString;rs=pstmt.executeQuery;if){%>jsp:forwardpage=”zhuce.jsp”
5-4用户登陆流程用户登录窗口设置在首页上,主要用来接收用户输入的用户名和密码,并更新用户在网站中的状态信息。在会员登录窗口中单击登录按纽后,系统将对用户名和密码进行验证,判断用户是否是已注册用户,如果已注册,则更新用户在网站中的状态,如果没有注册,则拒绝用户的登录操作,登录数据验证的程序代码如下:request.setCharacterEncoding;Stringname=request.getParameter;Stringpass=request.getParameter;try{sql=”selectMem_NamefromMemberwhereMem_Name=?andMem_password=?”;pstmt=conn.prepareStatement;pstmt.setString;pstmt.setString;rs=pstmt.executeQuery;if){Stringname1=rs.getString;%>jsp:forwardpage=”index.jsp”/<%}else{%>jsp:forwardpage=”index.jsp”
欢迎<%=session.getAttribute%>修改个人信息修改密码
5-5购物流程
添加购物车添加购物车就是把用户选中的商品放在购物车中。当用户在前台首页中单击商品展示区的“我要购买”按钮时,系统会将该商品的详细信息展示在查看物品清单页中,运行结果如下:
5-6添加商品查看购物车为了方便用户随时查看购物情况,在网站的首页加入了查看购物车链接,通过它可以将所选物品信息放入购物车中显示出来。查看购物车页面运行结果如下:
5-7查看购物车在购物车中用户可以看到自己选入购物车中的全部商品,用户可以在这个界面选择每个商品的购买数量,并且可以将不想要的商品删除。try{res.setContentType;Daodao=newDao;Comm_dataBeanub=newComm_dataBean;HttpSessionhs=req.getSession;ArrayListal=newArrayList;StringComm_id=req.getParameter;if{if!=null)//HttpSession中不为空直接添加{al=hs.getAttribute;}ArrayListalGoods=newArrayList;alGoods=dao.getGoods;//alGoods获取查询结果Comm_id=null;ub=alGoods.get;al.add;pw.println);hs.setMaxInactiveInterval;hs.setAttribute;}al=hs.getAttribute;if!=null){Stringdel=req.getParameter;al.remove);}当用户点击按钮我就买这些了后,要判断商品的存货数量是否足够,如果用户要买入的数量大于商品的存货数量要弹出提示,如果用户要买入的数量小于商品的存货数量则将每样商品的和全部消费总额计算出。其关键代码如下:try{res.setContentType;PrintWriterpw=res.getWriter;ArrayListal=newArrayList;HttpSessionhs=req.getSession;al=hs.getAttribute;intGoods_num=0;//商品剩余数量intGoods_lost=0;for;i++){Comm_dataBeanub=newComm_dataBean;ub=al.get;StringComm_id=ub.getComm_ID;Stringss=req.getParameter;Daodao=newDao;Goods_num=dao.getNumber;Goods_lost=dao.lostNumber;intleafGoodsNumber=Goods_num-Integer.parseInt;if{res.sendRedirect);returnfalse;}}intsumMoney=0;//计算总钱数booleanissuccess=false;//判断成功否的标志for;i++){Comm_dataBeanub=newComm_dataBean;ub=al.get;Stringss=req.getParameter;StringComm_id=ub.getComm_ID;intj=)*Integer.parseInt);sumMoney=sumMoney+j;intleafGoodsNumber=Goods_num-Integer.parseInt;Daodao=newDao;intlost_1=Goods_lost+Integer.parseInt;issuccess=dao.update;if{break;}}生成订单生成订单是网上购物商城的最终目的,前面的所有的功能的实现都是为最后生成一个用户满意的订单做基础,在此要生成一个可以供用户随时查询订单号,还要保存用户订单中所购买的商品信息。当用户确认对购物车不再改变后,就可以到收银台结帐并生成订单。结帐的流程是:从购物车中读取商品名称,商品数量,商品价格信息,生成唯一的一个订单号,同时也把用户注册的基本信息读取出来,形成一个完整的订单写入数据库中,结帐填写订单的页面如下。在生成订单模块中主要使用了调出用户信息并生成唯一订单号,调出用户信息就是完全的对数据库进行操作,利用session对象把登陆后的用户名保存起来,在订单生成时把保存的用户名从数据库的用户表中取出定单中有的部分数据,用户再填写一些其他的信息如:邮政编码,联系电话,付款方式,备注这些信息,这样就可以完成一个完整的定单了。在用户点击提交后将以上信息提交到数据库中加以保存,以便以后用户查看。
5-8填写定单3留言板模块留言板是一个商务网站中不可少的一部分,他可以增进用户与网站之间的交流。添加留言是用户与用户,以及用户与网站之间的一种交流模式,只有把用户想要表达的内容添加到数据库中,才能在浏览留言板中显示。用户在留言板中单击“添加留言”超链接就可以打开添加留言页面,该页面用来提交用户输入的留言信息,留言信息写好后,可以点击提交按钮,显示提交成功,若点击浏览留言,可打开留言板页面,该页面显示所有用户的留言,时间最近的排在最前面。运行结果如5-9所示:
5-9留言板用户在添加留言页中单击提交按钮,系统将数据表提交到admin/addlea.jsp页,该页用来实现将留言内容存入数据库中,关键代码如下:<%Datedate=newDate;Stringdat=date.toLocaleString;Condbcon=newCondb;Stringusername=request.getParameter;inttemp=con.executeUpdate;if{%>
<%}else{%>
5-10后台结构后台首页运行结果
5-11后台运行结果2管理员登录在前台首页单击管理员入口,将转到管理员登录页面。该页面的功能是对管理员身份验证,用户输入用户名和密码后单击“登录”按键,系统将判断用户名和密码的有效性,如果通过验证则转到后台首页,反之则提示错误。管理员登录页面的运行结果如所示。
5-15商品销售查询为了减少错误,在点击查询时,需要对数据的合法性进行验证,输入的日期必须与选择的月份相对应,以及在季度查询时输入的两个文本框中必须是数字且在1到12之间,还有就是后面的输入数据必须大于前面的输入数据。4用户信息管理该模块用来完成对注册用户的浏览及删除功能。如果用户蓄意性注册或在很长的时间内没有购买商品,管理员就可以将该用户删除。管理员还可以对用户信息加以更新。单击导航拦中的“查询用户信息”超链接进入用户信息页面,其运行结果如所示。
5-16用户查询结果需要修改用户信息直接点击“修改”超链接就可以对用户信息进行更新,页面跳转到User_caozuo.jsp。在此页面将用户的原有信息在页面上输出,管理员可以对其信息进行修改,当点击提交修改时将用户的修改信息后,更新数据库中的数据,达到用户信息的彻底修改。其运行结果如所示。
5-17修改用户信息管理员通过此功能管理员可以很容易的看到每个用户的消费情况,对于长时间不消费的用户管理员可以将其删除。其运行结果如所示。
5-18用户消费查询在点击查询按钮后也面跳转到User_salejsp,在这个也面将按照上个也面的查询条件查询出相应的结果,起关键代码如下:if{if{sql=”selectUser_name,Comm_Name,Buy_ListfromBuylistwhereyear=?Andmonthbetween?and?”;pstmt=conn.prepareStatement;pstmt.setString;pstmt.setString;pstmt.setString;rs=pstmt.executeQuery;}else{sql=”selectUser_name,Comm_Name,Buy_ListfromBuylistwhereyear=?Andmonth=?”;pstmt=conn.prepareStatement;pstmt.setString;pstmt.setString;rs=pstmt.executeQuery;}}else{sql=”selectUser_name,Comm_Name,Buy_ListfromBuylistwhereyear=?andmonth=?andday=?”;pstmt=conn.prepareStatement;pstmt.setString;pstmt.setString;pstmt.setString;rs=pstmt.executeQuery;}5定单信息管理用户在前台购物所产生的订单不能立即执行需要系统管理员在后台订单,运行结果如5-13所示。信息管理审核确认它执行性。用户单击导航拦中的“订单列表”超链接进入用户订单处理页面,该页面是会显示进期所没有被处理的订单,其运行结果如所示:
5-19用户定单管理用户订单处理页面显示的是用户的基本信息。要知道订单中所涉及的商品,需要单击对应的订单号的超链接打开商品订购祥单页才行。商品订购祥单的运行结果如下所示。
结束语在毕业设计的这几个月时间里,我经历了大学4年中最难忘的一段时间,在这段时间里我得到了莫大的收获。从技术角度来说,通过JSP的使用,我进一步加深了自己的知识,掌握了常规数据库的建立、连接和更新操作。在对JAVA和DreamweaverMX的使用中我也进一步加深了对这些工具的了解,而SQLServer2005的应用也巩固了我学习的成果。更重要的是,通过这个网上商城,我了解了在网上商城全程管理中的应用技术,在对网上商城,即电子商务的了解中,我认识到了电子商务不是电子和商务的简单相加,而是电子和商务的有效融合;电子和商务的结合并不必然地得到具有更高效率和效益的电子商务,相反,如果结合的不好,电子商务的效率和效益甚至更低。继续将电子商务界定为“通过计算机网络进行商务活动”是不恰当的,我们设计的网上商城系统不能纯粹独立成为一个商务活动的中心,我们需要密切联系传统的商城和传统的配送系统,电子商务的定义应该是“基于计算机网络并与之有效融合的商务活动”。这次的设计由于时间仓促和水平有限,网站的功能还不完美,安全性不高,尤其是后台功能,很多原先设定的如:定单管理模块等没有实现。本设计的价值比较适合于一些连锁的大型传统商城,可以作为一个网上的窗口,促进商城商务的发展。在以后的学习和工作过程中,我将进一步的改进,包括安全验证系统,更安全的数据库应用,更合理的送货管理以及客户服务。
致谢光阴似箭、日月如梭,四年的本科学习很快就要过去了,在论文即将完成之际,我衷心的感谢所有指导、关心和帮助我的老师、同学和朋友。首先感谢我的导师张坤鳌副教授!本文的研究工作是在张老师的悉心指导和严格要求下完成的。在课题的研究和论文的写作过程中,张老师给了我很多耐心的指导和启发。张老师渊博的学识、严谨的治学态度、敬业的精神和平易近人的态度,给我留下了深刻的印象,在张老师的教导下,我在学习生活方面都得到了很多的进步!他既是良师又是益友,不仅让我学到了专业知识,还让我学到了很多做人的道理,会不断激励着我奋发学习、努力进步。这些都将使我的一生受益匪浅!老师的谆谆教诲将令我终身难忘。在此,请允许我表示我深深的敬意和衷心的感谢。与此我还要感谢我的同学和室友,他们在我的学习和生活中给与了我很大的帮助和支持。我要感谢所有在我论文完成过程中给予了帮助和关心的朋友。
文章为作者独立观点,不代表 股票程序化软件自动交易接口观点