还剩34页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
摘要本论文主要阐述“百度搜索引擎”下的“百度知道”系统的设计思想和实现的关键技术论文针对互联网使用人员共享知识解决提问的需求,采用面向对象设计的方法和JSP,Struts等技术,分析、设计并实现了百度知道系统该系统具有用户登录、注册,发布、回答、查询以及处理问题等功能,测试表明该系统达到了预期的要求论文包括以下几个部分第一部分系统分析,通过对用户需求的分析说明了****************************************第二部分概要设计,设计了********,****************************************第三部分详细设计,设计了****************************************第四部分系统实现,通过******完成了******系统的***模块达到************关键字JSPStruts搜索引擎(注本文仅供参考,本文中出现的内容,不允许复制)AbstractThethesisisdesignofSystemthataboutBaiduKnowSystemofBaiduSearch-engine.Ontheotherhanditexpoundsthepartofdesignofmodelandkeytechnologyofimplementation.WiththerequirementofthepersonwhousesInternettoshareknowledgeandtoresolveproblems,itadoptsOOPObjectOrientedProgrammingandJSPStrutstechnologytoanalyzedesignandimplementsthissystem.Thesystemincludesthefunctionsthatregisterandquestionanswerselectandhandlethequestionofuser.Thetestofwholesystemshowsthatithascomeuptheexpectation.Thethesismainlyincludesthefollowingparts:
1.SourceoftheProblem.
2.RequirementandAnalysis.
3.SystemDesign.
4.DetailedDesign.
5.SystemImplementation.ThesystemisWEBdevelopmentapplicationandisbasedonB/Smodel.SothatIchosethepopularWEBdevelopmenttechnologywhichisbasedonMVCdevelopmentmodelthatisJavaBean、JSP、ServletandIalsousedStrutsFrameworkforthisapplication.ThedevelopmenttoolsaremainlyincludedDreamweaver8,Eclipse
3.
2、MyEclipse
5.
1.JUDEismyUMLtool.ThedatabaseforserverisSQLserver
2000.Thedevelopmentofapplicationincludesthreepart:thedatabasesofdesign、thedesignofwebpagesandthecodingwork.AllcodingofpagesmainlyusedtheJSPandStrutstags.Forcodingpartiscompletelybaseonstrutsframework.Keywords:JSPStrutsSearchengine目录(注意行间距25)TOC\o1-3\h\z\u第一章系统分析
11.1问题来源
11.2选题背景
21.
2.1问题定义
21.
2.2选题意义
21.3系统功能分析
31.4数据流图4第二章基础理论知识
62.1MVC模式概述
62.2MVC如何工作
72.3Struts概述8第三章概要设计
93.1系统概述
93.2功能分析
93.3数据库分析
113.
3.1实体的分析
113.
3.2实体的属性
113.
3.3实体之间的联系
123.4数据库的概念设计
133.5数据库的逻辑结构设计
143.6数据库的物理设计16第四章详细设计
184.1数据库连接模块的创建
194.2用户模块的详细设计
204.3问题模块的详细设计
214.
3.1百度知道的主要功能设计
214.
3.2百度知道的页面及主要核心算法设计
224.4开发工具及环境24第五章系统实现
265.1用户模块的实现
265.2问题模块的实现27结束语30参考文献31第一章系统分析
1.1问题来源百度,2000年1月创立于北京中关村,是全球最大的中文网站、最大的中文搜索引擎百度每天响应来自138个国家超过数亿次的搜索请求用户可以通过百度主页,在瞬间找到相关的搜索结果,这些结果来自于百度超过十数亿的中文网页数据库同时,用户不必访问百度主页,也可以搜索信息超过20万个搜索联盟会员,通过各种方式将百度搜索结合到自己的网站,使用户在上网的任何时候都能进行百度搜索百度还提供WAP与PDA搜索服务,即使身边没有PC机,用户也可以通过手机或掌上电脑等无线平台进行百度搜索百度知道(http://zhidao.baidu.com)是一个基于搜索的互动式知识问答分享平台,于2005年6月21日发布,并于2005年11月8日转为正式版和大家习惯使用的搜索服务有所不同,“百度知道”并非是直接查询那些已经存在于互联网上的内容,而是用户自己根据具体需求有针对性地提出问题,通过积分奖励机制发动其他用户,来创造该问题的答案同时,这些问题的答案又会进一步作为搜索结果,提供给其他有类似疑问的用户,达到分享知识的效果百度知道的最大特点,就在于和搜索引擎的完美结合,让用户所拥有的隐性知识转化成显性知识,用户既是百度知道内容的使用者,同时又是百度知道的创造者,在这里累积的知识数据可以反映到搜索结果中通过用户和搜索引擎的相互作用,实现搜索引擎的社区化百度知道可以说是对过分依靠技术的搜索引擎的一种人性化完善
1.2选题背景
1.
2.1问题定义之所以搜索引擎这么火,大家这么依赖,是因为技术的进步,搜索引擎技术的进步非常的快技术进步快,实际上是需求在推动搜索最近两年来变得这么火,实际上是需求在推动搜索技术和产业推动宽带越来越普及,上网越来越容易,上网的人越来越多,信息量越来越大现在已经是非常繁荣的大路,这里面的内容很多很多,搜索一下初中的初恋情人,可能也会查找他的名字“用户提出任何一个问题,很快就会有人帮助回答,通过投票选出的最佳答案,往往又作为搜索结果被分享到更多用户”,这一简单、便捷的模式受到了网民的热烈欢迎,同时也改变着网民的日常生活习惯网友表示,“生活上一遇到解决不了的问题,我第一个想到的就是上百度知道”,目前,百度知道每天解决超过5万个问题,也就意味着,通过用户的互动参与,两天时间即可编辑完成一本《十万个为什么》
1.
2.2选题意义众所周知,百度知道已经是一套开发过并且比较成熟完善的正在互联网上广泛使用的系统了,而之所以我选择这个系统作为我的毕业设计主要是因为现实中的该系统是由PHP语言开发的,而在大学期间的所学使我对于Java,JSP语言有了浓厚兴趣,一方面可以利用自己所学的知识实现一套正规的系统,更加锻炼自己和提高自己的技术水平,另外实用JSP语言版本开发与真实的系统实现方式不同也大大的增加我开发的兴趣所以我选择百度知道这个系统作为我的毕业设计
1.3系统功能分析要开发一个应用系统,首先要了解用户对整个系统的具体要求,确定系统应该实现的功能和系统应该具有的性能;设计应用软件时所使用的设计平台,所开发的应用软件的运行环境;通过调查分析去了解系统的业务流程,确定数据库设计中需要的数据结构;还要分析系统中的数据流和长期使用的数据存储等等,这些都是需求分析中应该完成的任务本章采用软件工程的方法对“百度知道”模块进行了需求分析“百度知道”是一个基于搜索的互动式知识问答分享平台它实现登录用户在线提问回答并解决问题共享知识的过程该平台的维护为自动维护,由定义规则进行数据的维护,默认不设网站管理员角色
1.用户角色普通用户(只有查询权限,无需登录)、信息发布用户(提问和回答问题的用户)
2.功能模块划分1问题信息查询(普通用户)1按照问题的栏目进行问题信息查询2按照问题的标题内容进行问题信息的查询3按照问题的状态(解决,待解决)来进行问题信息的查询4查询全部信息2问题信息的管理注册用户1提出问题2对自己提出的提问进行信息处理3回答待解决的问题4问题信息查询每一个模块的功能详见总体设计
1.4数据流图根据该系统问题的需求进行分析,使用数据流图示描述数据处理过程数据流图从数据传递和加工的角度,以图形的方式刻画数据流从输入到输出的传输变换过程数据流图是结构化系统分析的主要工具,它表示了系统内部信息的流向,并表现系统的逻辑处理功能(数据流图描述数据处理过程,起点和终点必须是人,用矩形表示;处理过程是动作,用圆角矩形表示;数据存储就是数据表,用开口矩形表示;请大家注意,参考软件工程书画图)图1-1用户模块的数据流图数据流图中的一些专业词汇在数据字典中解释如下(请注意数据字典是解释前面的数据流图中出现的容易产生歧义的词,没有数据流图只出现数据字典是毫无意义的在数据流图中没有的词出现在数据字典中也是毫无意义的)第二章基础理论知识百度知道系统的设计采用了JSP,Struts框架来实现,因此从采用了MVC结构模式进行开发整个开发的过程也是完全按照Struts框架结构进行的下面了解一下MVC开发模式和Struts框架技术
2.1MVC模式概述MVC本来是存在于Desktop程序中的,M是指数据模型,V是指用户界面,C则是控制器使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式比如一批统计数据你可以分别用柱状图、饼图来表示C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新模型-视图-控制器MVC是XeroxPARC在八十年代为编程语言Smalltalk-80发明的一种软件设计模式,至今已被广泛使用最近几年被推荐为Sun公司J2EE平台的设计模式,并且受到越来越多的使用ColdFusion和PHP的开发者的欢迎模型-视图-控制器模式是一个有用的工具箱,它有很多好处,但也有一些缺点MVC模式是“Model-View-Controller”的缩写,中文翻译为“模式-视图-控制器”MVC应用程序总是由这三个部分组成Event事件导致Controller改变Model或View,或者同时改变两者只要Controller改变了Models的数据或者属性,所有依赖的View都会自动更新类似的,只要Controller改变了View,View会从潜在的Model中获取数据来刷新自己MVC模式最早是Smalltalk语言研究团提出的,应用于用户交互应用程序中Smalltalk语言和java语言有很多相似性都是面向对象语言,很自然的SUN在potstone宠物店事例应用程序中就推荐MVC模式作为开发Web应用的架构模式MVC模式是一种架构模式,其实需要其他模式协作完成在J2EE模式目录中,通常采用servicetoworker模式实现,而servicetoworker模式可由集中控制器模式,派遣器模式和PageHelper模式组成
2.2MVC如何工作MVC是一个设计模式,它强制性的使应用程序的输入、处理和输出分开使用MVC应用程序被分成三个核心部件模型、视图、控制器它们各自处理自己的任务
1.视图视图是用户看到并与之交互的界面对老式的Web应用程序来说,视图就是由HTML元素组成的界面,在新式的Web应用程序中,HTML依旧在视图中扮演着重要的角色,但一些新的技术已层出不穷,它们包括MacromediaFlash和类XHTML,XML/XSL,WML等一些标识语言和Webservices
2.模型模型表示企业数据和业务规则在MVC的三个部件中,模型拥有最多的处理任务例如它可能用像EJBs和ColdFusionComponents这样的构件对象来处理数据库被模型返回的数据是中立的,就是说模型与数据格式无关,这样一个模型能为多个视图提供数据由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性
3.控制器控制器接受用户的输入并调用模型和视图去完成用户的需求所以当单击Web页面中的超链接和发送HTML表单时,控制器本身不输出任何东西和做任何处理它只是接收请求并决定调用哪个模型构件去处理请求,然后用确定用哪个视图来显示模型处理返回的数据现在我们总结MVC的处理过程,首先控制器接收用户的请求,并决定应该调用哪个模型来进行处理,然后模型用业务逻辑来处理用户的请求并返回数据,最后控制器用相应的视图格式化模型返回的数据,并通过表示层呈现给用户
2.3Struts概述Struts最早是作为ApacheJakarta项目的组成部分问世运作项目的创立者希望通过对该项目的研究,改进和提高JavaServerPages、Servlet、标签库以及面向对象的技术水准Struts这个名字来源于在建筑和旧式飞机中使用的支持金属架它的目的是为了减少在运用MVC设计模型来开发Web应用的时间你仍然需要学习和应用该架构,不过它将可以完成其中一些繁重的工作除此之外,Struts的优点主要集中体现在两个方面Taglib和页面导航Taglib是Struts的标记库,灵活动用,能大大提高开发效率另外,就目前国内的JSP开发者而言,除了使用JSP自带的常用标记外,很少开发自己的标记,或许Struts是一个很好的起点Struts是MVC的一种实现,它将Servlet和JSP标记(属于J2EE规范)用作实现的一部分Struts继承了MVC的各项特性,并根据J2EE的特点,做了相应的变化与扩展第三章概要设计百度知道是一个基于搜索的互动式知识问答分享平台和大家习惯使用的搜索服务有所不同,“百度知道”并非是直接查询那些已经存在于互联网上的内容,而是用户自己根据具体需求有针对性地提出问题,通过积分奖励机制发动其他用户,来创造该问题的答案同时,这些问题的答案又会进一步作为搜索结果,提供给其他有类似疑问的用户,达到分享知识的效果
3.1系统概述该系统的最大特点,就在于和搜索引擎的完美结合,让用户所拥有的隐性知识转化成显性知识,用户既是本系统内容的使用者,同时又是该系统的创造者,在这里累积的知识数据可以反映到搜索结果中通过用户和搜索引擎的相互作用,实现搜索引擎的社区化
3.2功能分析下面我们着重介绍各个模块的具体功能以及设计要求根据需求分析,得到了本系统应该具有的功能,下面具体分析本系统的功能模块经过分析,“百度知道”大致分为两大模块六大功能即用户模块,用户处理问题模块两个模块的功能分别为
1.用户模块1用户注册2用户登录
2.用户处理问题模块1问题发布2问题查询3回答问题4解决问题系统的层次图如图3-1百度知道系统的层次图所示图3-1百度知道系统的层次图(注意层次图按照功能模块来划分)系统各功能部分说明如下
1.用户模块主要包括对用户的注册以及登录的功能
2.问题模块,主要包括以下几个功能的实现1问题发布已登录用户发布新的问题2问题回答其他用户对已存在问题的回答以及提问用户对自己问题的补充3解决提问提问用户将其他用户对于自己提出问题的某个回答设为最佳答案或者问题长时间未处理自动过期4查询问题注册用户登录或者游客用户访问系统时对问题的分类浏览以及对于单个问题的信息查询
3.3数据库分析
3.
3.1实体的分析根据百度知道的总体设计,我们定义了百度知道整个系统分为两大模块和六大功能由此我们可以首先确定百度知道的两大实体用户和问题,而由于用户可以根据提问来进行回答,所以问题答案也是实体因此该系统共有三个实体
1.用户实体
2.问题实体
3.问题答案实体
3.
3.2实体的属性百度知道系统涉及到的实体分别为用户实体,问题实体,问题答案实体根据系统需求,我们将以下实体的属性确定如下
1.用户实体,包含所有百度知道的注册用户信息,其详细的属性如下1客户编号2客户名称3客户密码4真实姓名5性别6身份证号7电子邮件8用户积分9用户权限
2.问题实体,包含所有用户提出的问题的信息,其详细的属性如下1问题编号2问题标题3问题内容4提问者ID5所在栏目号6问题状态7奖赏分数8回答次数9发布时间
3.问题答案实体,包含所有问题回答的属性,其详细的属性如下1回答编号2问题编号3回答标题4回答内容5回答状态6回答者编号
3.
3.3实体之间的联系通过对百度知道系统中所需实体以及属性的分析,我们已经对于百度知道的数据模型有了一定的了解,由此我们可以确定三大实体之间的联系
1.每一位注册用户都可以提出若干问题,发布问题信息但是每个问题只能由一个用户提出,即只能和一个用户关联
2.每个用户都可以对某一问题发表若干回答但是每一项回答只能由一个用户发表,即只能和一个用户关联
3.每个问题都会有零到多个回答,每个回答也可以发表到不同的问题上去即多个问题有多个回答
3.4数据库的概念设计通常使用实体-联系图来建立数据模型可以把实体-联系图简称为ER图,相应的可把用ER图描绘的数据模型称为ER模型百度知道的实体-联系图如图3-2百度知道的ER图所示(注意ER图描绘的是数据之间的关系,矩形代表实体;圆角矩形或椭圆代表属性;菱形代表实体和实体之间的关系;在实体关系的实线上要标出数字代表对应关系,11或1N或M N)图3-2百度知道的ER图
3.5数据库的逻辑结构设计表3-1用户表作用保存客户的信息名称User_Info序号英文字段名中文字段名数据类型长度是否关键字备注1User_ID用户编号int主键自动编号2User_Name用户名称varchar303User_PWD用户密码varchar304User_RealName真实姓名varchar305User_Sex性别int0男1女6User_IDCard身份证号varchar187User_Email电子邮件varchar508User_Score用户积分int9User_Limit用户权限int0管理员1普通用户表3-2问题表作用保存客户提出的问题名称Question_Info序号英文字段名中文字段名数据类型长度是否关键字备注1Ques_ID问题编号int10主键自动编号2Ques_Title问题标题varchar1003Ques_Context问题内容varchar20004User_ID提问者IDint外键5Item_ID所在栏目号int外键0男1女6Ques_Status问题状态int10最佳1待解决2已解决7Ques_Score奖赏分数int8Ques_Count回答次数int9Ques_date发布时间Date表3-3回答表作用保存问题答案名称Result_Info序号英文字段名中文字段名数据类型长度是否关键字备注1Res_ID回答编号int主键自动编号2Ques_ID问题编号int外键3Res_Title回答标题varchar1004Res_Date回答时间Date5Res_Context回答内容varchar20006Res_Status回答状态int1最佳0普通7User_ID回答者编号int表3-4栏目表作用显示栏目名称Item_Info序号英文字段名中文字段名数据类型长度是否关键字备注1Item_ID栏目编号int主键自动编号2Item_Name栏目名称varchar
2003.6数据库的物理设计
1.创建用户表createtableUser_Info--用户表保存客户的信息User_IDintprimarykeyidentity11--客户编号User_Namevarchar30--客户名称User_PWDvarchar30--客户密码User_RealNamevarchar30--真实姓名User_Sexint--性别User_IDCardvarchar18--身份证号User_Emailvarchar50--电子邮件User_Scoreint--用户积分User_Limitint--用户权限
2.创建问题表createtableQuestion_Info--问题表保存客户提出的问题Ques_IDintprimarykeyidentity11--问题编号Ques_Titlevarchar30--问题标题Ques_Contextvarchar2000--问题内容User_IDintreferencesUser_Info--提问者IDItem_IDintreferencesItem_Info--所在栏目号Ques_Statusint--问题状态Ques_Scoreint--奖赏分数Ques_Datedatetime--发布时间Ques_Countint--回复数
3.创建回答表createtableResult_Info--回答表保存问题答案Res_IDintprimarykeyidentity11--答案编号Ques_IDintreferencesQuestion_Info--问题编号Res_Titlevarchar200--答案标题Res_Contextvarchar2000--答案内容Res_Datedatetime--答题时间Res_Statusint--答案状态User_IDintreferencesUser_Info--答题者编号
4.创建栏目表createtableItem_Info--栏目表显示栏目Item_IDintprimarykeyidentity11--栏目编号Item_Namevarchar200--栏目名称Item_Typeint--栏目种类第四章详细设计通过系统分析和概要设计,对百度知道系统已经有了一个比较详细的了解整个系统的设计完全依据基于Struts框架的MVC开发模式完成其中包结构也是按照MVC模式进行分层整体开发分五个包分别是action,dao,form,util,model其中Action可以看作Servlet控制层,Dao是数据库连接持久化层,form则是JavaBean与Model模式层的实体类共同构成视图层,Util是通用工具包(注意类图代表各个类之间的关系,可以用现有工具画,但是一定要清晰)图4-1百度知道的类图整个视图层主要是由jsp页面来完成,而为了更好的实现的百度知道的页面效果,本系统采用了Struts框架中的Tiles页面框架标签来设计页面将主体页面拆分成上中下三部分整个视图层主要包括一下几个jsp页面文件
1.addquestion.jsp提问页面的主体页面
2.addquesstioncontent.jsp发布问题的主题页面
3.answer.jsp回答问题框架页面
4.answercontent.jsp回答问题的主题页面
5.footer.jspTiles框架
6.header.jspTiles框架页面的头框架页面
7.indexcontent.jsp主页的主体页面
8.layout.jspTiles页面框架布局设置
9.login.jsp登录页面
10.main.jsp主框架页面
11.questionlist.jsp问题列表框架页面
12.questionlistcontent.jsp问题列表主页主体页面
13.register.jsp注册页面
14.result.jsp发布问题后框架页面
15.resultcontent.jsp发布问题后主体页面
16.staticJavascript.jsp静态JavaScript加载页面
4.1数据库连接模块的创建由于本系统是基于Struts结构开发而成,Struts
1.1框架中集成了数据源配置和管理功能即在Struts框架下的struts_config.xml文件中配置data-source标签来定义和配置数据源,使得启动Tomcat服务器的同时便由容器加载数据源以方便使用当然,获得数据源之后的数据库操作的管理是用数据库连接对象DAO开发模式完成在项目下的dao包里包含着数据库连接操作的实现由于本模块是数据库连接以及持久化层操作模块所以不包含任何关联页面本模块所包含的类如下
1.DAO类数据库连接对象的父类,包含操作数据库的公共方法和获取数据源的方法
2.IndexDao类继承了Dao父类,包含了主页index类显示问题列表的所有数据库查询操作方法
3.UserDao类继承了Dao父类,包含了对于用户的注册,存在判断,查询用户信息等方法
4.QuestionDao类继承了Dao父类,包含了对于问题以及问题回答等增删改查操作的方法
4.2用户模块的详细设计用户模块主要包括用户注册以及用户查询等功能,主要包括register.jsp,login.jsp本模块主要包括UserDao类,UserAction类的设计以及Model包中User类的设计而本模块主要包含的是用户注册和登录的功能
1.用户注册的过程1用户在注册页面输入数据2首先在页面用JavaScript对用户输入数据格式和有效性进行检查3判断用户名是否存在4向用户表插入用户信息5全部正常,跳转到用户登录页面
2.用户登录的过程1用户在登录页面输入登录信息2在页面用JavaScript对用户输入数据格式和有效性进行检查3在数据库中判断是否存在某一列满足用户名和密码为用户输入的数据,存在则通过4将用户基本信息保存在session对象中5全部正常,跳转到百度知道首页
4.3问题模块的详细设计问题模块是百度知道系统的核心模块,在这一模块中包含了百度知道系统的主要运行逻辑和所有的问题及搜索相关功能主要设计的页面有主页问题列表显示页、问题发布页、问题查询页、问题回答页、问题补充及处理页面本模块主要设计的功能也就是发布,查询,回答,处理问题的四个功能
4.
3.1百度知道的主要功能设计百度知道系统实现的主要功能设计要点如下
1.主页问题列表显示1问题状态1待解决问题10个2问题状态2已解决问题5个3问题状态10最佳问题5个
2.用户发布问题1首先只有注册用户才能发布问题2发布问题必须有标题3发布问题必须设置问题的悬赏分数
3.用户回答问题1首先只有注册的用户才能回答问题2非注册问题只可以浏览问题3回答问题至少要有回答标题4回答问题用户必须是非提问用户
4.用户查询问题1查询问题的用户可以是游客用户也可以是注册用户2查询问题按照关键字进行问题检索,检索结果为问题列表3查询问题的功能在百度知道主页实现
5.补充及处理问题1补充和处理问题的用户必须是提问用户2提问用户必须登录才能提问3补充及处理问题不能超过问题未处理时限4用户设为最佳答案以后即将奖赏分数加给最佳答案用户5一切正常,结束问题
4.
3.2百度知道的页面及主要核心算法设计
1.answercontent.jsp问题浏览及回答页面回答问题也就是问题浏览页面是问题模块的核心部分,也是算法集中的部分其中在本页面有几个关键的标签属性完成了本算法的逻辑判断1logic:equal逻辑相等判断2logic:empty逻辑为空判断3logic:notempty逻辑不为空判断4logic:iterate逻辑迭代判断本算法主要涉及到的几个标志性对象为1FLAG1用户是否为提问用户判断标签2FLAG2问题是否解决判断标签3QUESTION问题信息实体对象4ANSWERLIST回答列表5USER登录用户的用户信息实体对象6pagerHeader分页标签条,由Util包下的Pager类生成7ANSWERSIZE回答列表的大小,用来统计回答数
2.问题浏览及回答页面整个算法的流程1判断FLAG2的值true则显示待解决,false则显示已解决2QUESTION对象里取出问题标题,悬赏分,提问者并在页面上显示出来3ANSWERLIST中取出回答列表显示答案信息4根据ANSWERLIST中答案状态如果为1则显示最佳答案信息,并显示其他回答标签5如果答案状态为0则将显示回答标签并且显示回答信息6根据回答列表进行分页,显示pageHeader分页条7判断FLAG1和FLAG2标签如果同时为true则显示采纳为答案标签8如果FLAG2为true且USER对象非空,则显示我也来回答标签9每种问题处理后显示回答列表的统计数目
3.Pager分页类算法的设计分页算法是WEB页面设计中最常用的算法之一,Pager类中本算法的属性如下1offset分页截取开始的位置2size所有数据列表的大小3length每页显示的数据项4url进行分页请求的路径5pref参数标志,或者6totalpage总页数7currentpage当前页分页条生成的算法如下1如果当前url存在则说明至少一个参数,需要将pref改为2设置header的初始形式,字体,表单,表格等3根据size和length计算总页数totalpage,如果可以整除totalpage等于size除以length,否则等于size除以length加14根据offset和length计算当前页currentpage等于offset/length+15追加header字符串加上首页和尾页标签6追加header字符串加上下拉列表框页面翻转条实现页面选择跳转
4.4开发工具及环境操作系统WinXP、Win2000编程语言Java、JSP、Html、Css、JavaScript数据库系统SQLServer2000开发工具Eclipse
3.2+MyEclipse
5.
1、reamweaver8应用框架Struts
1.1服务器运行环境Tomcat
5.5第五章系统实现系统的实现就是系统的完成部分,这一部分的主要是按照详细设计进行代码开发以实现系统的功能百度知道的模块主要分成用户和问题两大模块这一部分主要是列出了六个实现的页面,来显示系统的六大功能
5.1用户模块的实现
1.用户登录页面图5-1用户登录页面
2.用户注册页面图5-2用户注册页面
5.2问题模块的实现
1.百度知道主页图5-3百度知道主页
2.问题发布页面图5-4问题发布页
3.问题查询页面图5-5用户查询页
4.回答,补充处理问题页面图5-6问题浏览处理页结束语通过毕业设计使我更加熟练地使用JSP,更进步一部的学习了Java语言,并且对数据库的学习有了更进一步的提高同时也在设计过程中体会到了开发小组同学们那种积极上进的精神,及指导老师的耐心指导感谢校方的支持和老师的有益帮助特别是我的指导教师*****在我开发程序及毕业论文的整个过程中给予我很大帮助,我从她的身上学到了很多东西她那认真负责的工作态度和深厚的理论知识水平都使我获益匪浅她无论在理论上还是在实践中,都给予我很大的帮助,使我得到不少的提高,这对于我以后的工作和学习都有着巨大的帮助在此表示衷心的感激!参考文献
[1]SUNMICROSYSTEMS.TheJavaTutorial[M/OL].http://java.sun.com/dodcs/tutorial/index.html
[2]EricJBraude.SoftwareEngineering-AnObject-OrientedPerspective[M].NewYork:JohnWileySons2001
[3]埃克尔美著,陈昊鹏译.Java编程思想.第4版.机械工业出版社,2007
[4]孙卫琴.精通Struts基于MVC的JavaWeb设计与开发.第1版.电子工业出版社,2004
[5]耿祥义.Java大学实用教程.第1版.电子工业出版社,2005
[6]福勒美著,徐家福译.UML精粹标准对象建模语言简明指南.第3版.清华大学出版社,2005
[7]戴特美著,熊建国译.深度探索关系数据库:实践者的关系理论.第1版.电子工业出版社,2007
[8]耿祥义,张跃平.JSP实用教程.第2版.清华大学出版社,2007
[9]内格里诺美,史密斯美 著,陈剑瓯 等译.JavaScript基础教程.第6版.人民邮电出版社,2007结果信息用户信息注册请求游客用户1接收请求用户表D1游客用户查询信息问题信息登录请求回答显示主页修改信息注册用户问题表D2提问显示问题问题列表回答问题注册用户问题表D2回答表D3注册用户结果结果修改信息问题编号提问请求图1-2问题模块的数据流图回答表D3显示问题列表指定问题回答列表结果结果名字问题列表别名描述问题列表=所有问题的分类统计列表,待解决10个,已解决和最佳问题各5个定义待解决问题+以解决问题+最佳问题位置百度知道首页名字回答列表别名描述针对某一问题的所有回答定义回答列表=回答编号+回答内容+回答者编号+问题编号+回答状态位置问题页面名字问题编号别名问题ID描述唯一标识问题的字段定义问题编号={数字}位置问题表百度知道系统用户模块用户操作问题模块用户登录用户注册问题发布回答问题解决问题查询问题1N1用户问题回答编号真名密码昵称邮件身份证性别积分权限提问属于N编号内容提问者编号时间标题悬赏分数栏目号回答数标题编号时间问题编号状态回答者编号内容问题状态发表N1。