为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

基于SSH的校园二手书交易平台的设计与实现毕业论文

2019-01-22 20页 doc 933KB 60阅读

用户头像 个人认证

不系舟红枫

从教近30年,经验丰富,教学水平较高

举报
基于SSH的校园二手书交易平台的设计与实现毕业论文 本科毕业论文格式要求一、论文的结构与要求毕业设计(论文)包括以下内容(按顺序):本科论文包括封面、目录、标题、内容摘要、关键词、正文、注释、参考文献等部分。如果需要,可以在正文前加“引言”,在参考文献后加“后记”。论文一律要求打印,不得手写。1.目录目录应独立成页,包括论文中全部章、节和主要级次的标题和所在页码。2.论文标题论文标题应当简短、明确,有概括性。论文标题应能体现论文的核心内容、法学专业的特点。论文标题不得超过25个汉字,不得设置副标题,不得使用标点符号,可以分二行书写。论文标题用词必须规范,不得使用缩略语或外文缩...
基于SSH的校园二手书交易平台的设计与实现毕业论文
本科毕业论文格式要求一、论文的结构与要求毕业设计(论文)包括以下内容(按顺序):本科论文包括封面、目录、标题、内容摘要、关键词、正文、注释、参考文献等部分。如果需要,可以在正文前加“引言”,在参考文献后加“后记”。论文一律要求打印,不得手写。1.目录目录应独立成页,包括论文中全部章、节和主要级次的标题和所在页码。2.论文标题论文标题应当简短、明确,有概括性。论文标题应能体现论文的核心内容、法学专业的特点。论文标题不得超过25个汉字,不得设置副标题,不得使用标点符号,可以分二行书写。论文标题用词必须规范,不得使用缩略语或外文缩写词(通用缩写除外,比如WTO等)。3.内容摘要内容摘要应扼要叙述论文的主要内容、特点,文字精练,是一篇具有独立性和完整性的短文,包括主要成果和结论性意见。摘要中不应使用公式、图表,不标注引用文献编号,并应避免将摘要撰写成目录式的内容介绍。内容摘要一般为200个汉字左右。4.关键词关键词是供检索用的主题词条,应采用能够覆盖论文主要内容的通用专业术语(参照相应的专业术语),一般列举3——5个,按照词条的外延层次从大到小排列,并应出现在内容摘要中。5.正文正文一般包括绪论(引论)、本论和结论等部分。正文字数本科不少于6000字,专科一般不少于5000字,正文必须从页首开始。*绪论(引论)全文的开始部分,不编写章节号。一般包括对写作目的、意义的说明,对所研究问题的认识并提出问题。*本论是全文的核心部分,应结构合理,层次清晰,重点突出,文字通顺简练。*结论是对主要成果的归纳,要突出创新点,以简练的文字对所做的主要工作进行。结论一般不超过500个汉字。正文一级及以下子标题格式如下:一、;(一);1.;(1);①。6.注释注释是对所创造的名词术语的解释或对引文出处的说明。注释采用脚注形式,用带圈数字表示序号,如注①、注②等,数量不少于10个,脚注少于10个的论文为不合格论文。7.参考文献参考文献是论文的不可缺少的组成部分,是作者在写作过程中使用过的文章、著作名录。参考文献应以近期发表或出版的与法学专业密切相关的学术著作和学术期刊文献为主,数量不少于6篇,参考文献少于6篇的论文成绩评定为不合格。产品说明、技术标准、未公开出版或发表的研究论文等不列为参考文献,有确需说明的可以在后记中予以说明。二、打印装订要求论文必须使用标准A4打印纸打印,一律左侧装订,并至少印制3份。页面上、下边距各2.5厘米,左右边距各2.2厘米,并按论文装订顺序要求如下:1.封面封面包括《广西广播电视大学关于毕业设计(论文)评审表》(封面、附录4)、《学生毕业设计(论文)评审表》(封2)、《广西广播电视大学关于毕业设计(论文)答辩申报表》(封3、附录5)。 2.目录目录列至论文正文的三级及以上标题所在页码,内容打印要求与正文相同。目录页不设页码。3.内容摘要摘要标题按照正文一级子标题要求处理,摘要内容按照正文要求处理。4.关键词索引关键词与内容摘要同处一页,位于内容摘要之后,另起一行并以“关键词:”开头(采用黑体),后跟3~5个关键词(采用宋体),词间空1字,即两个字节,其他要求同正文。5.正文正文必须从内容提要页开始,并设置为第1页。页码在页末居中打印,其他要求同正文(如正文第5页格式为“―5―”)。论文标题为标准三号黑体字,居中,单倍行间距;论文一级子标题为标准四号黑体字,居中,20磅行间距;正文一律使用标准小四号宋体字,段落开头空两个字,行间距为固定值20磅;正文中的插图应与文字紧密配合,文图相符,内容正确,绘制规范。插图按章编号并置于插图的正下方,插图不命名,如第二章的第三个插图序号为“图2—3”,插图序号使用标准五号宋体字;正文中的插表不加左右边线。插表按章编号并置于插表的左上方,插表不命名,如第二章的第三个插表序号为“表2—3”,插表序号使用标准五号宋体字。6、 参考文献按照GB7714—87《文后参考文献著录规则》规定的格式打印,内容打印要求与论文正文相同。参考文献从页首开始,格式如下:(1)著作图书文献序号 作者 《书名》,出版地:出版者,出版年份及版次(第一版省略)如:[4] 劳凯声 《教育法论》,南京:江苏教育出版社,2001(2)译著图书文献序号 作者 《书名》,出版地:出版者,出版年份及版次(第一版省略)(3)学术刊物文献序号 作者 《文章名》,《学术刊物名》,年卷(期)如:[5]周汉华 《变法模式与中国立法法》,《中国社会科学》,2000(1)(4)学术会议文献序号 作者 《文章名》,编者名,会议名称,会议地址,年份,出版地,出版者,出版年(5)学位论文类参考文献序号 作者 《学位论文题目》,学校和学位论文级别,答辩年份(6)西文文献著录格式同中文,实词的首字母大写,其余小写。参考文献作者人数较多者只列前三名,中间用逗号分隔,多于三人的后面加“等”字(西文加“etc.”)。学术会议若出版论文集者,在会议名称后加“论文集”字样;未出版论文集者省去“出版者”、“出版年”项;会议地址与出版地相同的省略“出版地”,会议年份与出版年相同的省略“出版年”。三、毕业设计(论文)装袋要求毕业设计(论文)是专业教学的重要内容,必须规范管理,统一毕业设计(论文)材料装袋要求:1、论文稿本。经指导的提纲,一稿、二稿和装订好的正稿。2、过程记录表。包括指导教师指导记录表,学生毕业设计(论文)评审表(答辩过程记录表)等;3、相关材料。法专业要求的其他材料,如法学社会调查报告等。中国环境教育立法研究内容摘要摘要:目前,我国学术界对环境教育立法问题的研究还处于起步阶段,有关环境教育的法律规范也很不完善,影响和限制了我国环境教育的大力推行和良好普及,实质上是制约了我国解决环境问题的能力和可持续发展的进程。本文从环境问题的现状入手,阐释了环境教育立法的必要性和可行性,介绍了其他国家和地区的环境教育立法实践,在总结国内外先进经验的基础上,提出了对我国环境教育立法的构想。以期通过加强教育立法的途径,实现我国环境教育的普及,为改善解决我国环境问题的能力和可持续发展的进程创造条件。关键词:环境问题环境教育环境教育立法 一、环境问题、环境教育与环境教育立法(一)环境问题马克思说:“人靠自然界生活,这就是说,自然界是为了不致死亡而必须不断与之交往。所谓人的肉体生活和精神生活同自然界相联系,也就等于说自然界同自身相联系,因为人是自然界的一部分。” 生存与发展是人类社会最基本的主题。在人类与环境不断地相互影响和作用中,环境问题始终是伴随着人类的活动产生和发展的。不幸的是,在相当长的时期内,人类过分强调了作为自然主人的一面,夸大了人的主观能动性作用,忽视甚至忘却自然界的惩罚。环境问题并非始于今日,早在200年前的第一次工业革命时期就产生了环境问题。到了本世纪50年代,环境事件不断出现和加剧。到了70~80年代则出现了全球性的环境危机。目前全球人口正以每年9 000万的速度增长,预计到21世纪中期,世界人口将达到100亿。 人口无节制地增长,给地球的生态环境和有限的自然资源带来了沉重的压力。联合国列出了威胁人类生存的全球十大环境问题:全球气候变暖;臭氧层的损耗和破坏;酸雨蔓延;水资源危机;生物多样性减少;大气污染;有毒有害化学物质污染与危险废物越境转移;森林面积锐减;土地荒漠化;海洋污染。随着我国社会经济的迅速发展,环境保护与经济发展之间的矛盾日益凸显。20世纪最后几年有三件震撼国人的大事足以说明我国环境问题的严重性,已显示出环境破坏给人类带来的灾难性的报复。一是1997年创纪录(227天)的黄河断流;二是1998年的长江大水灾;三是2000年波及北京等地的频繁的沙尘暴。专家指出了目前困扰中国环境的十大问题。1、大气污染问题2004年我国二氧化硫排放量为1 995万吨,居世界第一位。据专家测算,要满足全国天气的环境容量要求,二氧化硫排放量要在现有基础上至少削减40%。此外,2004年中国烟尘排放量为1 165万吨,工业粉尘的排放量为1 092万吨。大气污染是中国目前面临的第一大环境问题。2、水环境污染问题中国七大水系的污染程度依次是:辽河、海河、淮河、黄河、松花江、珠江、长江,其中,42%的水质超过3类标准(不能做饮用水源),全国有36%的城市河段为劣质5类水质,丧失使用功能。大型淡水湖泊(水库)和城市湖泊水质普遍较差,75%以上的湖泊富营养化加剧,主要由氮、磷污染引起。3、垃圾处理问题中国全国工业固体废物年产生量达8.2亿吨,综合利用率约为46%。全国城市生活垃圾年产生量为1.4亿吨,达到无害化处理要求的不到10%。塑料包装物和农膜导致的白色污染已蔓延全国各地。(二)环境教育与环境问题的关系1、环境教育的发展历程环境教育的起源,一直可以追溯到19世纪末20世纪初的自然研究(Natural Study)。当时在学校开展自然研究的基本目的是教育学生通过亲身观察和参与,了解和评价自然环境。到20世纪上叶,人们认识到保护生态和自然环境的重要性,保护运动(Conservation movement)在社会中形成,学校教育在自然研究的基础上引入了自然保护的教育内容,这就是环境教育的萌芽。(1)国外环境教育的发展历程1972年在瑞典首都斯德哥尔摩召开的“世界人类环境会议”是环境教育发展的一个里程碑。为了响应斯德哥尔摩会议的第96条建议,联合国教科文组织和联合国环境规划署于1975年颁布了国际环境教育(IEEP),其目的是在环境教育领域内,促进经验和信息的交流、研究和实验、人员培训、课程和相应教材的开发及国际合作。1975年,在前南斯拉夫的贝尔格莱德召开的国际环境教育会议,通过了《贝尔格莱德宪章:环境教育的全球纲领》。该宪章根据环境教育的性质和目标,指出环境教育是“进一步认识和关心经济、社会、政治和生态在城乡地区的相互依赖性;为每一个人提供获得保护环境的知识和价值观、态度、责任感和技能;创造个人、群体和整个社会行为的新模式。”此后,《贝尔格莱德宪章》成为世界各国制定环境教育纲要与章程的重要依据之一。而环境教育的普及对环境相关法律的立法、执法都可起到相当大的辅助作用。大力开展环境教育,使环境意识特别是环境保护法律意识深入人心,使人们认识到环境问题不仅是社会问题,更是可以涉及到每个人切身利益和法律责任、社会责任的问题,认识到环境问题和法律责任的关系,更好地使环境保护法律成为预防环境问题发生的利剑,这样可以达到依法治理环境和人们自觉保护环境的目的。二、中国环境教育立法的必要性和可行性(一)中国环境教育立法的必要性当一种社会关系需要用立法来调整,说明这种社会关系的重要性。中国环境教育专门立法是否必要,则完全取决于以下前提:(1)环境教育的重要性;(2)环境教育立法对社会经济发展的重要作用。五、结论21世纪是环境世纪,公众的环境意识通过环境教育来建立。根据我国人口多,地区经济水平差异大,公民受教育程度不一的现状,要使公众的环境保护意识提高到一个比较高的水平,实现社会——经济——环境的协调发展,尽早达到国家的可持续发展目标,构建和谐社会,通过立法机关制定完善的、具有可操作性的《环境教育法》不失为一个有效的方法。希望对促进我国环境教育法律体系的建立提供一些有益的参考。 本 科 毕 业 设 计(论文) 基于SSH的校园二手书交易平台的设计与实现 Design and Development of Used Book Trading Platform Of Campus Based On SSH 毕业设计(论文)原创性声明和使用授权说明 原创性声明 本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得 及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。 作 者 签 名:       日  期:        ​​​​​​​​​​​​ 指导教师签名:        日  期:        使用授权说明 本人完全了解 大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。 作者签名:        日  期:        ​​​​​​​​​​​​ 学位论文原创性声明 本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。 作者签名: 日期: 年 月 日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权      大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 涉密论文按学校规定处理。 作者签名: 日期: 年 月 日 导师签名: 日期: 年 月 日 注 意 事 项 1.设计(论文)的内容包括: 1)封面(按教务处制定的标准封面格式制作) 2)原创性声明 3)中文摘要(300字左右)、关键词 4)外文摘要、关键词 5)目次页(附件不统一编入) 6)论文主体部分:引言(或绪论)、正文、结论 7)参考文献 8)致谢 9)附录(对论文支持必要时) 2.论文字数要求:理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。 3.附件包括:任务书、开题报告、外文译文、译文原文(复印件)。 4.文字、图表要求: 1)文字通顺,语言流畅,书写字迹工整,打印字体及大小符合要求,无错别字,不准请他人代写 2)工程设计类题目的图纸,要求部分用尺规绘制,部分用计算机绘制,所有图纸应符合国家技术标准规范。图表整洁,布局合理,文字注释必须使用工程字书写,不准用徒手画 3)毕业论文须用A4单面打印,论文50页以上的双面打印 4)图表应绘制于无格子的页面上 5)软件工程类课题应有程序清单,并提供电子文档 5.装订顺序 1)设计(论文) 2)附件:按照任务书、开题报告、外文译文、译文原文(复印件)次序装订 3)其它 指导教师评阅书 指导教师评价: 一、撰写(设计)过程 1、学生在论文(设计)过程中的治学态度、工作精神 □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、学生掌握专业知识、技能的扎实程度 □ 优 □ 良 □ 中 □ 及格 □ 不及格 3、学生综合运用所学知识和专业技能分析和解决问题的能力 □ 优 □ 良 □ 中 □ 及格 □ 不及格 4、研究方法的科学性;技术线路的可行性;设计的合理性 □ 优 □ 良 □ 中 □ 及格 □ 不及格 5、完成毕业论文(设计)期间的出勤情况 □ 优 □ 良 □ 中 □ 及格 □ 不及格 二、论文(设计)质量 1、论文(设计)的整体结构是否符合撰写规范? □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、是否完成指定的论文(设计)任务(包括装订及附件)? □ 优 □ 良 □ 中 □ 及格 □ 不及格 三、论文(设计)水平 1、论文(设计)的理论意义或对解决实际问题的指导意义 □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、论文的观念是否有新意?设计是否有创意? □ 优 □ 良 □ 中 □ 及格 □ 不及格 3、论文(设计说明书)所体现的整体水平 □ 优 □ 良 □ 中 □ 及格 □ 不及格 建议成绩:□ 优 □ 良 □ 中 □ 及格 □ 不及格 (在所选等级前的□内画“√”) 指导教师: (签名) 单位: (盖章) 年 月 日 评阅教师评阅书 评阅教师评价: 一、论文(设计)质量 1、论文(设计)的整体结构是否符合撰写规范? □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、是否完成指定的论文(设计)任务(包括装订及附件)? □ 优 □ 良 □ 中 □ 及格 □ 不及格 二、论文(设计)水平 1、论文(设计)的理论意义或对解决实际问题的指导意义 □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、论文的观念是否有新意?设计是否有创意? □ 优 □ 良 □ 中 □ 及格 □ 不及格 3、论文(设计说明书)所体现的整体水平 □ 优 □ 良 □ 中 □ 及格 □ 不及格 建议成绩:□ 优 □ 良 □ 中 □ 及格 □ 不及格 (在所选等级前的□内画“√”) 评阅教师: (签名) 单位: (盖章) 年 月 日 教研室(或答辩小组)及教学系意见 教研室(或答辩小组)评价: 一、答辩过程 1、毕业论文(设计)的基本要点和见解的叙述情况 □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、对答辩问题的反应、理解、表达情况 □ 优 □ 良 □ 中 □ 及格 □ 不及格 3、学生答辩过程中的精神状态 □ 优 □ 良 □ 中 □ 及格 □ 不及格 二、论文(设计)质量 1、论文(设计)的整体结构是否符合撰写规范? □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、是否完成指定的论文(设计)任务(包括装订及附件)? □ 优 □ 良 □ 中 □ 及格 □ 不及格 三、论文(设计)水平 1、论文(设计)的理论意义或对解决实际问题的指导意义 □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、论文的观念是否有新意?设计是否有创意? □ 优 □ 良 □ 中 □ 及格 □ 不及格 3、论文(设计说明书)所体现的整体水平 □ 优 □ 良 □ 中 □ 及格 □ 不及格 评定成绩:□ 优 □ 良 □ 中 □ 及格 □ 不及格 教研室主任(或答辩小组组长): (签名) 年 月 日 教学系意见: 系主任: (签名) 年 月 日 基于SSH的校园二手书交易平台的设计与实现 [摘 要]本文介绍了一个校园网二手书交易平台系统的开发。系统采用JSP、Servlet、Struts2、Spring、Hibernate、Ajax、JQuery技术。系统采用的是最近几年流行的B/S开发模式,以互联网方式运行,客户端用户只要可以上网,就可以非常方便快捷的通过浏览器访问系统。同时由于使用面向对象的Java语言,并且使用了主流的开源框架SSH,所以本系统也具有面向对象、与平台无关、安全性高、稳定性高、多线程等特性,以及对网络编程技术的支持。使得本系统具有很高的使用价值。系统采用了实现MVC模式开发,具有很好的跨平台兼容性。 本系统主要包括前台客户操作和后台管理员管理两部分。一方面向实际用户提供平台,可按商品发布时间、商品涉及内容以及商品分类等条件进行查询和浏览。另一方面提供后台管理功能,后台管理员主要实现对商品信息进行增删改查,对用户进行增删改查。 [关键词]:Struts2;Hibernate;Spring;二手书交易平台 Design and Development of Used Book Trading Platform Of Campus Based On SSH Computer Science and Technology Major Wei Yang This article describes a campus used book trading platform systems. System uses JSP、Servlet、Struts2、Spring、Hibernate、Ajax、JQuery technology. System used in recent years the popular B / S development mode, run the Internet, the server only need to install the system, and as long as the client user can access to the Internet can be very convenient to access the system through a browser. At the same time the use of object-oriented Java language, and use the mainstream open source framework SSH, so the system also has a Java object-oriented language, and platform-independent, high security, high stability, multi-threading and other features, as well as Java network programming language support. The system makes use of high value. System uses the MVC pattern to achieve the development, with a good cross-platform compatibility. The system includes front and back-office administrators to manage client operations in two parts. On the one hand provide a platform to the actual users, according to product release time, the goods involved in content and condition of goods classification, query and browse. Management functions and to provide background, background administrators realize the value of information in the main additions and deletions to the investigation, additions and deletions to the user search. The system is simple, stable, user friendly, has a wider application prospect and practical significance. Keywords: Struts2,Hibernate,Spring ,CampusSecondhandMerchandise 目  录 11概述 11.1 开发背景 11.2 目的和要求 11.3 可行性研究 22技术分析与设计 22.1 Java语言简介 22.2 J2EE技术介绍 22.3 Servlet/JSP技术 32.4 MVC 简介 42.5 Hibernate 技术 42.5.1 应用程序的分层体系结构 52.5.2 Hibernate的应用及API简介 62.6 Struts2 技术 82.7 Spring 技术 82.8 开发环境及环境配置 82.8.1 Java/JSP系统环境 82.8.2 JSP环境的安装和环境变量的设置 92.8.3 MyEclipse开发工具 92.8.4 Tomcat服务器 102.9 数据库开发工具选择及配置 103 系统需求分析及设计 103.1 系统需求分析 103.1.1 系统功能需求 113.1.2 系统界面要求 113.1.3 系统整体架构 123.2 概要设计 123.2.1 系统体系结构设计 133.2.2 用户注册功能模块设计 133.2.3 发布信息功能模块设计 133.2.4 用户管理功能模块设计 133.2.5 留言模块设计 133.2.6 功能设计的目标与原则 143.3 数据库设计 143.3.1 数据库需求分析 143.3.2 数据库概念结构设计 153.3.3 数据库逻辑结构设计 153.3.4 数据库逻辑表设计 183.4 数据库访问设计 183.4.1 数据库表模型设计 183.4.2 Hibernate数据库访问配置 193.4.3 定义映射文件 203.4.4 Hibernate Session工厂 213.4.5 定义和实现DAO 214 系统功能模块的实现 214.1 系统主页设计 214.1.1 主页显示设计 224.1.2 信息页显示设计 234.2 系统登录功能设计 244.3 系统搜索功能设计 254.4 用户注册功能设计 254.4.1 用户注册页面设计 264.4.2 用户注册后激活账户的设计 274.5 发布、修改信息设计 284.6 信息管理设计 284.7 用户管理设计 294.8 信息留言设计 30结论及尚存在的问题 33参考文献 34致谢 1概述 1.1 开发背景 随着当前社会互联网技术的不断发展,各种基于互联网技术的网络应用不断涌现,网络技术正在不断的深入人们的生活。人们从Internet上获取信息、享受生活、交流感情、网上工作等。Internet正在迅速改变着人们的生活方式。 经过我国改革开放多年以后,随着与国际社会的接轨,各种资源的书籍化已经逐渐成为了我们这个社会的代名词。在这中情势下,校园二手书籍资源也已极大的丰富起来,如何解决一类问题,争取最大利用率的交流这类书籍的信息便是一个存在中的问题。本毕业设计便是解决该问题的。 1.2 目的和要求 在当前社会上,许多的各种类型的电子商务类网站纷纷建立,可以很大程度上的解决人们信息资源的闭塞以及地域上的限制。作为大学校园,伴随着学生的购买能力的提高和每年的升学和毕业,也存在的许多各种类型的二手书籍,由于信息交流的落后,很多只限于校园公告栏或者请人代为宣传的方式进行交易,有的甚至当做废书低价出售给废品收购。这种方式有很多局限性,偶然性以及造成浪费,并不能满足二手书籍畅通交流的要求。于是一种新的二手书籍信息交流的方式出现了,就是基于Web的校园网二手书籍交易系统。通过这个系统,可以发现每一个校园网用户都是系统的主人,大家可以非常方便的发布自己的信息,浏览别人的发布的信息,还可以对各种二手书籍信息作出横向比较,作出自己的最佳选择。由此可见,该系统只是一个交流二手书籍信息的平台,与一般的电子商务类网站又有本质的区别。 1.3 可行性研究 设计这样一个系统,从根本上解决了传统的校园二手信息发布交流方式的弊端,使得校园各种二手书籍信息得到了有效的整合,方便了广大用户。且拥有的客户通常只是大学校园网的用户,所有系统规模上来讲不会很大,从经济上来说,由于选择的开发工具和服务器几乎全部为免费的开源软件,并且由于是开发成本较低的基于Web的B/S模式,而非成本费用相对较高的C/S模式,所以从经济上来讲是可行的。从技术上来说,由于是基于Web的,可以相对比较容易面对用户的实际需求而开发。而在现今,各种网络应用的开发已经相当成熟,出现了几大主流的开发语言和工具,都可以非常有效的支持开发这样一个系统。从运行上来说,由于客户端仅仅只是需要一个浏览器,通过浏览器来登陆系统,而服务器端也只需要一台服务器,服务器要求一个数据库环境和一个网络应用开发的环境,实现起来比较容易,所以从运行上来说是可行的。 这样一个系统,在系统管理员合法管理和用户的自觉配合下,不会违规进行任何的不法的活动和交易,发布具有危害性和不适宜的信息,也不存在任何非法牟利的行为,在法律上也是可行的。在各种可行性研究保证和基于用户需求要求下,开发系统的方案经过不断论证和假设,确定出了一个最佳方案。 2技术分析与设计 2.1 Java语言简介 Java语言是美国Sun公司于1995年推出的一种简单的、面向对象的、分布式的、可解释的、键壮的、安全的、结构的、中立的、可移植的、性能很优异的多线程的、动态的语言。其前身为OAK语言,是SUN公司为一些消费性电子产品而设计的一个通用环境。他们最初的目的只是为了开发一种独立于平台的软件技术。经过Sun公司的工程师的不懈努力以及全世界无数的编程爱好者的使用,Java终于发展成为今天这样一个集桌面(J2SE)、网络(J2EE)、移动平台(J2ME)应用为一体的功能强大的编程语言。目前Java由于其平台无关及分布式特性,最重要的应用是在网络应用上。 2.2 J2EE技术介绍 J2EE技术是Java网络应用的技术,广泛应用于企业级的应用。它是由一套规范(shannin,2001)和建立在J2SE平台上的应用编程接口(API)组成。J2EE拥有Sun公司提供免费开发工具,称为J2EE软件开发工具包(Software Development Kit,SDK )(http://java.sun.com/j2ee)。J2EE技术是一种Java网络应用技术的组合,包含有远程方法调用(Remote Method Invocation,RMI)、Java消息服务(Java Message Service,JMS)、JavaMail等通信服务,JDBC、Java命名和目录接口(Java naming and Directory Interface,JNDI)、Java连接器体系结构(Java Connector Architecture,JCA)、Java事务API/Java事务服务(JTA/JTS)、XML处理API等通用服务以及Servlet、Java服务器页面(JSP)、企业级JavaBean(EJB)等组件技术。任何J2EE的实现都必须要在其特定容器中实现。 2.3 Servlet/JSP技术 Servlet是JSP技术的基础,JSP本身就是预先被编译成Servlet,然后再运行的,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成。 Servlet其实和传统的CGI程序和ISAPI、NSAPI等Web程序开发工具的作用是相同的,在使用Java Servlet以后,用户不必再使用效率低下的CGI方式,也不必使用只能在某个固定Web服务器平台运行的API方式来动态生成Web页面。许多Web服务器都支持Servlet,即使不直接支持Servlet的Web服务器也可以通过附加的应用服务器和模块来支持Servlet。JSP(JavaServer Pages)是一种基于Java的脚本技术。在JSP 的众多优点之中,其中之一是它能将 HTML 编码从 Web 页面的业务逻辑中有效地分离出来。用 JSP 访问可重用的组件,如 Servlet、JavaBean 和基于 Java 的 Web 应用程序。JSP 还支持在 Web 页面中直接嵌入 Java 代码。可用两种方法访问 JSP 文件:浏览器发送 JSP 文件请求、发送至 Servlet 的请求。 a) JSP 文件访问 Bean 或其它能将生成的动态内容发送到浏览器的组件。 b) 发送至 Servlet 的请求生成动态内容,并调用 JSP 文件将内容发送到浏览器。该访问使得将内容生成从内容显示中分离出来更为方便。JSP最大的优点在于其与平台无关性,具有“一次编写,处处运行”的特点。 2.4 MVC 简介 模型-视图-控告器(MVC)[2]是20世纪80年代Smalltalk-80出的一种软件模式,现在已经被广泛使用。 模型(Model):模型是应用程序的主体部分。模型表示业务数据,或者业务逻辑。 视图(View):视图是应用程序中用户界面相关的部分,是用户看到并与之交互的界面。 控制器(Controller):控制器的工作就是根据用户的输入,控制用户界面显示和更新模型对象的状态。 典型的MVC模式所包含的模块、每个模块的功能以及模块之间的关系如图2-1所示: SHAPE \* MERGEFORMAT 图2-1 MVC组件的关系和功能 MVC模式的出现不仅实现的功能模块和显示模块的分离,同时这样还提高了应用系统的可维护性、可扩展性、可移植性和组件的可利用性。 在早期的程序中,如果不注意对数功能和显示的解耦合,常常估导致程序的复杂及难以维护,像VB,Delphi等RAD程序都有这种问题。甚至现在有C#,Java有时候也会出现把业务逻辑写在显示模块中的现象。 尽管MVC设计模式很早的提出了,但之前在如今主流的技术没有出现之前Web项目的开发中引入MVC却是步履艰难。主要原因是在早期的Web项目开发中,Java代码片段和Html代码的分离一直难以实现,这样导致业务代码和视图代码同时在一个页面,并且混在一起导致修改功能和逻辑时难以入手,无论对其他人员的重新修改或者自己重新修改都增加了难度,现在已经不符合开发要求。直到基于J2EE的JSP 的问世时才得以改观。它用JSP技术实现视图的功能,用Servlet技术实现控制器的功能,用JavaBean实现模型的功能。如今各种优秀开发思想的加入使得视图代码和业务逻辑的分离成为了可能,目前主流的框架Struts2对J2EE进行了从视图到业务代码的分离提供了支持,经过重新架构之后代码变得更为简洁和易于维护,视图部分也由于逻辑代码的分离而变得易于维护和修改,同时它为开发人员提供了一种编程规范,以优秀思想的融入改变了令程序员头痛的问题。如今的JSP Model 结构如图2-2所示: SHAPE \* MERGEFORMAT 图2-2 JSP Model2 结构图 在Model 2这种框架结构中,Filter作为控制器负责处理用户的请求以及创建JSP页面中所有要使用的Bean对象,并且还要根据用户的请求来返回到不同的JSP页面。 在使用Model 2开发框架时,一定要保证在JSP页面中不能包含任何的业务处理逻辑。它只是简单地得到对象或者在Model中创建的Bean,然后通过这些动态的内容来生成动态显示的页面。 Struts2 本质上就是在Model 2的基础上实现一个MVC架构,它只有一个中心控制器,采用定制转向的URL并采用Action来处理逻辑。 2.5 Hibernate 技术 2.5.1 应用程序的分层体系结构 随着计算机应用软件的开发不断壮大,应用程序逐渐由单层体系结构发展为多层体系结构。在其中,最流行的三层结构是目前典型的一种应用软件结构。 表述层:用于提供与用户交互的界面,如GUI(图形用户界面),web页面等; 业务逻辑层:用于负责各种业务逻辑,直接访问数据库,提供对业务数据的保存、更新、删除和查询操作; 数据库层:负责存放管理应用的持久性业务数据。 三层结构的特点是:所有下层向上层提供调用的接口,具体实现细节对上层透明。层与层之间存在自上而下的依赖关系,即上层会访问下层的API,但下层不依赖于上层。 分离出的持久化层封装了数据访问细节,为业务逻辑层提供了面向对象的API。 持久化(Persistence),即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘)。持久化的主要应用是将内存中的数据存储在关系型的数据库中,当然也可以存储在磁盘文件中、XML数据文件中等等。 持久层(Persistence Layer),即专注于实现数据持久化应用领域的某个特定系统的一个逻辑层面,将数据使用者和数据实体相关联。 三层软件结构如图2-4所示: SHAPE \* MERGEFORMAT 图2-4 三层软件结构图 数据库的读写是一个很耗费时间和资源的操作,当大量用户同时直接访问数据库的时候,效率将非常低,如果将数据持久化就不需要每次从数据库读取数据,直接在内存中对数据进行操作,这样就节约了数据库资源,而且加快了系统的反映速度。 增加持久化层提高了开发的效率,使软件的体系结构更加清晰,在代码编写和系统维护方面变得更容易。特别是在大型的应用里边,会更有利。同时,持久化层作为单独的一层,人们可以为这一层独立的开发一个软件包,让其实现将各种应用数据的持久化,并为上层提供服务。从而使得各个企业里做应用开发的开发人员,不必再来做数据持久化的底层实现工作,而是可以直接调用持久化层提供的API。 2.5.2 Hibernate的应用及API简介 Hibernate是一种Java语言下的对象关系映射解决方案。它是一种自由、开源的软件。它用来把对象模型表示的对象映射到基于SQL的关系模型结构中去,为面向对象的领域模型到传统的关系型数据库的映射,提供了一个使用方便的框架。 Hibernate不仅管理Java类到数据库表的映射(包括从Java数据类型到SQL数据类型的映射),还提供数据查询和获取数据的方法,可以大幅度减少开发时人工使用SQL和JDBC处理数据的时间。 Hibernate对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。Hibernate可以应用在任何使用JDBC的场合,它既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用。最具革命意义的是,Hibernate可以在应用EJB(EnterpriseJavaBeans是Java应用于企业计算的框架)的J2EE架构中取代CMP,完成数据持久化的重任。 Hibernate使用 Java 反射机制 而不是字节码增强程序来实现透明性。Hibernate 的性能非常好,因为它是个轻量级框架。映射的灵活性很出色。Hibernate支持各种关系数据库,从一对一到多对多的各种复杂关系。Hibernate核心接口如图2-5所示: SHAPE \* MERGEFORMAT 图2-5 Hibernate核心接口框图 2.6 Struts2 技术 Struts2是一个典型的基于MVC模式的应用架构的开源框架,是利用Java, Servlet和JSP构建Web应用的一项非常有用的技术。首先事件是指从客户端页面(浏览器)由用户发出HTTP请求,服务器根据web.xml配置文件的配置参数,由Struts2的控制器StrutsPrepareAndExecuteFilter调用struts.xml的配置参数,使用一个普通的类,简称Action类来接受浏览器表单提交的事件,这里使用了Command模式,每个Action类都必须有对应请求的实现方法,Action执行完业务逻辑之后根据struts.xml的配置找到对应的result,并跳转到相应的页面。 Struts2中的Model是一个普通的java类即Action类,它代表了一种应用,这个对象中至少包含几个字段,这些字段是Jsp页面表单中的input字段,因为一个表单对应一个事件,所以,当我们需要将事件粒度细化到表单中这些字段时,也就是说,一个字段对应一个事件时,单纯使用Struts2就不太可能,当然通过结合JavaScript也是可以转弯实现的。 Struts2是一个基于Sun J2EE平台的MVC框架,主要是采用Filter和JSP技术来实现的。Struts2是由之前一个著名的框架webwork发展而来的,开发人员利用其进行开发时不用再自己编码实现全套MVC模式,极大的节省了时间。 Struts2包含了一组想相互协作的类、Servlet和JSP标记,它们共同组成了一个可重用的MVC模板。通过定义可以看出,Struts2是Web应用的开发框架,Struts2包含丰富的标记库和独立于该框架工作的实用程序类。图2-3 显示了Struts2的简单的基本结构。 SHAPE \* MERGEFORMAT 图 2-3 Struts2基本结构 通过图 2-3可以看出,采用Struts2框架结构的Web应用程序主要由控制器、业务逻辑、模型和视图组成。其中的控制器、模型和视图为Struts2框架的主要组成部分,而事务逻辑则是我们需要实现的系统业务逻辑处理部分。本系统中用到了多个struts的配置文件,此处以主文件struts.xml为例代码如下: /error.jsp /user/loginForm.jsp verify /user 2.7 Spring 技术 Spring是一种多层的J2EE应用程序框架,Spring的核心是提供一种新的机制来管理业务对象以及其依赖关系。一味的遵循J2EE设计模式有时会感到寸步难行。但是Spring的出现使一切都得到了简化。 IOC(Inverse Of Control)控制反转技术可以允许开发人员通过接口编程,使用xml文件来简单的定义其实现。因此他可以降低程序之间的耦合度,即解耦合。一般来说系统流行的架构为三层模式的架构即表现层,控制层,数据业务层。使用Spring可以明显降低各个层之间的依赖关系,使得各个层只需要专注自己的工作,每一层给上层留下调用接口,从而最大程度降低各个层之间的依赖关系,Spring可以工作在数据业务层,使得Service专注于业务,对DAO对象的管理交给Spring,从而减少Servic和DAO的依赖。代码的灵活性也变强了。 2.8 开发环境及环境配置 2.8.1 Java/JSP系统环境 开发及测试的系统环境,我选择了Microsoft Windows 7。要开发JSP,首先必须要求有Java环境,我选择了JavaTM Platform, Standard Edition 6 Development Kit。 作为JSP的容器,选择了目前非常流行的Tomcat 6.0。而IDE工具则选择了MyEclips。 2.8.2 JSP环境的安装和环境变量的设置 首先安装JDK,安装Tomcat。 接下来配置环境变量:右键点击“我的电脑”,在弹出的菜单中点“属性”,在系统特性里选择“高级”,找到“环境变量”,点击进入后,“系统变量”就是我们需要设置的地方。 新建变量CATALINA_HOME,变量值为: D:\apache-tomcat-5.5.31 新建JAVA_HOME变量,然后在变量值中输入以下内容: C:\Program Files\Java\jdk1.6.0_12 编辑path变量:在原有的变量值后添加JDK的BIN目录 %JAVA_HOME%\bin;%CATALINA_HOME%\BIN 2.8.3 MyEclipse开发工具 MyEclipse平台体系结构主要由5部分组成,分别是平台运行库、工作区、工作台、团队支持和帮助。 在运行时内核是整个架构的核心,其他部件都是以插件方式来实现的。MyEclipse采用动态加载机制,即只有需要的才加载,这样可以降低启动时间,提高资源使用效率。 工作空间插件即所谓的工作区,主要负责管理用户资源,例如用户创建项目的管理、文件变更等,并负责通知其他插件关于资源变更的信息。 工作台插件是MyEclipse 提供的用户界面。它使用标准窗口工具包(SWT)和一个更高级的API(JFace)构建的。SWT是Java的Swing/AWT的非标准替代者,JFace则以SWT为基础,但更易于使用。 团队支持插件负责提供版本控制和配置管理支持。它允许用户根据需要添加视图,并与允许用户使用的任何版本控制系统交互。 帮助插件允许以HTML文件形式添加文档,并提供了一个附加的导航结构以便用户使用帮助功能搜索相关信息。 2.8.4 Tomcat服务器 Tomcat是Sun的JSWDK(Java Server Web Development Kit)中Servlet的运行环境(servlet容器)。Tomcat是Apache Jakarta软件组织的一个子项目,Tomcat是一个JSP/Servlet容器,它是在SUN公司的JSWDK(Java Server Web Development Kit)基础上发展起来的一个JSP和Servlet规范的标准实现,使用Tomcat可以体验JSP和Servlet的最新规范。 经过多年的发展,Tomcat不仅是JSP和Servlet规范的标准实现,而且具备了很多商业Java Servlet容器的特性,并被一些企业用于商业用途。 Tomcat目录如下: Tomcat_home |---bin Tomcat:存放启动和关闭tomcat脚本; |---conf Tomcat:存放不同的配置文件(server.xml和web.xml); |---doc:存放Tomcat文档; |---lib/japser/common:存放Tomcat运行需要的库文件(JARS); |---logs:存放Tomcat执行时的LOG文件; |---src:存放Tomcat的源代码; |---webapps:Tomcat的主要Web发布目录(包括应用程序示例); |---work:存放jsp编译后产生的class文件; 2.9 数据库开发工具选择及配置 目前数据库的开发工具,大、中、小型的有很多,比如Oracle、MS SQL Server2000、DB2、MySQL、Access等等许多关系数据库,由于在后期的开发中,需要经常更换开发环境,而且用到的Hibernate,对软件有一定要求,每次系统移植都要花很多时间配置环境,所以最后选择了移植性与稳定性都很好的MySQL数据库。 MySQL是一个小型关系型数据库管理系统,被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。 与其他的大型数据库例如Oracle、DB2、SQL Server等相比,MySQL自有它的不足之处,如规模小、功能有限(MySQL Cluster的功能和效率都相对比较差)等,但是这丝毫也没有减少它受欢迎的程度。对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于MySQL是开放源码软件,因此可以大大降低总体拥有成本。 在本系统中,对MySQL的配置最重要是数据库字符编码设置,因为数据库的录入的大多是中文字符,因此在数据库安装与配置时选择了设置默认编码为utf8。 3 系统需求分析及设计 3.1 系统需求分析 3.1.1 系统功能需求 本系统主要面向于大学校园网用户,依托校园网提供给这些用户一个二手书籍的交易平台。在大学校园里,很多书籍都很贵,我们必须花费很多钱购买,但等看完后,书本依旧很新,却没有了当初的价值,我们也就不会再去用这些书籍。这样的二手书籍,大多数的可利用价值很高,如四六级书籍,考研书籍,但是由于信息资源的不流通以及传统二手书籍交流方式的笨拙,导致了很多仍然具有一定价值或者具有非常价值的二手书籍的闲置甚至浪费,乃至被当作废弃物处理。现在通过校园网进入到本系统,可以方便快捷的发布和交流任何二手书籍的信息,并且可以通过留言方式进行深一步的交流。争取到了信息资源的最大化利用。 系统完成的主要功能有:用户设置功能、发布信息功能、信息管理功能、搜索信息功能,留言功能,及系统管理功能,具体业务功能包括如下: 用户注册:学生可以进行注册,注册后需要激活账号。 用户登录:只有登录用户才能进行信息发布。管理员登录后可以进行系统管理。 发布信息:普通用户和管理员登录后都可以发布信息。 修改信息:普通用户可以修改自己发布的信息,管理员可以修改所有信息。 删除信息:普通用户可以删除自己发布的信息,管理员可以删除所有信息。 浏览信息:游客、普通用户和管理员可以浏览所有发布的信息。 搜索信息:游客、普通用户和管理员可以用关键字搜索所有发布的信息。普通用户可以搜索自己发布的所有信息。 发表留言:普通用户和管理员登录后都可以对发布信息进行留言。 查看留言:游客、普通用户和管理员都可以查看发布信息的留言。 删除留言:管理员可以删除留言。 3.1.2 系统界面要求 由于系统主要面向大学生,系统界面并没有过于正统,而是着重体现大学校园的自由,创新。系统界面设计应体现人性化,界面清晰简捷,操作简单流畅,提高管理效果。不需要任何专业培训,不需要配备专门的电脑操作人员,无电脑知识一样运用自如。关键在于系统的框架式设计简单明晰。 3.1.3 系统整体架构 本系统使用主流的三大框架[7]:Struts,Spring,Hibernate,因此对此系统从结构上进行了分层,整体可以分为表现层,控制层,业务层,持久层。 具体分层结构如下图3-1所示: 图3-1系统整体架构 3.2 概要设计 3.2.1 系统体系结构设计 本系统是一个典型的三层应用——浏览器通过Web服务器实现对数据库的各种操作。图3-2 展示了整个系统的体系结构。 SHAPE \* MERGEFORMAT 图3-2 系统体系结构 在这个系统体系结构中,并不是直接JDBC来访问数据库和进行数据库中相关表的操作,而是通过一系列持久层的Java对象来完成数据库的操作。 映射文件相当于持久层的Java对象和数据库的表之间的桥梁,它所描述的是这两都之间的对应关系。而且,持久层的Java对象和数据库表之间的关系也是一一对应的。 3.2.2 用户注册功能模块设计 用户注册必须填写所要求的个人资料,此处会对用户输入的邮箱进行Ajax验证,确保不能和其它注册用户的邮箱重复,当完成个人资料填写后才可以注册上,注册之后系统会给用户注册的邮箱发送一个激活账户的验证码,用户需要根据发送的验证码激活账户后才可正常使用。 3.2.3 发布信息功能模块设计 发布信息功能主要是为已注册之后并且成功激活账户的用户服务,登录之后的普通用户可以即时发布自己的二手书籍信息,此处需要根据系统规定填写好要出售书籍的具体信息,发布之后立刻就能在信息列表页浏览到。 3.2.4 用户管理功能模块设计 信息管理功能是用户能管理自己发布的信息,如删除,修改等,也包含系统管理员删除用户发布的非法信息。当前用户只能管理和修改自己发布的信息,而管理员能删除所有普通用户发布的信息。 3.2.5 留言模块设计 普通用户和已经登录的用户都可以对自己的商品和其他的商品进行留言评论,用户发表留言之后系统自动跳转到当前留言的页面,并显示出所有的留言,包含当前添加之后的留言。 3.2.6 功能设计的目标与原则 此二手书交易平台的主要目的是服务于学生,方便学生进行网上交易。其原则是界面友好,操作简单且可靠,主要注重主要交易功能的实现,并不需要像其它的网络交易平台那样功能繁多,在这里主要的目的是为了提供简单高效的交易平台。 具体做到: a) 架构清晰,界面友好美观,简捷,实用性强。 b) 动态式信息发布:为充分展现网站的时实性,二手交易平台采用动态网页技术实现内容发布。 c) 提供信息搜索及查看方式。全面自动化管理。 d) 全面整合买家和卖家之间的信息,提供一个交流沟通的平台。 e) 可用性。目标系统功能齐全,能够满足大部分业务需求。 f) 确保在能承受大量用户并发请求的前提下,系统能稳定运行 g) 系统还要有良好的扩展性,而不单单为实现单一的功能而存在 h) 充分融合当前主流的技术,为系统的高性能打下基础 系统综合功能模块如下图3-3所示: SHAPE \* MERGEFORMAT 图 3-3 系统功能结构图 3.3 数据库设计 3.3.1 数据库需求分析 对于数据库的需求主要体现在对数据库的提交信息、更新信息、删除信息、保存信息等。这些信息的存在都取决于各个功能模块的对信息的需求。通过对功能模块的具体操作,实现对数据库中信息的输入和输出。同时还要考虑到数据表之间尽量减少数据冗余,通过外键将各个数据表联系在一起。 3.3.2 数据库概念结构设计 概念模型是对于信息世界的建模,是现实世界到信息世界的抽象,是数据库设计人员和用户之间进行交流的语言。它具有简洁明晰、易于理解和修改、便于向各种数据模型转换,从而生成相应的逻辑模式。 概念设计的目的是要确定系统的概念模型,因为概念模型是数据库系统的核心和基础,所以概念设计是数据库设计的关键。 3.3.3 数据库逻辑结构设计 对于数据库表,大多是依赖于别的表的外键而存在的。本系统数据库逻辑可由以下图形描述,其逻辑模型如图3-4所示: 图3-4 数据库逻辑模型 对于以上数据库表,各个表之间分工明确,减少了表之间的冗余,各个表之间是通过外键关系联系在一起。当查询数据时,可以根据外键进行数据检索。 3.3.4 数据库逻辑表设计 在本次设计开发中,考虑到系统的规模,以及系统的功能、稳定性、性能和效率等方面,特别的对系统可移植性的考虑,我使用MySQL数据库系统。 依照3-1中的数据库需求分析设计各数据库表,各个表中都用ID做主键,主键用到Hibernate的native方式自动生成主键。其它字段也都有各自的约束条件。 主要表的具体逻辑结构如下: 表3-1 用户表 (d_user) 字段名 数据类型 约束条件 说明 ID INT(12) Primary Key 用户ID EMAIL VARCHAR(50) UNIQUE 用户邮箱 NICKNAME VARCHAR(50) NOT NULL 用户昵称 PASSWORD VARCHAR(50) NOT NULL 用户密码 USER_INTEGRAL INT(12) 用户权限 IS_EMAIL_VERIFY CHAR(3) NOT NULL 是否验证 EMAIL_VERIFY_CODE VARCHAR(50) NOT NULL 验证码 LAST_LOGIN_TIME BIGINT(20) NOT NULL 登录时间 LAST_LOGIN_IP VARCHAR(15) NOT NULL 登录IP 表3-2 图书分类表(d_category) 字段名 数据类型 约束条件 说明 ID INT(12) Primary Key 分类ID TURN INT(10) 显示顺序 EN_NAME VARCHAR(200) NOT NULL 英文名称 NAME VARCHAR(200) NOT NULL 中文名称 DESCRIPTION VARCHAR(200) 描述 PARENT_ID INT(10) NOT NULL 父类ID 表3-3 分类-商品对照表(d_category_product) 字段名 数据类型 约束条件 说明 ID INT(12) Primary Key ID PRODUCT_ID INT(10) Foreign Key 商品ID CAT_ID INT(10) Foreign Key 分类ID 表3-4 评论表(d_comment) 字段名 数据类型 约束条件 说明 ID INT(12) Primary Key 评论ID PRODUCT_ID INT(12) Foreign Key 商品ID USERNAME VARCHAR(20) NOT NULL 评论人姓名 CONTENT VARCHAR(100) NOT NULL 留言内容 CONNECT VARCHAR(20) 联系方式 CREATEDTIME TIMESTAMP(0) NOT NULL 评论时间 表3-5 订单明细表(m_type) 字段名 数据类型 约束条件 说明 ID VARCHAR(50) Primary Key ID ORDER_ID INT(10) Foreign Key 订单ID PRODUCT_ID INT(10) Foreign Key 商品ID PRODUCT_NAME VARCHAR(100) NOT NULL 商品名称 DANG_PRICE DOUBLE(0) NOT NULL 当前售价 PRODUCT_NUM INT(10) NOT NULL 商品数量 AMOUNT DOUBLE(0) NOT NULL 总价 表3-6 订单表(d_order) 字段名 数据类型 约束条件 说明 ID INT(10) Primary Key 订单ID USER_ID INT(10) Foreign Key 用户ID STATUS INT(10) NOT NULL 交易状态 ORDER_TIME BIGINT(20) NOT NULL 订单时间 TOTAL_PRICE DOUBLE(0) NOT NULL 总价 RECEIVE_NAME VARCHAR(100) NOT NULL 买者姓名 FULL_ADDRESS VARCHAR(200) NOT NULL 联系地址 POSTAL_CODE VARCHAR(8) NOT NULL 邮编 MOBILE VARCHAR(20) NOT NULL 手机 PHONE VARCHAR(20) 电话 表3-7 商品表(d_product) 字段名 数据类型 约束条件 说明 ID INT(12) Primary Key 商品ID USER_ID VARCHAR(12) Foreign Key 用户ID PRODUCT_NAME varchar(100) NOT NULL 商品名称 DESCRIPTION VARCHAR(100) NOT NULL 商品描述 ADD_TIME BIGINT(20) NOT NULL 添加时间 FIXED_PRICE DOUBLE(0) NOT NULL 外部价格 DANG_PRICE DOUBLE(0) NOT NULL 当前售价 KEYWORDS VARCHAR(200) NOT NULL 关键字 HAS_DELETED INT(1) 是否删除 PRODUCT_PIC VARCHAR(200) 图片名 表3-8 交易地址(d_receive_address) 字段名 数据类型 约束条件 说明 ID INT(12) Primary Key 地址ID USER_ID VARCHAR(12) Foreign Key 信息标题 RECEIVE_NAME VARCHAR(20) NOT NULL 买者姓名 FULL_ADDRESS VARCHAR(200) NOT NULL 交易地址 POSTAL_CODE VARCHAR(8) NOT NULL 邮编 MOBILE VARCHAR(15) NOT NULL 手机 表3-9 书籍详细信息表(d_book) 字段名 数据类型 约束条件 说明 ID INT(12) Primary Key 书籍ID AUTHOR VARCHAR(200) NOT NULL 作者名称 PUBLISHING VARCHAR(200) NOT NULL 出版社 PUBLISH_TIME BIGINT(20) NOT NULL 出版时间 WORD_NUMBER VARCHAR(15) 字数 TOTAL_PAGE VARCHAR(15) 页数 ISBN VARCHAR(25) ISBN编号 AUTHOR_SUMMARY TEXT(0) NOT NULL 作者简介 CATALOGUE TEXT(0) NOT NULL 书籍描述 3.4 数据库访问设计 数据库访问是指对数据库进行操作,本系统使用Hibernate完成数据库表与java对象映射,并用HibUtil和DBUtil工具类为数据库访问提供Hibernate和JDBC支持。 3.4.1 数据库表模型设计 所有数据库表中都有编号ID做为主键,根据数据库的表编写了对应的实体类POJO 所有Model类的UMR。 如图3-5所示: 图3-5 数据库POJO对象UMR图 3.4.2 Hibernate数据库访问配置 Hibernate应用于程序的持久层,主要负责对所有交互数据的保存即持久化,同时也负责从数据库取出数据进行操作,此处需要配置连接数据库所用的信息。数据库连接是通过配置好的JDBC连接池来完成的,使用了数据库连接池的好处就在于能处理大量的连接请求。 Hibernate支持许多开源的连接池,此处在项目中使用了连接池:commons-pools,commons-dbcp ,Hibernate配置文件主要用于配置hibernate连接数据库的参数以及其它一些hibernate在运行时需要使用的各种参数的值。 配置如图3-6所示: 图3-6 Hibernate配置图 3.4.3 定义映射文件 映射文件用于描述持久层对象以及它们的属性和数据库中的表和表的字段之间的对应关系,它完成了数据的持久化,这里以用户类的配置文件为代表。 文件清单如下: 所有hibernate-mapping标签(tag)之间,都含有一个class元素。所有的持久化实体类都需要一个这样的映射,来把类对象映射到SQL数据库里的表。id元素是标识符属性的声明,name="id" 声明了Java属性的名字 - Hibernate会使用getId()和setId()来访问它。 column属性则告诉Hibernate, 我们使用d_user表的哪个字段作为主键。嵌套的generator元素指定了标识符生成策略,在这里我们指定native。 3.4.4 Hibernate Session工厂 该类主要用于方便地提供Hibernate的初始化以及Hibernate的sessioon和事务的处理。使用Hibernate进行持久化操作主要需要以下步骤: a. 创建Configuration对象:装载配置文件,读取所有的映射文件并进行解析。 b. 创建 SessionFactory对象:它是产生Session对象的工厂。 c. 创建Session对象实例:并且将Session对象放入线程当中。 d. 开始一个事务。 e. 进行持久化操作:读取或保存java对象。 f. 结束事务:在操作完成后要进行显示的结束事务的操作。 g. 关闭Session::类似于释放数据库的连接。 这里由于使用了struts2框架,为此我们定义了一个拦截器(Interceptor)用于管理事务,使得每个请求只开启一个事务,防止逻辑混乱。 HibernateSessionFactory类的结构如图3-7所示: 图 3-7 HibUtil类方法UMR图 3.4.5 定义和实现DAO 在完成以上的定义和配置工作后,要完成HibernateDAO的定义和实现。 首先定义DAO接口,基于接口的编程方法,可以在方法调用者和方法具体实现之间建立一个屏障,即它们不存在任何的关联,降低它们的耦合度,一边的修改不会影响另一边的正常运行。定义完称后实现DAO接口,不同的DAO具有不同的实现,此处以UserDAOImpl类的关系如图3-8所示: 图3-8 UserDAOImpl UMR图 4 系统功能模块的实现 此处,将为大家详细说明系统功能模块的具体实现,系统主要使用了JSP作为视图、Javascript和jQuery用于客户端验证、Struts2作为控制器,通过Hibernate对数据库的操作,完成了一个动态的校园二手书跳蚤市场。 4.1 系统主页设计 4.1.1 主页显示设计 系统主页是面向平台的所有访问者,注册用户和非注册用户都可以进入到系统主页面,查看相关的二手信息及二手指南。 主页面由平台Logo、登录和注册链接、搜索框和各种类型的最新二手信息列表组成。 主页面效果如图4-1所示: 图4-1 主页面 系统的主页6由六部分构成:页面头文件,左侧分类页面,编辑推荐页面,最新发布页面,已经卖出页面,和底部的版权信息页面。其中头文件和版权信息页面是固定的,其它的页面是通过Struts2标签引入的,例如编辑推荐页面可以这样引入:。其中name对应的是页面加载时要自动访问的action类的配置名字,配置名字均在struts.xml里面,页面访问这个action之后会把结果返回并加载到主页面上,这样就构成了整个主页面的所有信息。 4.1.2 信息页显示设计 信息页主要是根据用户点击的分类进行相应的显示,同时加入了分页操作,对于信息量多的分类可以分页显示。 当用户点击了相应的图书分类之后就会跳转到这个页面。便于用户更直观的选择相应分类的二手书信息。效果图如图4-2所示: 图4-2 信息显示页面 4.2 系统登录功能设计 由于游客、普通用户、管理员权限不同,为此系统增加了登录功能,为普通用户、管理员的不同的特殊操作提供接口。普通用户登录之后只能发表信息和查看购买信息,以及其他人对自己发布信息的留言等。 系统登录功能是所有动态网站都要具有的功能,如何确保登录安全是我们都要考虑的一个问题,在本系统中在用户注册时就对用户输入的密码进行了MD5不可逆数据加密,加密后的密码位数足以防止暴力破解,所以此处登录的设计完全可以防止任何的暴力破解,以及密码攻击性的恶意登录破解。登录流程简单描述为输入用户名和密码之后提交表单,当数据到达后台之后,系统去数据库验证帐号和密码的正确与否,如果用户名和密码正确则保存登录信息同时返回主页,登录失败返回登录页面。同时当登录失败时会在登录页面以红字提示用户名或者密码错误,如果用户之前没有注册过,此时可以通过右下方的注册用户连接进行账户的注册,本登录页面设计以美观和简洁为主。如图4-3所示: 图4-3 用户登录界面图 登录成功后,普通用户、管理员都将在主页面显示用户的基本信息。 登录成功效果图如图4-4所示: 图4-4 用户登录成功效果图 4.3 系统搜索功能设计 系统搜索时,用Struts拦截搜索请求,并选择写好的SearchAction类对输入的信息进行检索,在Action类中调用业务层的方法进行检索,业务层再调用Dao对象通过Hibernate操作数据库返回搜索结果。 搜索效果如图4-5所示: 图4-5 搜索结果显示图 4.4 用户注册功能设计 由系统主页面点击注册可进入注册页面或者在地址栏输入toReg.action进入注册页面进行用户注册,用户注册页面由js框架jQuery来作验证,此处用到了Ajax来发送异步请求,判断用户输入的邮箱是否已经被注册,如果被注册会提示用户换一个邮箱,其它的信息也会经过判断,以确保用户输入的注册信息的合理性。同时当用户注册成功之后系统会给用户发送激活验证码,用户需要登录注册时的邮箱进行激活账户操作。 4.4.1 用户注册页面设计 注册页面包括表单和表单验证。用户注册时,当输入邮箱时会通过Ajax技术向后台发送这个邮箱,用于判断数据库是否有重复的邮箱,如果之前这个邮箱被注册过则这里会提示:邮箱已经存在,其它要填写的注册信息如果为空或者不符合要求也会报错,此处使用了后台生成验证码,防止程序恶意注册。验证码图片使用了Struts2的Result组件的流形式来返回到页面生成了当前图片。同时使用了jQuery进行页面的友好提示,而不是像很多网站中直接弹出错误的提示框,此处直接在页面提示错误,更显人性化。 注册验证效果如图4-6所示: 图4-6 注册验证效果图 4.4.2 用户注册后激活账户的设计 用户注册后的激活功能是目前很多平台都有的功能,之所以加入这个功能是为了防止不怀好意的人用工具软件进行恶意注册,这样会导致数据库内大量无用数据的增加。 当正常用户使用时由于无用数据的存在使得系统检索有用的数据的时间增长,这样就会带来了系统性能的下降,开始可能感觉不到检索时间的差别,当数据增加到一定的地步时这种性能的影响就会很明显,为此增加了用户验证的功能,此处使用了一个开源的邮件工具包jmail组件,只需要简单的代码调用便可以实现了邮件发送功能。 用户注册后台操作在Action中进行,后台实现了将用户信息插入数据库并将新注册用户以及用户权限放入session。同时将注册码发送到用户邮箱,用户需要输入注册码用于账户的激活,为了防止激活码的重复而导致的激活失败,此处的激活码的生成使用了Java的UUID和用户当前ID相结合而生成的,所谓UUID就是Java虚拟机根据当前用户的IP地址,网卡的物理地址而生成的一组字符串,理论上是不会出现重复的数据,并且进行了Base64加密运算而生成,所以不可能有2个用户的注册码是重复的。此处开发时为了方便直接将激活码放在了页面上。 如图4-7所示: 图4-7 用户激活账户页面 4.5 发布、修改信息设计 信息的发布和修改是该系统的最主要功能,只有注册用户或管理员才有权限进行信息发布,普通用户只能修改自己发布的信息,管理员可以修改所有信息和删除所有信息。 信息的发布和修改共用了同一个页面,页面中包含表单和表单验证。表单通过ActionForm接收,在Action中对表单的操作根据信息编号参数值判断执行发布或修改。信息发布页面效果如图4-8: 图4-8 信息发布页面效果图 信息发布、修改的具体操作在Action中进行,Action中首先验证是否为用户,非用户则自动跳转到登录页面,反之执行相应操作。信息发布、修改时需要对数据库进行多次读写操作,这些操作都是由Hibernate将数据进行持久化 4.6 信息管理设计 信息管理分为普通用户个人信息管理和管理员会员信息管理。管理页面显示了要管理信息的重要信息,并提供链接可进入详细信息页面。每个信息都有修改、删除按钮。这里只介绍已经发布的信息管理页面,页面效果如图4-9所示: 图4-9 个人信息管理效果图 4.7 用户管理设计 用户管理是指网站管理员对所有注册用户进行管理的一个模块,这个模块从技术上来说是最复杂的一个模块,操作时涉及的表最多,对普通注册后激活的用户或者没有激活的用户的管理是不同的,如果用户注册之后长期没有激活则会随着数据量的增多造成数据库的脏数据的存在,会影响数据库的性能,为此增加了管理员可以对这个用户进行删除操作,删除的操作是不可逆的,用户被删除之后无法恢复。对于那些已经注册了的用户,这些用户会发表信息等,但是如果管理员发现某些用户发表不符合国家政策法规规定的内容或者发布广告信息,而不是交易信息时,管理员也需要对这些用户进行处理,此处的处理就是永久性的删除。当这些用户信息被删除之后,该用户所发表的所有交易信息也会被同时删除,因为表之间外键的关联关系,如果用户不存在了他所发表的信息也就没有实际意义了因此删除操作是对应多个附属操作的,同时发表的信息被删除后则信息所对应的评论则也会被删除,因此人员管理是一个一连串的数据库操作。对于用户管理是只有管理员才有权限删除的,用户管理界面效果图如图4-10所示: 图4-10用户管理界面效果图 4.8 信息留言设计 登录用户可以对信息进行留言,留言会立刻显示在信息详细下面,这些信息会连同留言表单内容传入Action中进行插入操作。 留言界面效果如图4-11所示: 图4-11留言界面效果图 留言成功后返回到当前留言之前的页面,同时显示出当前添加的留言和之前添加的留言,按留言的先后顺序显示留言内容。为了保证发布者和留言者能够沟通,所以留言者的联系方式需要填写,此处的联系方式既可以写电话,手机也可以写邮箱,QQ号等。 结论及尚存在的问题 本次毕业设计经过2次大的变动,第一次我用JSP+Servlet+JavaBeans/EJB完成了它,但是随着学习的不断加深,我又学到了很多新的技术,例如Struts2,Spring,Hibernate框架等。于是又重新写了这个系统,将所学的新技术应用到上面。同时Java语言是真正的跨平台,本系统我最先是在Linux系统下完成的,为了写本论文的方便于是将其转移到了Windows平台,足以看出它的平台无关性,正如Java的本质:“一次编写,到处运行”。同时对系统的分层架构,层与层之间留下调用的接口,上一层只需要调用下一层的接口便能实现所有的功能,而不需要关心各层是怎样实现的,这就是面向接口的编程,Spring的创始人就提出过这种思想。这样能够让人非常简单方便地构建安全高速的WEB应用。同时可以通过JDBC(Java DataBase Comnectivity)接口,和Hibernate接口访问几乎所有数据库,并且可以使用数据库连接池技术,有效控制连接数,确保系统的正常运转。从发展的眼光来看,Java的前途一片光明。 在这个系统开发过程中,我对Strut2,Spring,Hibernate框架的学习是从零开始,写过许多测试案例。每次的新发现我都运用到这个系统中,在运用中,对它的掌握也更加熟练。系统运用Struts框架,是基于MVC模式,这种模式在该系统的开发过程中经常用到,参阅了很多相关的书籍,包括Apache官方网站的英文帮助文档,不仅解决了很多问题,也提高了自己的英文水平。系统中所有的页面,都没有使用Java代码,而是用到了Struts标签和EL表达式,使页面上代码简捷,易懂,易改。 经过2个月左右的设计与开发,系统终于基本开发完成,各项预期功能都已得到实现,并且还具有进一步的扩展空间,将会伴随着日后的使用逐步完成。设计和开发过程中遇到的问题也都得到解决,学到了很多开发经验,受益无穷。 附 录 本系统最重要的特点是用Hibernate进行数据库持久化操作,最关键的类是Hibernate Session工厂类,该类主要用于方便的提供Hibernate的初始化以及Hibernate的sessioon和事务的处理。HibUtil的代码如下: package com.tarena.common; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration; public class HibUtil { private static SessionFactory sessionFactory; private static ThreadLocal threadlocal = new ThreadLocal(); static { try { sessionFactory = new Configuration().configure() .buildSessionFactory(); } catch (Throwable tx) { throw new ExceptionInInitializerError(tx); } } public static SessionFactory getSessionFactory() { return sessionFactory; } public static Session getSession() { Session session = threadlocal.get(); if (session == null) { session = sessionFactory.openSession(); threadlocal.set(session); } return session; } public static void closeSession() { Session session = threadlocal.get(); threadlocal.set(null); if (session != null && session.isOpen()) { session.close(); } } } 说明:使用Hibernate进行数据持久化操作的主要需要以下几步: (a) 建立session对象,为空:Session session=null; (b) 建立一个上下文环境:Configuration cof= new Configuration().configure(); (c) 在此环境中建立一个工厂:SessionFactory factory=cof.buildSessionFactory(); (d) 由工厂启动session会话:session=factory.openSession(); (e) 启动后开始加工:Transaction tx=session.beginTransaction(); (f) 对数据进行操作指令: session.save();session.update(); Query q=session.creatQuery("sqlstr"); (g) 事务提交:tx.commit()。 参考文献 [1]葛一鸣.Java程序性能优化:让你的Java程序更快、更稳定[M].北京:清华大学出版社,2012:20-50 [2]朱少民.软件测试方法和技术[M].北京:清华大学出版社,2010:30-50. [3]王珊,萨师煊.数据库系统概论[M].北京:高等教育出版社,2006:151-163. [4]史济民,顾春华,郑红.软件工程-原理、方法与应用[M].北京:高等教育出版社,2009. [5][美]埃克尔. Java编程思想(第4版)[M].北京:机械工业出版社,2007. [6](美)梁勇 著,李娜 译. Java语言程序设计:基础篇(原书第8版)[M].北京:机械工业出版社,2011. [7]陈臣 等编著. 研磨Struts2(配光盘)[M].北京:清华大学出版社,2011. [8]郝佳 编著. Spring源码深度解析[M].北京:人民邮电出版社,2013. [9]李刚 等编著. 贯通 Hibernate开发(含光盘1张)[M].北京:电子工业出版社,2008. [10]张玲玲.深入体验Java Web项目开发[M].北京:清华大学出版社,2011:504-508. [11]叶青.网页开发手记:HTML+CSS+JavaScript实战详解[M].北京:电子工业出版社,2011. [12]蒲子明,许勇,王黎.Struts2+Hibernate+Spring整合开发技术详解[M].北京:清华大学出版社,2010. 致谢 时间过得很快,转眼大学最后的这半年时间就过完了,我的毕业设计也接近尾声,回想起这半年的时间真的是感慨万千,还好毕业设计如期完成,算是给自己空虚的心灵以小小的慰藉。 衷心地感谢我的指导老师杨新锋,他学识渊博,品德高尚,平易近人。无论是在程序的选材、需求分析、到系统设计还是在系统开发过程的每一个环节,都给予了我细心指导。在他的身上,我感受到的,是一个学者的严谨和务实,这将使我终生受益。借此机会向杨新锋老师表示最衷心的感谢。 非常感谢计算机科学与技术系的领导和老师们,是你们给我们提供这么好的环境条件让我们能专心钻研自己的毕业设计,使我们所学的知识从理论升华到实践应用。 同时也非常感谢帮助过我的同学们,正是由于你们的帮助和支持,我才能克服一个一个的困难,直至毕业设计的顺利完成。 路漫漫其修远兮,吾将上下而求索。在未来的日子里,我将更加努力的学习和工作,来报答曾经关心过我的领导、老师和朋友们! 毕业设计(论文)原创性声明和使用授权说明 原创性声明 本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得 及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。 作 者 签 名:       日  期:        ​​​​​​​​​​​​ 指导教师签名:        日  期:        使用授权说明 本人完全了解 大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。 作者签名:        日  期:        ​​​​​​​​​​​​ 学位论文原创性声明 本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。 作者签名: 日期: 年 月 日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权      大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 涉密论文按学校规定处理。 作者签名: 日期: 年 月 日 导师签名: 日期: 年 月 日 指导教师评阅书 指导教师评价: 一、撰写(设计)过程 1、学生在论文(设计)过程中的治学态度、工作精神 □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、学生掌握专业知识、技能的扎实程度 □ 优 □ 良 □ 中 □ 及格 □ 不及格 3、学生综合运用所学知识和专业技能分析和解决问题的能力 □ 优 □ 良 □ 中 □ 及格 □ 不及格 4、研究方法的科学性;技术线路的可行性;设计方案的合理性 □ 优 □ 良 □ 中 □ 及格 □ 不及格 5、完成毕业论文(设计)期间的出勤情况 □ 优 □ 良 □ 中 □ 及格 □ 不及格 二、论文(设计)质量 1、论文(设计)的整体结构是否符合撰写规范? □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、是否完成指定的论文(设计)任务(包括装订及附件)? □ 优 □ 良 □ 中 □ 及格 □ 不及格 三、论文(设计)水平 1、论文(设计)的理论意义或对解决实际问题的指导意义 □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、论文的观念是否有新意?设计是否有创意? □ 优 □ 良 □ 中 □ 及格 □ 不及格 3、论文(设计说明书)所体现的整体水平 □ 优 □ 良 □ 中 □ 及格 □ 不及格 建议成绩:□ 优 □ 良 □ 中 □ 及格 □ 不及格 (在所选等级前的□内画“√”) 指导教师: (签名) 单位: (盖章) 年 月 日 评阅教师评阅书 评阅教师评价: 一、论文(设计)质量 1、论文(设计)的整体结构是否符合撰写规范? □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、是否完成指定的论文(设计)任务(包括装订及附件)? □ 优 □ 良 □ 中 □ 及格 □ 不及格 二、论文(设计)水平 1、论文(设计)的理论意义或对解决实际问题的指导意义 □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、论文的观念是否有新意?设计是否有创意? □ 优 □ 良 □ 中 □ 及格 □ 不及格 3、论文(设计说明书)所体现的整体水平 □ 优 □ 良 □ 中 □ 及格 □ 不及格 建议成绩:□ 优 □ 良 □ 中 □ 及格 □ 不及格 (在所选等级前的□内画“√”) 评阅教师: (签名) 单位: (盖章) 年 月 日 教研室(或答辩小组)及教学系意见 教研室(或答辩小组)评价: 一、答辩过程 1、毕业论文(设计)的基本要点和见解的叙述情况 □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、对答辩问题的反应、理解、表达情况 □ 优 □ 良 □ 中 □ 及格 □ 不及格 3、学生答辩过程中的精神状态 □ 优 □ 良 □ 中 □ 及格 □ 不及格 二、论文(设计)质量 1、论文(设计)的整体结构是否符合撰写规范? □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、是否完成指定的论文(设计)任务(包括装订及附件)? □ 优 □ 良 □ 中 □ 及格 □ 不及格 三、论文(设计)水平 1、论文(设计)的理论意义或对解决实际问题的指导意义 □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、论文的观念是否有新意?设计是否有创意? □ 优 □ 良 □ 中 □ 及格 □ 不及格 3、论文(设计说明书)所体现的整体水平 □ 优 □ 良 □ 中 □ 及格 □ 不及格 评定成绩:□ 优 □ 良 □ 中 □ 及格 □ 不及格 (在所选等级前的□内画“√”) 教研室主任(或答辩小组组长): (签名) 年 月 日 教学系意见: 系主任: (签名) 年 月 日 学位论文原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师的指导下进行的研究工作所取得的成果。尽我所知,除文中已经特别注明引用的内容和致谢的地方外,本论文不包含任何其他个人或集体已经发表或撰写过的研究成果。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式注明并表示感谢。本人完全意识到本声明的法律结果由本人承担。 学位论文作者(本人签名): 年 月 日 学位论文出版授权书 本人及导师完全同意《中国博士学位论文全文数据库出版章程》、《中国优秀硕士学位论文全文数据库出版章程》(以下简称“章程”),愿意将本人的学位论文提交“中国学术期刊(光盘版)电子杂志社”在《中国博士学位论文全文数据库》、《中国优秀硕士学位论文全文数据库》中全文发表和以电子、网络形式公开出版,并同意编入CNKI《中国知识资源总库》,在《中国博硕士学位论文评价数据库》中使用和在互联网上传播,同意按“章程”规定享受相关权益。 论文密级: □公开 □保密(___年__月至__年__月)(保密的学位论文在解密后应遵守此协议) 作者签名:_______ 导师签名:_______ _______年_____月_____日 _______年_____月_____日 独 创 声 明 本人郑重声明:所呈交的毕业设计(论文),是本人在指导老师的指导下,独立进行研究工作所取得的成果,成果不存在知识产权争议。尽我所知,除文中已经注明引用的内容外,本设计(论文)不含任何其他个人或集体已经发表或撰写过的作品成果。对本文的研究做出重要贡献的个人和集体均已在文中以明确方式标明。 本声明的法律后果由本人承担。   作者签名: 二〇一〇年九月二十日   毕业设计(论文)使用授权声明 本人完全了解滨州学院关于收集、保存、使用毕业设计(论文)的规定。 本人愿意按照学校要求提交学位论文的印刷本和电子版,同意学校保存学位论文的印刷本和电子版,或采用影印、数字化或其它复制手段保存设计(论文);同意学校在不以营利为目的的前提下,建立目录检索与阅览服务系统,公布设计(论文)的部分或全部内容,允许他人依法合理使用。 (保密论文在解密后遵守此规定)   作者签名: 二〇一〇年九月二十日 致 谢 时间飞逝,大学的学习生活很快就要过去,在这四年的学习生活中,收获了很多,而这些成绩的取得是和一直关心帮助我的人分不开的。 首先非常感谢学校开设这个课题,为本人日后从事计算机方面的工作提供了经验,奠定了基础。本次毕业设计大概持续了半年,现在终于到结尾了。本次毕业设计是对我大学四年学习下来最好的检验。经过这次毕业设计,我的能力有了很大的提高,比如操作能力、分析问题的能力、合作精神、严谨的工作作风等方方面面都有很大的进步。这期间凝聚了很多人的心血,在此我表示由衷的感谢。没有他们的帮助,我将无法顺利完成这次设计。 首先,我要特别感谢我的知道郭谦功老师对我的悉心指导,在我的论文书写及设计过程中给了我大量的帮助和指导,为我理清了设计思路和操作方法,并对我所做的课题提出了有效的改进方案。郭谦功老师渊博的知识、严谨的作风和诲人不倦的态度给我留下了深刻的印象。从他身上,我学到了许多能受益终生的东西。再次对周巍老师表示衷心的感谢。 其次,我要感谢大学四年中所有的任课老师和辅导员在学习期间对我的严格要求,感谢他们对我学习上和生活上的帮助,使我了解了许多专业知识和为人的道理,能够在今后的生活道路上有继续奋斗的力量。 另外,我还要感谢大学四年和我一起走过的同学朋友对我的关心与支持,与他们一起学习、生活,让我在大学期间生活的很充实,给我留下了很多难忘的回忆。 最后,我要感谢我的父母对我的关系和理解,如果没有他们在我的学习生涯中的无私奉献和默默支持,我将无法顺利完成今天的学业。 四年的大学生活就快走入尾声,我们的校园生活就要划上句号,心中是无尽的难舍与眷恋。从这里走出,对我的人生来说,将是踏上一个新的征程,要把所学的知识应用到实际工作中去。 回首四年,取得了些许成绩,生活中有快乐也有艰辛。感谢老师四年来对我孜孜不倦的教诲,对我成长的关心和爱护。 学友情深,情同兄妹。四年的风风雨雨,我们一同走过,充满着关爱,给我留下了值得珍藏的最美好的记忆。 在我的十几年求学历程里,离不开父母的鼓励和支持,是他们辛勤的劳作,无私的付出,为我创造良好的学习条件,我才能顺利完成完成学业,感激他们一直以来对我的抚养与培育。 最后,我要特别感谢我的导师***老师、和研究生助教***老师。是他们在我毕业的最后关头给了我们巨大的帮助与鼓励,给了我很多解决问题的思路,在此表示衷心的感激。老师们认真负责的工作态度,严谨的治学精神和深厚的理论水平都使我收益匪浅。他无论在理论上还是在实践中,都给与我很大的帮助,使我得到不少的提高这对于我以后的工作和学习都有一种巨大的帮助,感谢他耐心的辅导。在论文的撰写过程中老师们给予我很大的帮助,帮助解决了不少的难点,使得论文能够及时完成,这里一并表示真诚的感谢。 致 谢 这次论文的完成,不止是我自己的努力,同时也有老师的指导,同学的帮助,以及那些无私奉献的前辈,正所谓你知道的越多的时候你才发现你知道的越少,通过这次论文,我想我成长了很多,不只是磨练了我的知识厚度,也使我更加确定了我今后的目标:为今后的计算机事业奋斗。在此我要感谢我的指导老师——***老师,感谢您的指导,才让我有了今天这篇论文,您不仅是我的论文导师,也是我人生的导师,谢谢您!我还要感谢我的同学,四年的相处,虽然我未必记得住每分每秒,但是我记得每一个有你们的精彩瞬间,我相信通过大学的历练,我们都已经长大,变成一个有担当,有能力的新时代青年,感谢你们的陪伴,感谢有你们,这篇论文也有你们的功劳,我想毕业不是我们的相处的结束,它是我们更好相处的开头,祝福你们!我也要感谢父母,这是他们给我的,所有的一切;感谢母校,尽管您不以我为荣,但我一直会以我是一名农大人为荣。 通过这次毕业设计,我学习了很多新知识,也对很多以前的东西有了更深的记忆与理解。漫漫求学路,过程很快乐。我要感谢信息与管理科学学院的老师,我从他们那里学到了许多珍贵的知识和做人处事的道理,以及科学严谨的学术态度,令我受益良多。同时还要感谢学院给了我一个可以认真学习,天天向上的学习环境和机会。 即将结束*大学习生活,我感谢****大学提供了一次在农大接受教育的机会,感谢院校老师的无私教导。感谢各位老师审阅我的论文。 本科生毕业设计(论文)规范化要求 第一部分 学生应遵守以下规范要求 一、毕业设计论文说明 1. 毕业设计论文独立装订成册,内容包括: (1) 封面(题目、学生姓名、指导教师姓名等) (2) 中、外文内容摘要 (3) 正文目录(含页码) (4) 正文(开始计算页码) (5) 致谢 (6) 参考文献 (7) 附录 2. 中、外文内容摘要包括:课题来源,主要设计,实验方法,本人主要完成的成果。要求不少于400汉字,并译成外文。 3. 毕业设计论文页数为45页-50页。 4. 纸张要求:毕业设计说明书(论文报告)应用标准B5纸单面打字成文。 5. 文字要求:文字通顺,语言流畅,无错别字。 6. 图纸要求:毕业设计图纸应使用计算机绘制。图纸尺寸标注应符合国家标准。图纸应按“规范”叠好。 7. 曲线图表要求:所有曲线、图表、流程图、程序框图、示意图等不得徒手画,必须按国家规定标准或工程要求绘制。 8. 参考文献、资料要求:参考文献总数论文类不少于10篇、,应有外文参考文献。文献应列出序号、作者、文章题目、期刊名、年份、出版社、出版时间等。 二、外文 1. 完成不少于2万印刷符的外文翻译。译文不少于5千汉字。 2. 译文内容必须与题目(或专业内容)有关,由指导教师在下达任务书时指定。 3. 译文应于毕业设计中期2月底前完成,交指导教师批改。 4. 将原文同译文统一印成B5纸规格装订成册,原文在前,译文在后。 三、形式审查 5月15日前,将毕业设计论文上交指导教师,审查不合格者,不能参加答辩。 四、准备答辩 答辩前三天,学生要将全部材料(包括光盘、论文)统一交指导教师。 关于毕业论文格式的要求 为方便统一、规范论文格式,现将学院的相关要求做如下强调、补充: 1. 基本要求 纸型: B5纸(或16开),单面打印; 页边距: 上2.54cm,下2.54cm,左2.5cm,右2.5cm; 页眉:1.5cm,页脚1.75cm,左侧装订 正文字体:汉字和标点符号用“宋体”,英文和数字用“Times New Roman”,字号小四; 图号1-1,指第1章第1个图 在图的前部要有文字说明(如图1-1所示) 表号3-5,指第3章第5个表 在表的前部要有文字说明(如表3-5所示) 图、表的标注字体大小是五号宋体 行距: 固定值20; 页码: 居中、小五、底部。 2. 封面格式 封皮: 大连理工大学城市学院(二号、黑体、居中) 本科生毕业设计(论文)(二号、黑体、居中) 学 院:(四号、黑体、居中、下划线:电子与自动化学院) 专 业:(四号、黑体、居中、下划线、专业名字之间无空格) 学 生:(四号、黑体、居中、下划线,名字是2个字的中间空1个字、3个或3个以上字的中间无空格) 指导教师:(四号、黑体、居中、下划线,名字是2个字的中间空1个字、3个或3个以上字的中间无空格,两位指导教师的中间用顿号“、”) 完成日期:(四号、黑体、居中、下划线,如:2009年5月25日) (注意:5个下划线两端也是对齐的,单倍行距) 内 封:大连理工大学城市学院本科生毕业设计(论文)(四号、黑体) 题目 (二号、黑体、居中); 总计 毕业设计(论文) 页(五号、宋体) 表格 表(五号、宋体) 插图 幅 (五号、宋体) (注意:页数正常不少于40页,优秀论文原则上不少于45页) 3. 中外文摘要 中文摘要:标题“摘 要” (三号、黑体、居中、中间空1个字) 正文(不少于400字) 关键词 (五号、黑体):3-5个主题词(五号),中间用分号“;”隔开。 外文摘要 (另起一页):标题“Abstract” (三号、黑体、居中) 正文 (必须用第三人称) 关键词: Key words(五号、黑体):3-5个主题词(五号)与中文关键词对应,中间用分号“;”隔开。 4. 目录 标题 “目录”(三号、黑体、居中); 章标题(四号、黑体、居左); 节标题(小四、宋体); 页码 (小四、宋体); 二、三级目录分别缩近1和2个字; 四级目录不在“目录”中体现,在正文中也不是单独一行,可以黑体(没有句号),然后空2个字接正文; 注意:正文中每章开头要另起一页; “目录”下方中间的页码和摘要一样统一用罗马字,顺接摘要的。 摘要 目录加页眉 5. 论文正文 页眉: 论文题目(居中、小五、黑体); 章标题(三号、黑体、居中); 节标题(四号、黑体、居左); 正文 程序用“Times New Roman”,字号小四; 6. 参考文献 标题:“参考文献”(小四、黑体、居中) 参考文献的著录,按文稿中引用顺序排列,并注意在文内相应位置用上标标注,如:……的函数。 示例如下:(字体为五号、宋体) 期刊类:[序号]作者1,作者2,……作者n。文章名。期刊名(版本),出版年,卷次(期次)。页次 图书类:[序号]作者1,作者2,……作者n。书名。版本。出版地:出版者,出版年。页次 会议论文集:[序号]作者1,作者2,……作者n。论文集名。出版地:出版者,出版年。页次 网上资料:[序号]作者1,作者2,……作者n。文章名。网址。发表时间 7. 其它 量和单位的使用:必须符合国家标准规定,不得使用已废弃的单位(如高斯(G和Gg)、亩、克分子浓度(M)、当量能度(N)等)。量和单位不用中文名称,而用法定符号表示。 图表及公式:插图宽度一般不超过10cm,表名(小四)置上居中,图名(小四)置下居中。标目中物理量的符号用斜体,单位符号用正体,坐标标值线朝里。标值的数字尽量不超过3位数,或小数点以后不多于1个“0”。如用30Km代替30000m,用5µg代替0.005mg等,并与正文一致。图和表的编号从前至后顺序排列,图的编号及说明位于图的下方,居中;表的编号及说明位于表的上方,居中。公式编号加圆括号,居行尾。图表中的字体不应大于正文字体。注意:图表标题中的数字也是“Times New Roman”。 8.论文依次包括:封皮、内封、中文摘要、英文摘要、目录、正文、结论、致谢、参考文献、(附录),不要落项。 9.注意:上面没有说“加粗”的“黑体”,均为“黑体不加粗”。 补充: 1.答辩要求:自述15分钟,回答问题10分钟,自述要求使用PPT 答辩内容: 1).论文题目 2).设计内容 3).设计方案 4).如何完成设计 工作原理 软件或硬件设计 制作\调试\安装 5).存在不足,今后努力的方向 6).致谢 3.最后上交学生装订好的论文、光盘、记录表、成绩单 4.光盘里的文件夹命名为:学号_姓名_年级专业班级 文件夹里包括的文件有:论文、ppt、英文翻译 1) 论文的文件名格式:学号_姓名_年级专业班号_题目(论文)_完成日期doc 2) ppt的文件名格式:学号_姓名_年级专业班号_题目(ppt)_完成日期ppt 3) 英文翻译的文件名格式:学号_姓名_年级专业班号_题目(英文翻译)_完成日期doc 例如: 答辩问题5个, 侧重总体思路一个 软件或硬件一个 翻译一个 其他2个 模型(Model) 封装应用程序状态 响应状态查询 应用程序功能 通知视图改变 视图(View) 解释模型 模型更新请求 发送用户输入给控制器 允许控制器选择视图 控制器(Controller) 定义应用程序行为 用户动作映射成模型更新 选择响应的视图 状态查询 通知改变 方法调用 事件 视图选择 用户请求 状态改变 浏览器 控制器 (Filter) 视图 (JSP) 请求 响应 (Model) JavaBean 实例化 应用服务器 数据库 表示层 表示层 业务逻辑层 数据库层 表示层 业务逻辑层 持久化层 数据库层 三层结构 分离出持久化层 Configuration 配置Hibernate SessionFactory 初始化Hibernate Session 负责对象操作 Query 执行数据库查询 Criteria 执行数据库查询 Transaction 管理事务 创建 创建 执行 执行 执行 客户 (浏览器) 控制器 (Filter) 模型 (Action) 视图 (JSP) Result组件 (Result) struts-config.xml 分配 读取 转发 请求 响应 实例 数 据 库 Struts2s的ss DAOs Hibernate 映射文件 Spring 调用 操作 映射 首页 用户登录 用户注册 游客 普通用户 管理员 浏览二手信息 浏览信息留言 查看信息留言 搜索二手信息 管理个人信息 发布二手信息 管理信息留言 管理二手信息 管理个人信息 管理注册用户 购物车
/
本文档为【基于SSH的校园二手书交易平台的设计与实现毕业论文】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索