[本科毕业论文]电子拍卖网站——交易流程-工学学士.pdf
Abstract With the development of the E-business,on line auction becomes an important market transaction mechanism.It has the cost to be inexpensive,the way is flexible,the movement waits for the characteristic quickly,will auction the activity through Internet to turn each web cams to be possible to join trading mode.On line auction has a very promiosing.The specific process is online auction online,sellers bid in setting,upload commodities,buyers can date of bid,to bid online after the date,the buyer credit and a value according to the seller to decide to sell,flowsheet very handy.And the traditional auction comparison,Internet auction in cost,time,space,the amount of commodity and species are certain advantages.This paper describes an auction website design and implementation,and the use of MySQL,JSP etc development tools to achieve process.This website realized the information management,being classified management,and information to add,edit,and delete,user login can browse through registered commodity information,also can buy for commodities such as bidding and function.Key words:E-business;online auction system;MySQL;JSP 1.绪论 1.1 网上拍卖的起源 网络拍卖Auction Online是通过因特网进行在线交易的一种模式。随着网络的推广和电子商务的开展,网络拍卖开始受到的更多人的青睐。网络拍卖最早开始于 1995 年,美国的小程序员皮尔 欧米达Pierre Omidyar建立起一个小网站,他最初建立这个网站是为了向人们提供变种的埃博拉病毒代码。后来他在网站上加了一个小的拍卖程序,利用这个功能帮助他的女朋友和其他的人交换各自的收藏品。因为网站上的拍卖开展的十分迅速,一年后他辞职并开始创立开展网络拍卖业务,于是就诞生了现在全球网络拍卖的巨头-eBay.随着电子商务的开展,网络拍卖已经成为一种典型的电子交易模式。现在网络拍卖物品的范围也由以前的几类开展为现在的近二十类。2004 年 7 月,上海艾瑞市场咨询发布的?eBay 财务研究报告 2003?说明,eBay2003 年营收总额高达 2165.1 百万美元原始数据。1.2 研究电子拍卖网站的重要意义 通俗的说,所谓电子拍卖网站,就是在网上开展商务活动当企业将它的主要业务通过企业内部网Intranet、外部网Extranet以及 Internet 与企业的职员、客户供销商以及合作伙伴直接相连时,其中发生的各种活动就是电子拍卖网站作用。电子拍卖网站是基于 Internet/Intranet 或局域网、广域网、包括了从销售、市场到商业信息管理的全过程。互连网的迅速普及与应用以及电子商务模式的出现给商家提供了新的商业时机,商家的商品能够以拍卖的形式在网上进行销售。网上拍卖使交易行为不再受到时间和空间的约束,而更多的消费者得以体验拍卖这一独特的销售方式,同时也大大降低了商家的运营本钱 集中式拍卖的一个很大的缺陷就是竞标人要相信拍卖方。网页式拍卖总的来说,在系统的稳定性上要比集中式拍卖好得多,由于引进了多个拍卖节点,因而可以防止某个节点的欺骗行为或某几个拍卖节点欺骗行为,并为保证竞标的公平性提供了多种实现方法。本系统为实现公平性,主要模拟公平竞价的两种模式。一、到点式拍卖(限时制):在该拍卖模式下,拍卖模式由卖家指定一个时间段。在指定的时间段内,买家可以自由出价。在拍品竞价时间结束后,系统会自动选出价格最高的竞拍者,该模式下可以保证在限时内中选出最高的出价者。二、24 小时延时制(延时制):这种拍卖模式,同样会在指定的竞价时间内自由出价。但是在出价的最后一天,如果仍有较高的投标价,拍品的结束时间会延后 24小时,直到没有更高的出价,系统就会在 24 小时后选出最高出价者,相比到点式拍卖可以,拍品会有更高的成拍价。为保证模拟两种出价模式的实现,本拍卖系统还会实现拍卖系统各种所需功能。例如拍品上传功能、拍品分类功能、拍品专场功能、用户注册登录功能、查看竞价拍品功能、简单的用户充值功能、余额查询功能等。1.3 电子拍卖网站的现状分析 随着 Internet 的飞速开展,电子商务迅速开展起来。它大大提高了市场的方便性与灵活性,改变了人类的生活方式。随着电子商务的蓬勃开展,网上拍卖系统已经成为一种引人瞩目的新的文化机制,引起了消费者的普遍关注并逐渐被群众所接受。而传统的定位的销售形式已经逐步被这种虚拟但不虚构的销售形式所取代。人们可以在任何地方,仅仅通过浏览网页完成整个购物全过程,这使购物变得更加方便与简单。虽然,网上拍卖这种形式的出现只是近几年的事情,但其普及之广、速度之快,令人乍舌!近几年兴起的诸如易趣网、淘宝网等网上拍卖系统就是一个表达。然而,随着网上交易的迅速增加,买者和卖者的欺诈行为时有发生,网上拍卖是网上欺诈最经常的来源,网上拍卖欺诈行为占所有 Internet 欺诈行为的 70%以上。如何将这类问题处理得当是十分必要的。从国外的开展情况来看,有许多公司,机构能够得提供平安认证。通过这样的认证过程,可以使顾客的信息得到保护。经过长期的实际运作,国内外的网站对于平安问题已经根本达成一个良性的共识。1.4 本设计主要研究内容 在本系统设计中,本人主要研究的是拍品管理和竞价模式实现。在拍品管理中着重研究拍品是如何实现上传和拍品的审核,如何做到合理有效地上传卖家的拍品,上传时需要被严格说明的主体信息和附加信息等,如何有效地帮助卖家实现图片的上传、修改等细节。在竞价模式中,主要探索两种竞价模式(延时制和限时制)的实现,和需要实现竞价模式的所需功能。在竞价时,保证系统的稳定性,和功能上的公平性,同时更重要的是,保证资金的流转的一致性,不出现用户资金不到帐;购置后拍品后账户不扣帐等资金流上的问题,力求系统的各相关功能合理、有效地模拟现实生活拍卖活动上公平、合理原那么,为用户提供一个较好的竞拍环境。相对应本人的研究内容,在系统开发中主要负责的工作有前期的开发环境的搭建,保证后期各项工作的功能上的有效开发,尤其对竞价功能的实现上有重要意义。再者,负责完成两大主要功能,包括拍品的管理和拍品的竞价功能实现,需要拍品的能在用户之间相互流转,其次,负责完成程序的各个主要数据库操作接口和实现类的,为所有的数据库操作提供统一的管理。2.开发工具的选择 2.1 JSP 技术 JSP(JavaServer Pages)是由 Sun Microsystems 公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP 技术有点类似 ASP 技术,它是在传统的网页 HTML文件(*.htm,*.html)中插入 Java 程序段(Scriptlet)和 JSP 标记(tag),从而形成 JSP 文件(*.jsp)。JSP 技术使用 Java 编程语言编写类 XML 的 tags 和 scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags 和 scriptlets 访问存在于效劳端的资源的应用逻辑。JSP 将网页逻辑与网页设计和显示别离,支持可重用的基于组件的设计,使基于 Web的应用程序的开发变得迅速和容易。Web 效劳器在遇到访问 JSP 网页的请求时,首先执行其中的程序段,然后将执行结果连同 JSP 文件中的 HTML 代码一起返回给客户。插入的 Java 程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。JSP 与 Java Servlet 一样,是在效劳器端执行的,通常返回该客户端的就是一个HTML 文本,因此客户端只要有浏览器就能浏览。JSP 页面由 HTML 代码和嵌入其中的 Java 代码所组成。效劳器在页面被客户端请求以后对这些 Java 代码进行处理,然后将生成的 HTML 页面返回给客户端的浏览器。Java Servlet 是 JSP 的技术根底,而且大型的 Web 应用程序的开发需要 Java Servlet 和 JSP 配合才能完成。JSP 具备了 Java 技术的简单易用,完全的面向对象,具有平台无关性且平安可靠,主要面向因特网的所有特点。2.2 MySql 数据库 MySQL 是最受欢送的开源 SQL 数据库管理系统,它由 MySQL AB 开发、发布和支持。MySQL AB 是一家基于 MySQL 开发人员的商业公司,它是一家使用了一种成功的商业 模式来结合开源价值和方法论的第二代开源公司。MySQL 是 MySQL AB 的注册商标。MySQL 是一个快速的、多线程、多用户和健壮的SQL 数据库效劳器。MySQL 效劳器支 持关键任务、重负载生产系统的使用,也可以将它嵌入到一个大配置(mass-deployed)的软件中去。2.3 Hibernate 框架 Hibernate 是一个开放源代码的对象关系映射框架,它对 JDBC 进行了非常轻量级的对象封装,使得 Java 程序员可以随心所欲的使用对象编程思维来操纵数据库。Hibernate 可以应用在任何使用 JDBC 的场合,既可以在 Java 的客户端程序使用,也可以在 Servlet/JSP 的 Web 应用中使用,最具革命意义的是,Hibernate 可以在应用EJB 的 J2EE 架构中取代 CMP,完成数据持久化的重任。3.系统总体设计 3.1 需求分析 3.1.1 功能需求 根据电子系统的主要特征,为满足用户使用方便和电子拍卖的公平性、合理性等原那么,系统应该具备以下功能。一、具有用户注册、登录功能,实现只有会员才能参与本网站的拍品竞价。二、具有拍品管理功能,供用户上传和管理自己的拍品,查看自己发布的拍品的现时状况。三、具有拍品的分类功能,通过拍品的分类,可以区别拍品的种类,提高拍品的检索效率。四、具有简单的用户账户管理功能,模拟为用户账户充值和查询等效果。五、具备两种以上的拍卖方式,为用户实现竞拍出价功能,赢取所需的拍品。六、为用户提供一个竞价查询功能,可以查询到用户正在竞拍的产品的实时状态,如最新价格、出价时间等。七、提供拍品确认购置信息。八、具有良好的拍品页面,为用户提供拍品的各项具体信息说明。3.1.2 性能需求 根据电子拍卖网站的特性,系统要能实现为多人提供合理数据,对于系统脏数据,系统应给予提示,拒绝不合法的数据进入数据库,影响系统运行结果的正确性;在使用多线程处理用户发出的信息时,要实现线程同步、保证数据的一致性,同时也要保证系统的响应时间,尽量防止线程不同步、导致系统数据出错的不良情况。在系统的开发过程中,应尽量使所有的程序结构化,防止将所有代码写在同一个处理程序中,应尽量提高代码的重用性,遵从MVC 的设计思想,把程序按设计功能区分,各自完成自己的逻辑业务的功能。让程序更结构化,更易于系统的后期功能修改,维护。3.2 数据库表的设计(1)用户表 表 3-1 用户表(AuctionUser)字段 字段说明 类型 键码 默认值 备注 User_id 用户 ID Int 主键 NULL 自动增长 Username 用户名 varChar 外键 Userpass 密码 varChar Email 邮箱 varChar CountMoney 账户资金 Double (2)拍品分类表 表 3-2 拍品分类表(Kind)字段 字段说明 类型 键码 默认值 备注 Kind_id 分类 ID Int 主键 空 自动增长 Kind_name 分类名称 varChar Kind_desc 排序号 Int (3)拍品明细表 表 3-3 拍品明细表(Item)字段 字段说明 类型 键码 默认值 备注 Item_id 拍品 ID Int 主键 空 自动增长 Item_name 拍品名称 varChar Item_remark 标志字段 byte 空 Item_desc 拍品排序号 Int 空 Kind_id 分类 ID Int 外键 Addtime 添加日期 DateTime Endtime 结束日期 DateTime Init_price 初始价格 DateTime Max_price 一口价 Double Owner_id 卖家 ID Int 外键 Winer_id 买家 ID Int 外键 空 State_id 状态 ID Int 外键 (4)状态表 表 3-4 状态表(State)字段 字段说明 类型 键码 默认值 备注 State_id 状态 ID Int 主键 空 自动增长 State_name 状态名称 varChar 空 (5)竞价表 表 3-5 竞价表(Bid)字段 字段说明 类型 键码 默认值 备注 Bid_id 竞拍 ID Int 主键 空 自动增长 User_id 买家 ID Int 外键 0 Item_id 拍品 ID Int 外键 0 Bid_price 出价 Double 0 Bid_date 出价日期 DateTime 0000-00-00 (6)专场表 表 3-5 专场表(Shoppe)字段 字段说明 类型 键码 默认值 备注 Name 专场名 varChar 空 Fare 是否支付保证金 byte 外键 0 Condition 是否支付保证金 byte 外键 0 startTime 开始时间 DateTime 0000-00-00 endTime 结束时间 DateTime 0000-00-00 message 信息 varChar id 专场 ID Int 主键 自动增长 3.3 系统总体设计 鉴于拍卖网站以 C2C 的形式进行营业,本系统主要采用面向用户(卖家和买家)所需模块功能进行开发。对于卖家而言,最关心事情的就是自己的拍品如何放在我们系统上,如何看到自己拍品的实时状态。为此,系统为用户设计一系列拍品管理效劳功能。首先,用户(卖家)可以为自己的拍品设计一个专场,该专场即可以作为网站内容页的一个超链接,供他人浏览其中的拍品;又能为卖家设定一管理域,将拍品进行用户端的分类,方便用户管理;卖家对与自己的专场也可以实现随时性的添加、修改、删除。再者,本系统为(卖家)设计了拍品管理功能。能满足卖家上传拍品的需求,卖家能通过上传功能为系统提供拍品的详细信息,并且用户可以一次性上多张有关拍品的展示图,无需逐一上传。同时拍品管理还可为客户提供拍品信息的修改功能,但是只限于正在审核的拍品。卖家也能查看到自己拍品的当前竞拍价格,以及竞拍次数等等。而系统对于另一类用户(买家)而言,系统也提供一系列的根底功能,如用户的收货地址管理功能,为用户提供了多个收货地址的添加、收货地址信息的修改、过时收货地址删除等功能。除了寄出的功能外,买家最关新的是自己竞拍的拍品情况,系统也提供了一个拍品竞拍的查询功能,可以查看到用户当前竞拍拍品的最新竞拍价,也为买家提供了一个再度出价的超链接,方便用户实时出价。为了完善用户发布、竞拍以及交易成功整个流程,系统模拟了一个简单用户账户充值功能,为整个系统实现一个资金的流转。也为用户竞拍提供了多种的竞拍模式,延时制竞拍、限时制竞拍、一口价竞拍等,模拟实现用户在网上进行交易的公平性、合理出价的功能。而后系统还提供了其他的根底性的功能,如用户注册、登录、页面表单验证、禁止重复提交等一系列的用户功能和系统功能,为系统提供主要功能实现的保证。4 主要功能模块设计 4.1 系统功能概述 图 4-1 功能调用图(1)拍卖品发布。发布商品信息;填写拍品信息后,在页面提交前先做下数据格式验证,对与非法数据或缺省主要数据的拍品提出提醒信息。当拍品信息上传后,可以在“我的拍品中查看到自己的拍品信息,包括状态信息。用户可以查看自己上传拍品的实时信息。(2)拍卖品竞价。拍品竞价分两种模式:一种为到点式拍卖,一种为 24 小时延时制。根据卖家上传拍品时所选的出价模式,当买家出价的时候,系统会自动判断,启动不同的竞价模式。当出价成功的时候,会生成一个订单,通过订单可以查看买家对该拍品的出价信息,和该拍品的实时价格,让用户了解信息拍品的实时信息。(3)拍卖品的浏览和查找。系统将拍品进行了按专场和分类进行存放,在网页的浏览页中可以透过专场和分类去寻找自己需要的拍品。与此同时卖家也可以自己设置自己的专场,存放自己拍品,吸引买家。(4)用户专场功能。用户可以建立自己的专场,为自己的拍品添加个人专场,而且用户可通过自己的专场,查看自己的上传的拍品信息。买家也可以通过专场的寻找到所需的拍品。(5)拍品分类功能。管理员可以为进行拍品分类的添加、编辑、删除的功能。卖家在发布商品时,可以看到管理员添加的专场并选择所属的产品分类。买家也可以通过拍品分类,快速地浏览分类内的拍品。(6)拍品竞价功能。用户可以对商品进行出价。出价后可以在“我的竞拍看到自己的拍品最新信息。如果想再次出价,可以通过我“我的竞拍再次出价。出价的模式包括:24 小时延时制和到点式出价制,来实现用户竞价的公平性。4.2 使用 JDBC 访问 MySQL 数据库 本系统采用 C3P0 数据源,C3P0 是一个开源的 JDBC 连接池,它实现了数据源和 JNDI 绑定,支持 JDBC3 标准和 JDBC2 的标准扩展。目前使用它的开源工程有Hibernate,Spring 等。使用 C3P0 数据源后,程序会启动时,所有的数据库连接,都有 C3P0 数据源产生。本系统设置连接的连接最大数目 40,初始连接为 5。为系统启动时,会自动产生数据 Connection 的连接,节省创立数据库连接所需的时间。在使用 C3P0 数据库连接,系统响应时间大大减少。4.3 拍品上传及管理功能模块设计 拍品上传及管理功能主要把拍品的各种详细信息上传到系统中。其中主要的信息包括拍品名称、初始价格、一口价、最小加价、拍品保存价、拍品展示时间、拍品结束时间、拍品图片,如图 1:图 4-1 拍品上传页面 该拍品上传功能实现的重点在于实现时日期格式的处理和图片的上传处理。由于从网页上接受过来的时间数据是已字符形式的数据接受,程序不能直接当作日期格式的数据来进行处理,所以必须将自己重新编写字符串转换为日期格式数据。同样在拍品信息回传的网页上,又必须编写一个方法将日期格式的数据转换成字符串的形式。该功能的另一个实现的难点在于图片的上传,首先本系统以文件的形式进行图片的存储,而不直接把图片以二进制的形式存储进数据库,这样的使图片的存方式更灵活,又能节省去数据库取图片时所花的时间,提高了系统的响应时间。由于从网页获取的图片是二进制的数据流,所以必须要将获得的数据流重新写到效劳器系统上,要将文件以流的形式进行处理,其实现的主要代码如下:String realPath=request.getRealPath(/)+savePath+;Date date=new Date();String name=fileFileName.substring(fileFileName.lastIndexOf(.);name=date.getTime()+_+Math.round(1000000*Math.random()+name;BufferedInputStream bif=new BufferedInputStream(new FileInputStream(file);BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream(realPath+name);while(bif.available()0)bos.write(bif.read();bif.close();bos.close();在重写图片文件之前,还必须给图片一个新的命名,防止同名的文件覆盖已有的文件,这里采取图片的命名格式为一个距离1970年的毫秒数加上一个1到100000之间的随机数,以保证不出现图片覆盖的情况。其次保存后的图片必须展示在用户面前,所以除了将图片的名称放进数据库以外,还将图片的名称保存在网页的Session 范围内,方便用户对图片的处理。4.4 拍品竞价功能模块设计 拍品的竞价模式主要有两种:到点式的拍卖制(限时竞价)和24小时的延时制 延时竞价,其主要流程图如下:图 4-3 竞价流程图 在实现限时竞价和延时竞价的两种模式之前,程序先会查看用户的金额是否足够参与拍卖。金额缺乏的用户,系统会提示充值的信息。其次,对于需要缴纳保证金的拍品,系统会提示用户缴纳保证金。当缴纳保证金后,系统会在用户的账户上扣除缴纳的保证金,同时对于同一件拍品只需缴纳一次保证金。当这些条件都满足时:用户可以进行自己的出价,在出价上,程序也做了处理,包括上传拍品的卖家不能充当买家去对自己的拍品进行出价,防止用户在哄抬物价。而对于出拍价不符合当前的出价要求(例如低于当前价格、小于最小加价)系统给予提示信息。只要符合以上所有要求的出价,才是为合理数据去进行处理。而对于延时制下的拍品,如果最后一天仍有人出价,那么拍品的展示时间将延后一天。而对于一口价而言,只要用户出价大于等于一口价,拍品那么直接被拍下。以下是一段延时制出价处理代码:Bid bid4=new Bid();Double youPrice=(Double)request.getSession().getAttribute(youPrice);bid4.setBidPrice(youPrice);bid4.setAdditionalPrice(0);bid4.setBidDate(new Date();bid4.setItem(item);bid4.setState(implState.get(12);bid4.setUser(user);item.setNowPrice(youPrice);if(youPrice(item.getNowPrice()+item.getMinAddPrice()&youPriceitem.getKeepPrice()&youPriceitem.getMaxPrice()State state=implState.get(14);item.setState(state);bid4.setState(state);once=true;implItem.update(item);implBid.save(bid4);Map bid_flag=new HashMap();bid_flag.put(item.getId(),true);request.getSession().setAttribute(bid_flag,bid_flag);4.5 拍品展示功能模块设计 本系统的拍品展示模块主要表达在用户的首页上。在首页中分别设置了几种不同级别的拍品,包括最新发布的拍品、首页顶部的拍品、网站推荐的拍品。在右侧栏中还按拍品的分类、拍品的专场分类进行展示拍品。对于各种的拍品的级别的判断,主要是通过数据库拍品表的State_Id 字段去进行判别的,而拍品的级别主要是由管理员进行设定的。其拍品展示网页如下列图(测试数据):图 4-4 置顶拍品 图 4-5 拍品展示图 5 系统评价 5.1 与其他类似网站比拟有什么特点 5.1.1 系统功能上的特点 时机均等。拍卖是在众多买家参与下,以价格竞争的方式对拍卖标的进行竞买,每个投买者都有屡次出价的权利,只要自己需要并有满足这种需要的相应财力,都有在出到最高价格后购得拍卖品的时机。价格合理。在一般的商品交易中,由于各种人为的因素,往往会使商品的价格与价值相背离,甚至可能是严重背离,而在网站拍卖市场中,竞价是在众目睽睽之下进行的,众多买家心明眼亮,不必担忧其中有“猫腻,拍卖品受到市场的充分检验,最后实现的价格能与价值趋于一致。公开性强。拍卖会是面向社会的,不问职业、年龄、性别,只要按章程办理了入场手续,各界人士都可以参加拍卖会。从拍卖的程序上看,每次拍卖会前都要事先登广告,发布信息,将拍卖标的的种类、拍卖场地、日期等事项公开告知公众。并且要在拍卖前把拍卖品向社会公开展示,使参加拍卖会的人士在拍卖前就可以了解到拍卖品的品种、数量、规格、尺寸、质量、颜色、包装及参考价格。在重要的拍卖会之前,投买者还可以得到文字和图片的介绍,可以说每一个环节都表达其公开性。5.1.2 在系统架构上特点 与传统的 JSP 页面相比,本系统集成了 Struts2、Hibernate、Spring 框架。改变了 JSP 页面上混杂了 JavaScrip、Html、Java 代码的复杂的页面,系统的所有页面上,只会出现标签语言、和 JavaScript 脚本,不再嵌套上 Java 编程语言,增加了程序的可读性。采用的 MVC 的设计模式,明确了各个程序需完成的功能,减低程序编写的复杂性。Model 由 Spring 配置的逻辑 bean 去完成,Veiw 用 JSP、EL 表达式、JSTL 标签去完成数据展示的功能,Contorl 由 Struts2 去组织各种业务功能。对于数据库的操作,系统上提供了一系列的接口,不同的表通过不同的实现类去定义具体的方法。在实现业务的具体程序中,只需通过简单的方法调用即可完成一系列的数据库操作,提高了代码的重用性。5.2 系统功能测试 拍品上传及管理功能:经过 20 组拍品数据测试,系统能将全部的数据写入数据库,并且相关的数据表格如图片(Image)表也能进行同步写入,均无异常。当缺少关键数据的输入,该功能的验证框架均能检测出来,系统并能发出提示信息。对于该功能的一个图片上传功能,对于该过程中用户删除的图片,也成功在数据库中删除掉。进过屡次测试,上传功能根本完善,无明显错误出现。拍品竞价功能:进行 15 次的拍品竞价测试,均能进入相应的竞拍模式。在延时竞价模式、限时竞价模式、一口价模式中,均能选出竞拍的优胜者。在此过程中防止卖家自买的情况,也成功被系统拦截下,对于出价不合理的用户,系统均能发出提示信息。出价页面的重复使用,也被系统拦截下。竞价的根本功能较完善,无明显错误。拍品展示功能:对于首页的拍品级别,通过数据库的改变拍品的状态,也均能在页面上展现出来。对于按拍品分类、专场展示拍品,查出的拍品也均能按各自的类别进行展示。展示功能根本完善,无明显的错误。5.3 心得体会 在这次设计中,虽然遇到许多的困难,但通过不懈的努力与坚持,终于根本完成了毕业设计。在整个毕业设计的过程中,我懂得了如何通过自己学到知识去完成一个完整的系统。了解到设计前应该要做背景调查、功能需求分析等等的准备工作,更加深入地了解 Java、MySQL 数据库设计等,在设计的过程中,运用在数据结构中所学的各种数据结构的知识,如 List、Map、Set 等 Java.util 包中各种数据结构,去完成各种数据的封装功能。同时在制作整个系统的过程中,也遇到了不少的问题。而每个问题的解决都是在考验个人的能力。遇到的主要问题之一:在编写页面表单的验证框架时,在做非效劳器验证时,用的是第三方所写的 JavaScript 验证,所以不得不去仔细地阅读这个文件的使用文档,然而按照说明文档配置出来页面验证竟然不起作用。然后通过不断地测试和检查,最后发现主要问题出现在文档引用路径上。出现这样的原因是在于参加 Struts2 这样的中间件,会影响相对路径的使用。而在发现主要原因后,通过重新构造引用的路径,最终才使得第三方的页面验证起了作用。遇到的另外的较深刻的问题,就是在编写上传拍品图的网页的图片处理上,由于网页如果使用 form进行传值时,要不使用二进制流形式传值,要不使用字符串形式传值。也就意味着不能简单地把字符串形式的数据,和二进制流的形式混合在一起,进行网络传送。然后不得不把拍品图片和其他拍品数据分开放在两个 form 进行传送,通过 Html 标签的 iframe 把他们整合在一起。然而使用 iframe 整合两个 form 时,在添加图片时又由于 iframe 的高度改变,因为页面上的高度并没改变,导致丧失局部页面数据,最后在知道这个问题原因后以后,编写了一个 javascript 下程序,每隔 0.2 秒更新一次 iframe 的高度,才根本解决了该拍品上传的问题。其后,在开发中还有很多大大小小的问题。整个系统在开发中,就是在不断的发现问题,不断地解决问题。每次解决问题,都是在提高自己的开发技术,从中也学到了不少开发的技巧。在系统的制作过程中,能够把自己学的各种知识,运用到自己所编写的系统中去,既能把把各种知识进行融汇,又更是一种挑战。无论在设计还是制作系统的过程中都让我获益良多,明白到制作一个较好的系统并非一朝一夕,需要花时间去研究、去设计每一个功能,而后有能将他们合理地组织到一起,才能真正有效、快速实现开发。6 系统说明 6.1 开发工具和测试环境 系统中主要使用的开发工具有:Java 语言、Html 标签、CSS 样式表、JavaScript脚本、JSP、EL 表达式、JSTL 标签、Struts2 框架、Hibernate 框架、Spring 框架。测试环境:MyEsclipse 开发环境、MySQL 数据库、Tomcat 效劳器等 6.2 系统安装及使用说明 6.2.1 Tomcat 效劳器的安装 安装 Tomcat 之前要先安装 JDK,可从 :/java.sun 上下载最新版本的JDK。Tomcat 可从站点 :/jakarta.apache.org/site/binindex.cgi 上下载,本书使用的 Tomcat 版本是 5.5.7,它需要安装 J2SE 5.0JDK 1.5以上的版本才能运行。对于 Windows 操作系统,Tomcat 5.5.7 提供了两种安装文件,一种是jakarta-tomcat-5.5.7.exe,一种是 jakarta-tomcat-5.5.7.zip如果读者使用的是 Linux系统,请下载 jakarta-tomcat-5.5.7.tar.gz。jakarta-tomcat-5.5.7.exe 是 可执行的安装程序,读者只需要双击这个文件,就可以开始安装 Tomcat 了。在安装过程中,安装程序会自动搜寻 JDK 和 JRE 的位置。安装完成后,在 Windows 系统的“开始-“程序菜单下会添加 Apache Tomcat 5.5 菜单组。jakarta-tomcat-5.5.7.zip 是一个压缩包,只需要将它解压到硬盘上就可以了。在这里,我建议读者下载 jakarta-tomcat-5.5.7.zip压缩包,通过解压缩的方式安装 Tomcat,因为解压缩的方式也适用于其他的操作系统,例如 Linux 系统。下面我们 主要介绍 jakarta-tomcat-5.5.7.zip 的安装与 Tomcat运行环境的设置。1 安装 Tomcat 使 用WinZip或WinRAR等解压缩工具将 jakarta-tomcat-5.5.7.zip解压到指定的驱动器和目录中。笔者是在 D 盘上直接解压,产生了目录 jakarta-tomcat-5.5.7,解压后的文件存放于 D:jakarta-tomcat-5.5.7 下。6.2.2 拍卖系统安装 只需把系统文件放在 Tomcat 目录下的 appWeb 文件内,运行 Tomcat 启动程序,即可启动拍卖系统