电脑销售管理系统设计与开发.doc
信息工程学院本科毕业论文2021届题 目电脑销售管理系统设计与开发系计算机专 业计算机科学与技术信息工程学院班 级学 号学生姓名沈华清指导教师谌志群完成日期2021年6月摘 要在计算机飞速开展的今天,采用计算机来对产品进展管理已成为销售市场科学化和现代化的重要标志,它给买家和卖家都带来了明显的经济效益和社会效益。电脑在每年的销售量都保持在一个惊人的数量级上,可以说如今电脑已成为人们生活中的一局部。因此,开发一个电脑销售管理系统是相当有必要的。本次毕业设计要实现的是一个电脑销售管理系统,该系统根本实现了以下的功能:注册为该网站的用户,在这个模块中主要使用了Struts的Validator验证器来对用户输入的格式进展验证,Ajax技术来确保账号的唯一性;一般权限的用户可以对在售电脑的信息进展浏览,浏览又可以分为机型分类,店主推荐机型,热门机型,新机型和热卖机型的浏览,这块主要通过在Jsp页面使用Div和Css来实现;具有管理权限的用户能对已注册用户的账号有效性以及合法性进展审核,添加新型的电脑,删除不销售的电脑,对用户生成的订单进展浏览和发货操作。本课题所要设计与实现的系统是用Java结合Mysql数据库来实现,其中主要运用Java中的MVC框架,用JavaBean来做Model,完成对数据的读取,用Sevelet来作为Controler,来承受用户的输入并调用Model和Model去完成用户的需求,用Jsp页面来作为View完成与用户之间信息的交互。关键词:销售系统;Java;Jsp;Mysql数据库ABSTRACTToday, with the rapid development of the computer, using computers to manage product has become an important scientific and modern symbol in sales market. It gives buyers and sellers have brought significant economic and social benefits. Computer sales are kept at an alarming magnitude each year, it can be said now the computer has become a part of life. Therefore, the development of a computerized sales management system is very necessary.The graduation project is to be achieved by a computer sales management system,this system basically the following functions: Registration for the site's users, in this module, i use the validator of Struts Validator to format what the user input, and use Ajax technology to ensure the uniqueness of account; users who has general authority can browse the information of the computer in the sale, this model can be divided into categories model, recommended model, hot model, new model and hot rank model.this function achieves primarily through the use of Div and Css in the Jsp page; users with administrative privileges can review the validity and legality on registered account, add new computers, delete computers which does not sell, and browse user-generated orders and send computers operations.The system is combined with Java and Mysql database, primarily using the MVC framework in Java. To use the JavaBean as Model, read the data from database, using Sevelet as Controler, to accept user input and calls the Model and View to complete the needs of users, with Jsp page as View complete information between the user interaction.Key words:Sales system;Java;Jsp;Mysql database目 录1 引言12 开发环境的介绍及安装22.1 Java概述22.2 Jsp的介绍22.3 Myeclipse的安装33 系统分析63.1 系统设计的背景6系统需求分析63.3 系统开发的目标63.4 数据库分析74 系统设计84.1 总体设计84.2 详细设计125 系统实现135.1 用户注册模块的实现135.2 电脑浏览的实现155.3 订单生成的实现205.4 管理员用户管理的实现225.5 管理员订单管理的实现235.6 电脑上架的实现246 设计过程发现问题及解决267 结论27致谢28参考文献291 引言 电子商务给我们的日常生活带去的好处是显而易见的。首先,我们可以对现有的资源进展合理的利用。在经济全球化开展中,我们不能只故眼前的利益而放弃了更好的开展道路。因为互联网的普及和电子商务的日益完善,最先参加网络贸易的商家将受益无穷。供需双方可以通过Internet获得丰富的供求信息,开拓广阔渠道,捕捉商机、寻找客户,提高工作效率。电子商务是一种方式、一种媒介、一种信息共享。它可以实现无纸化办公,通过降低传统企业在制作、传送、管理和处理纸质文件的本钱,不仅可以降低这些纸质文件的本钱,更重要的是简化流程、减少耽误和错误,提高公司的灵活性、应变能力和提供更好的效劳能力。它还可以实现即时生产、即时经销、即时效劳和即时通信。其次,互联网使我们对传统的空间概念发生变化,出现了有别于实际地理空间的虚拟空间或者虚拟社会。处于世界任何角落的个人、公司或机构,可以通过互联网严密地联系在一起,建立虚拟社区、虚拟公司、虚拟政府、虚拟商场、虚拟大学或者虚拟研究所等,以到达信息共享、资源共享、智力共享等。然后,电子商务也任然保存了传统商品交易中的互动性。通过互联网,商家之间可以直接交流、谈判、签合同,消费者也可以把自己的反应建议反映到企业或商家的网站,而企业或者商家那么会根据消费者的反应及时调查产品种类及效劳品质,做到良性互动. 借助于电子商务的如此多的优势之上,杭州的百脑汇在线电脑销售系统取得了巨大的成功,它具有浏览电脑信息,在线交易,送货上门等功能。它让我们即使不用去电脑商城也能够对各种品牌,各种型号的电脑信息有个比较直观的了解。和传统的交易方式相比,百脑汇在线电脑销售系统有很多优越之处,如它可以突破地域和时间限制,使处于不同地区的人们自由地传递信息、互通有无、开展贸易,它的快捷、迅速、自由是传统的电脑商城所无法比较的。因此,电脑的在线销售也必将在不久的将来成为主流,所以开发一个基于B/S构造的电脑销售系统也是十分有意义的1。2 开发环境的介绍及安装2.1 Java概述 Java是一个广泛使用的网络编程语言,它是一种新的计算概念。Java语言是一种面向对象的语言,它通过提供最根本的方法来完成指定的任务,只需理解一些根本的概念,就可以用它编写出适合于各种情况的应用程序。Java略去了运算符重载、多重继承等模糊的概念,并且通过实现自动垃圾收集大大简化了程序设计者的内存管理工作2。 Java语言的设计集中于对象及其接口,它提供了简单的类机制以及动态的接口模型。对象中封装了它的状态变量以及相应的方法,实现了模块化和信息隐藏;而类那么提供了一类对象的原型,并且通过继承机制,子类可以使用父类所提供的方法,实现了代码的复用。用于网络、分布环境下的Java必须要防止病毒的入侵。 Java不支持指针,一切对内存的访问都必须通过对象的实例变量来实现,这样就防止程序员使用“特洛伊木马等欺骗手段访问对象的私有成员,同时也防止了指针操作中容易产生的错误。与平台无关的特性使 Java程序可以方便地被移植到网络上的不同机器。 同时,Java的类库中也实现了与不同平台的接口,使这些类库可以移植。另外,Java编译器是由Java语言实现的,Java运行时系统由标准C实现,这使得Java 系统本身也具有可移植性。Java的设计使它适合于一个不断开展的环境。在类库中可以自由地参加新的方法和实例变量而不会影响用户程序的执行。并且 Java通过接口来支持多重继承,使之比严格的类继承具有更灵活的方式和扩展性。 2.2 Jsp的介绍 Jsp标准是Web效劳器、应用效劳器、交易系统、以及开发工具供给商间广泛合作的结果。Sun公司开发出这个标准来整合和平衡已经存在的对Java编程环境例如,Java Servlet和JavaBeansTM进展支持的技术和工具。其结果是产生了一种新的、开发基于Web应用程序的方法,给予使用基于组件应用逻辑的页面设计者以强大的功能3。 Jsp技术在多个方面加速了动态Web页面的开发:首先,使用Jsp技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面。使用 Jsp标识或者小脚本来生成页面上的动态内容内容是根据请求来变化的,例如请求帐户信息或者特定的一瓶酒的价格。生成内容的逻辑被封装在标识和 JavaBeans组件中,并且捆绑在小脚本中,所有的脚本在效劳器端运行。如果核心逻辑被封装在标识和Beans中,那么其他人,如Web管理人员和页面设计者,能够编辑和使用Jsp页面,而不影响内容的生成。在效劳器端,Jsp引擎解释Jsp标识和小脚本,生成所请求的内容例如,通过访问JavaBeans组件,使用JDBCTM技术访问数据库,或者包含文件,并且将结果以HTML或者XML页面的形式发送回浏览器。这有助于作者保护自己的代码,而又保证任何基于HTML的Web浏览器的完全可用性。 其次,Web页面开发人员不会都是熟悉脚本语言的编程人员。JavaServer Page技术封装了许多功能,这些功能是在易用的、与Jsp相关的XML标识中进展动态内容生成所需要的。标准的JSP标识能够访问和实例化 JavaBeans组件,设置或者检索组件属性,下载Applet,以及执行用其他方法更难于编码和耗时的功能。通过开发定制化标识库,Jsp技术是可以扩展的。今后,第三方开发人员和其他人员可以为常用功能创立自己的标识库。这使得Web页面开发人员能够使用熟悉的工具和如同标识一样的执行特定功能的构件来工作。Jsp技术很容易整合到多种应用体系构造中,以利用现存的工具和技巧,并且扩展到能够支持企业级的分布式应用。作为采用Java技术家族的一局部,以及Java 2企业版体系构造的一个组成局部,Jsp技术能够支持高度复杂的基于Web的应用。由于Jsp页面的内置脚本语言是基于Java编程语言的,而且所有的Jsp页面都被编译成为Java Servlet,Jsp页面就具有Java技术的所有好处,包括强健的存储管理和平安性。作为Java平台的一局部,Jsp拥有Java编程语言“一次编写,各处运行的特点。随着越来越多的供给商将Jsp支持添加到他们的产品中,您可以使用自己所选择的效劳器和工具,更改工具或效劳器并不影响当前的应用。当与Java 2平台,企业版(J2EE)和Enterprise JavaBean技术整合时,Jsp页面将提供企业级的扩展性和性能,这对于在虚拟企业中部署基于Web的应用是必需的。2.3 Myeclipse的安装我是依照Myeclipse中文版本的安装过程来讲解和截屏的,如果你手里有的是Myeclipse的其它版本,也别担忧,因为无论是Myeclipse的哪个版本,安装过程几乎都是一样的,最多是在安装功能选项中,有些版本功能多,有些版本功能少而已。由于没有安装光盘,我就下载了一个。双击下载的exe文件,即可进展解包,这步所花时间较长,你会看到图2-1所示。图2-1 安装路径界面选择安装Myeclipse 6.0的目录,如图2-2所示。图2-2 安装过程界面选择开场菜单中的程序组,用如图2-3所示的选择即可。图2-3 安装过程界面开场安装Myeclipse 6.0,如图2-4所示。图2-4 安装过程界面确认安装,至此,你已经成功安装好了Myeclipse3 系统分析3.1 系统设计的背景信息是当代最流行的词语之一。翻开书报充满眼帘的是“信息时代、“信息科学、“信息技术、“信息产业、“信息就是财富等等。“信息是物质的根本属性之一,是物质间接存在性的自身显示。信息的作用是消除不确定性。4在经济日益全球化的今天,我们看到计算机网络技术的迅猛开展,利用因特网实现商务活动的国际化、信息化和无纸化,已经成为经济全球化开展的一大趋势。电子商务正是为了适应这种以全球为市场的变化而开展起来的,并已在国际贸易和商业领域得到广泛应用,而本课题正是对电子商务的具体化实际应用。3.2 系统需求分析本毕设课题是要设计与开发一个在线的电脑销售管理系统,该系统主要包括用户账号注册,电脑信息的品牌分类、店主推荐机型、新上架机型、热卖机型和热卖机型榜的浏览,下订单,管理员对账号、订单、产品的上架与下架的管理等几个局部。系统主要划分为以下几个模块:1用户注册模块:创立用户进入购置页面的账号。2电脑信息浏览模块:实现对不同品牌电脑的根本信息浏览。3订单模块:收集用户购置的电脑信息。4管理员模块:实现管理员的登录以及对注册用户的账号审核和删除。5电脑上架与下架:产品入库与出库的管理。6订单管理:送货地址的审核以及进展发货操作。3.3 系统开发的目标在软件开发工程中,信息管理的影子随处可见,但要真正使技术人员的积极性都发挥出来,并不是“影子所能完成的。正所谓“知易行难,信息管理并不仅仅是管理信息这么简单。它有一套完备的目标体系;它需要科学的方法,需要一种对时间进度、任务分解、绩效控制的把握和判断的过程。而该销售系统开发的目标就是为了让更多的人能够在线了解最新的电脑资讯,使他们能够更加便捷的购置电脑。软件的开发本身就是一件很好的事情,能够让技术人员开发研究一个比较完善的系统,能够更好的让客户使用,让更多的人方便使用,了解和知道系统软件的可行性和可操作性。3.4 数据库分析什么是数据库呢?当人们从不同的角度来描述这一概念时就有不同的定义当然是描述性的。例如,称数据库是一个“记录保存系统该定义强调了数据库是假设干记录的集合。又如称数据库是“人们为解决特定的任务,以一定的组织方式存储在一起的相关的数据的集合该定义侧重于数据的组织。更有甚者称数据库是“一个数据仓库。当然,这种说法虽然形象,但并不严谨。严格地说,数据库是“按照数据构造来组织、存储和管理数据的仓库 5。在经济管理的日常工作中,常常需要把某些相关的数据放进这样“仓库,并根据管理的需要进展相应的处理。例如,在本次毕业设计中的电脑信息表,在该表中保存了电脑的根本参数电脑编号,屏幕尺寸,显卡类型,产品定位,产品重量,Cpu类型,内存大小,硬盘大小,这张表就可以看成是一个数据库。有了这个“数据仓库我们就可以根据需要随时查询某类型电脑的根本情况,也可以查询在某个特定内存区间内的电脑类型等等。这些工作如果都能在计算机上自动进展,那我们的人事管理就可以到达极高的水平。此外,在财务管理、仓库管理、生产管理中也需要建立众多的这种“数据库,使其可以利用计算机实现财务、仓库、生产的自动化管理。4 系统设计 总体设计在需求明确、准备开场编码之前,要做总体设计,而详细设计会在后一章节详细说明与设计。因此,对于总体设计只要介绍系统软件所需要实现的功能和操作,对后面的开发、测试、实施、维护工作起到关键性的影响6。在电脑销售管理系统中,对特别而强的功能是不要求,只需简单实现根本功能就可以了,因此以用户注册,电脑浏览,订单生成,管理员管理等操作功能作为根本功能来开发总体设计。总体设计的界面也是很简单的,就主要以电脑浏览页面做为主页面,其他功能的页面作为子页面。通过对该系统简单分析,所需总体设计的方面有以下几个:1需要做好数据库的准备,通过Mysql数据库来完成数据的输入工作,通过SQL语句来实现简单的储存过程;2前台的页面设计尽量简单化、可视化、可操作化、可扩大化;3前台页面功能的设计通过在Myeclipse下编写Jsp页面来实现;4要求做到本系统的扩大性和可更新性,就是在对数据库进展修改、添加、更新等操作。 数据表构造的建立通过本系统,需要建立的表有七张,分别为:d_d_user,d_d_computer,d_d_order,d_d_category,d_d_product,d_d_receive_address,d_d_order_detail。d_d_user表中存储用户的根本信息,该表中的Email字段用来存储登录的账号,Is_email_verify用来查看是否通过邮箱验证,通过验证的该字段为1,未通过的那么为0,其构造如表4-1所示。表4-1 d_d_user表字段名类型意义Id整型12用户编号Email文本50帐号名Nickname文本50昵称Password文本50密码Is_email_verify整型1是否通过邮箱验证Email_verify_code文本50邮箱的验证码d_d_category表中存储电脑的不同品牌信息,该表中的Turn字段用来存储每个类别下子类别的个数,Parent_id中存储的是父类的Id号,方便分类存取,其构造如表4-2所示。表4-2 d_d_category表字段名类型意义Id整型12类别编号Turn整型3子类序号En_name文本50英文名称Cn_name文本50中文名称Parent_id整型12所属父类编号d_d_computer表中存储电脑参数信息,其构造如表4-3所示。 表4-3 d_d_computer表字段名类型意义Id整型12电脑编号Screen_size文本20屏幕尺寸Graphics文本50显卡类型Types文本20产品定位Weight文本20产品重量Cpu文本20Cpu类型Memory 文本20内存大小Hard_size文本20硬盘大小d_d_product表中存储电脑参数信息,该表中的Id为d_d_computer表的外键,并且两表做了级联操作,Category_id字段存储的是该产品的类别号,需用时可以直接通过取该产品的Category_id来到达取该产品信息的目的,其构造如表4-4所示。 表4-4 d_d_product表字段名类型意义Id整型12电脑编号Category_id整型12类别号Product_name文本100产品名称Add_time长整型20入库时间Fixed_price双进度浮点型市场价Dang_price双进度浮点型会员价Product_pic文本200电脑图片d_d_order表中存储订单信息,该表中的User_id与Send_id是为了方便做表关联查询操作而设置的字段,他们分别表示在d_d_user表中的用户Id和在d_d_receive_address表的Id,Status表示的是订单的状态,为1时表示该订单已发货,为0时那么表示还未发货,由于在程序中调用的是系统的毫秒数,所以在设计Order_time类型时采用的是长整形,其构造如表4-5所示。表4-5 d_d_order表字段名类型意义Id整型10订单编号User_id整型10用户编号Send_id整型12送货地址号Status整型10订单状态Order_time长整型20下订单日期Total_price双进度浮点型订单总价Send_time长整型20出货日期d_d_order_detail表中存储订单详细信息,表中的Order_id字段与表d_d_order中的Id相对应,方便对订单详细信息的了解,其构造如表4-6所示。 表4-6 d_d_order_detail表字段名类型意义Id整型12编号Order_id整型12订单编号Product_name文本50货物名称Num整型50货物数量d_d_receive_address表中存储送货信息,表中的User_id字段与表d_d_user中的Id相对应,方便对用户信息表的关联操作,其构造如表4-7所示。 表4-7 d_d_receive_address表字段名类型意义Id整型12送货编号User_id整型10用户编号Receive_name文本20收货人Full_address文本200送货地址Postal_code文本8 Mobile文本15手机号Phone文本20固定 数据库中数据建立通过该系统,需要建立的表数据有三张分别为:d_d_computer,d_d_category,d_d_product。d_d_category表所要建立如图4-1数据所示。图4-1 d_d_category表中数据的显示 d_d_computer表所要建立如图4-2数据所示。图4-2 d_d_computer表中数据的显示 d_d_product表所要建立如图4-3数据所示。图4-3 d_d_product表中数据的显示4.2 详细设计最重要的局部是模块的流程图、状态图、局部变量及相应的文字说明等。在这个阶段,各个模块可以分给不同的人去并行设计,当然设计就本人一个人全部实现系统设计。在详细设计阶段,设计者的工作对象是一个模块,根据总体设计赋予的局部任务,设计并表达出模块的流程、状态转换等内容。该系统详细设计的有几个功能界面7。比方用户注册,电脑浏览,订单生成,管理员管理,其中把电脑浏览页面作为主界面进展设计和功能实现。详细设计主要是对总体设计进展详细的开发和设计,其中设计包括前台的界面设计和后台数据库的设计。后台对数据库的输入,对其进展分析,然后在前台进展控件的使用,代码的编程。详细设计主要包括界面的设计,操作功能的初步实现如添加、删除、修改等功能。以及实现每一个操作功能。 功能设计界面对于用户的功能设计界面分为以下几个根本功能。如图4-4所示。 图4-4 系统的功能图用户主界面就是一个电脑浏览的页面,用电脑浏览作为主界面,其他页面作为子页面。通过用户主界面的链接来跳转其他界面。通过跳转的代码编程来实现主页面跳转到其他子页面。5 系统实现5.1 用户注册模块的实现 在该模块中,采用Jsp页面来获取用户输入的信息,该模块页面如图5-1所示。图5-1 注册界面在这个模块中,主要做的工作有输入格式的验证,帐号唯一性的验证还有验证码类的编写。对格式的验证采用了Struts框架中的Validator框架。使用该框架必须先导入Jakarta-oro.Jar和 Commons-validator.Jar这两个Jar包。Validator采用基于两个Xml文件的方式来配置验证规那么,分别为Validation.xml,Validator-rules.xml。在Struts应用中,需放到Web-inf目录下。在Validator-rules.Xml这个文件包含了一组验证规那么,对所有Struts应用都适用。一般情况不用修改这个文件,除非要修改或扩展默认规那么。如果要给应放到另一个Xml文件中,而不是直接添加到Validator-rules.xml文件中,这样当Validator升级时,不用修改V8Struts应用的,他可以为应用中的ActionForm配置验证规那么。而不用编码实现验证。其次是对帐号的唯一性进展验证,防止同一帐号的重复注册。该功能是通过Ajax来实现的。当用户在Email地址栏中填完帐号,文本框失去焦点时,就会由Onblur去触发checkEmail方法,以下即为checkEmail方法的实现代码。 var d = document.getElementById("email_exist");var email = document.getElementById("txtEmail");var xmlHttpRequest = null;if(typeof XMLHttpRequest) != 'undefined') xmlHttpRequest = new XMLHttpRequest();else xmlHttpRequest=new ActiveXObject('Microsoft.XMLHttp');xmlHttpRequest.open('GET','ajaxEmailAction.do?email='+email.value, true);xmlHttpRequest.onreadystatechange=function() if(xmlHttpRequest.readyState=4) var txt = xmlHttpRequest.responseText;d.innerHTML = txt;xmlHttpRequest.send(null); 该方法会将获得的帐号信息传给ajaxEmailAction.java中,在该类中系统将会把获取的帐号去数据库的d_d_user表中去遍历,假设找不到那么返回“该帐号可用信息,ajaxEmailAction.java中的处理代码如下。String email_exist = ""String email = request.getParameter("email");SuperUserDao userDao = UserDaoFactory.getUserDao();List list =userDao.findByEmail(email);if("".equals(email)email_exist = ""else if(list.size()=0)email_exist = "恭喜你,该账户可用"elseemail_exist = "Sorry,该账户已被注册"response.setContentType("text/plain;charset=utf-8");response.getWriter().write(email_exist);return null; 最后在该模块中还写了个ImageServletAction类来获得验证码,在这里使用的是中文验证码,主要代码如下。 response.setContentType("image/jpeg"); OutputStream ops = response.getOutputStream(); Random rd = new Random(); BufferedImage bi=new BufferedImage(250,75,BufferedImage.TYPE_INT_RGB); Graphics gp=bi.getGraphics();gp.setColor(new Color(rd.nextInt(255),rd.nextInt(255),rd.nextInt(255);gp.fillRect(0, 0, 300, 300);gp.setColor(new Color(rd.nextInt(255),rd.nextInt(255),rd.nextInt(255);String font = "好","爱","你","啊","哈","他","说","哦"String s = null;s = fontrd.nextInt(8)+fontrd.nextInt(8)+fontrd.nextInt(8)+fontrd.nextInt(8);gp.setFont(new Font("", Font.BOLD, 50);gp.drawString(s, 25, 55);JPEGImageEncoder jpeg=JPEGCodec.createJPEGEncoder(ops);jpeg.encode(bi);ops.flush();ops.close();request.getSession().setAttribute("verifycode", s);return null; 在这里只要改变数组font里的值就可以实现对效果的改变,如果String font = "A","B","C","D","E","F","G","H",调用s = fontrd.nextInt(8)+fontrd.nextInt(8)+fontrd.nextInt(8)+fontrd.nextInt(8)后显示的就是这几个大写字母里的四个了。这个图片型验证码主要由两块组成,背景图片以及图片上的字符串9。大概的制作过程是这样的,首先通过new BufferedImage在内存创立图像区,然后通过getGraphics()来获得背景图片,并通过setColor和fillRect来设置图片的颜色和位置。接着就是用数组font来存放所需的字符串,用setFont和drawString来设置字体和将字符串添加到背景图片上去。这样就完成了对图片验证码的实现了。5.2 电脑浏览的实现10。下面重点介绍下Category.jsp的实现过程,其他页面的实现根本与这两者类似。Category.Jsp主要可分为三层,最上层为电脑的品牌,下一层为末品牌下的系列名称,在系列名称下还有各个系列的不同型号的电脑,如图5-2所示。图5-2 分类浏览 要实现这个功能,首先必须调用DAO包下的CategoryDao.Java这个类中的findByIdInteger id这个方法,它返回的是一个Category对象,代码如下:Session session = HibernateSessionFactory.openSession();try String hql = "from Category c where c.id=?"Query query = session.createQuery(hql);query.setParameter(0, id);List<?> list = query.list();if (list.size() > 0) return (Category) list.get(0); catch (HibernateException e) e.printStackTrace(); finally HibernateSessionFactory.closeSession();return null;然后在CategoryAction.java中调用这个方法获得Category对象并将它封装在Session中,代码如下:Category category = categoryDao.findById(1);request.setAttribute("cat", category);return mapping.findForward("success");最后,在Jsp页面中将Session中的值取出来显示在页面中,该局部的主要代码如下:<c:forEach items="$cat.subCategorys" var="c2"><h3>$Name</h3><ul class="ul_left_list"> <c:forEach items="$c2.subCategorys" var="c3"> <li><a href="product.do?c2=$c2.id&c3=$c3.id">$Name</a></li> </c:forEach></ul></c:forEach> 以上代码中通过嵌套的<c:forEach></c:forEach>来取对象Category中的值,外面的<c:forEach></c:forEach>取的是电脑品牌的值,而内部的取得那么是不同品牌下的不同系列的值,并且为每个系列值都赋予了一个链接,点击链接页面将跳转到该系列下的电脑列表中,页面效果如图5-3所示。图5-3 电脑列表页面在这系列下面的电脑列表的显示页面制作过程中比较耗时的是对列表的排序方式的编码和记录分页的实现11。首先对排序方式的实现做