JAVA新闻发布系统论文
说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。
第I页 摘要 随着计算机科学的发展,互联网时代的到来,人们对信息交流的要求不再是仅限于传统的书信形式的往来,21世纪是信息时代,是以互联网为代表的信息技术蓬勃发展的时代。数据库技术在Internet中的应用越来越广泛,为广大网络用户提供了更加周到和人性化的服务。个性化已逐渐成为当今Web应用的潮流。利用JSP技术开发的网站新闻管理系统,实现了网站新闻的动态管理,因为可以用来动态发布新闻信息,所以使得对信息的管理更加及时、高效,提高了工作效率。 本文主要介绍利用JSP + Tomcat + SQL开发环境开发动态的Web新闻发布系统,给出了详细的系统设计、编码、调试过程,可实现在网络上多用户操作,不同的用户拥有不同级别的权限,可以实现在线用户登录、用户信息修改;动态的浏览、添加、修改、删除新闻。在JSP代码编写的过程也用到了许多技巧,比如SESSION对象的使用、禁止右键、CSS样式表、FLASH对象的使用、浏览器状态栏的特效等等。界面操作简单,满足日常上网人员信息交流需要,并达到操作过程中的直观、方便、实用、安全等要求。本系统后台采用SQL Server 2000开发和管理数据库,它功能强大、直观易于操作、建立表方便,具有强大的错误处理功能;语言用JAVA开发和管理用户界面,具有开发效率高,易于维护等特点,并且信息完善,界面友好。通过各方面的论证,该系统具有一定的市场实用价值,具有一定的开发潜力。 关键词:Struts组建编程模型;JSP;ActionForm;数据库 第II页 News Release System Abstract With the development of computer science, the Internet era, people's requirements of the exchange of information is no longer limited to traditional forms of exchanges of correspondence, is the 21st century information age, is represented by the Internet boom of the information technology era. Database technology application in the Internet more and more widely, for the vast number of network users with a more thoughtful and human services. Personalization has become the trend of today's Web applications. The use of JSP technology news site management system, to achieve the dynamic management of the news site, because the dynamics can be used to publish news and information, it makes the management of information more timely, efficient, improve the work efficiency. In this paper, using JSP + Tomcat + SQL development environment to develop dynamic Web press release systems, gives a detailed system design, coding, debugging process can be realized in multi-user operation of the network, different users have different levels of authority, Online users can log in, modify user information; dynamic browse, add, modify or delete information. JSP code in the process used to prepare a number of techniques, such as the use of SESSION object, the prohibition of right-, CSS stylesheets, FLASH object use, the browser status bar, etc. effects. Interface is easy to access staff to meet the day-to-day information exchange needs and to achieve the intuitive operation, convenient, practical, and security requirements. The background of the system using SQL Server 2000 database development and management, it is powerful, intuitive and easy to operate, facilitate the establishment of form and a powerful error-handling capabilities; language with JAVA development and management of user interface, with the development of high efficiency, easy maintenance, etc., and perfect information, user-friendly. Through all aspects of the demonstration, the system has a certain practical value of the market has a certain potential for development. Key Words:Struts;JSP;ActionForm;database 第III页 目 录 1 绪论 ...................................................................................................................................... 1 1.1开发背景 .......................................................................................................................... 1 1.2设计目的 .......................................................................................................................... 1 1.3 开发工具简介 ................................................................................................................. 2 1.4 相关技术知识简介 ......................................................................................................... 3 2 可行性分析 ........................................................................................................................ 6 2.1经济可行性分析 .............................................................................................................. 6 2.2技术可行性分析 .............................................................................................................. 6 2.3操作可行性分析 .............................................................................................................. 6 2.4法律可行性分析 .............................................................................................................. 6 2.5可行性研究结论 .............................................................................................................. 7 3 需求分析 ............................................................................................................................ 8 3.1系统功能模块设计 .......................................................................................................... 8 3.2数据库要求 .................................................................................................................... 10 3.3开发环境要求 ................................................................................................................ 11 3.4 数据字典 ....................................................................................................................... 13 3.5实体E-R图 ................................................................................................................... 16 3.6数据流图 ........................................................................................................................ 15 4 总体设计 .......................................................................................................................... 19 4.1 数据库设计 ................................................................................................................... 19 4.2 模块设计 ....................................................................................................................... 20 4.2.1链接管理 ................................................................................................................. 22 4.2.2管理员管理 ............................................................................................................. 22 4.2.3新闻类型管理 ......................................................................................................... 23 4.2.4新闻详细类型管理 ................................................................................................. 23 4.2.5新闻信息管理 ......................................................................................................... 23 4.2.6新闻人物管理 ......................................................................................................... 23 5 详细设计 .......................................................................................................................... 24 5.1 用户登录界面设计 ....................................................................................................... 24 5.1.1网站前台 ................................................................................................................. 24 5.1.2网站后台 ................................................................................................................. 25 5.2 后台登录模块设计 ....................................................................................................... 26 第IV页 5.2.1后台登陆 ................................................................................................................. 26 5.2.2后台登陆流程图 ..................................................................................................... 27 5.3 链接管理 ....................................................................................................................... 27 5.3.1友情链接及其添加 ................................................................................................. 28 5.3.2链接管理流程图 ..................................................................................................... 29 5.4 管理员管理 ................................................................................................................... 29 5.4.1管理员注册和信息查看 ......................................................................................... 30 5.4.2管理员管理流程图 ................................................................................................. 31 5.5 新闻详细类型管理 ....................................................................................................... 31 5.5.1新闻详细类别信息及其添加 ................................................................................. 31 5.5.2添加新闻详细类别信息流程图 ............................................................................. 33 5.6 新闻信息管理 ............................................................................................................... 33 5.6.1新闻的添加 ............................................................................................................. 33 5.6.2新闻信息管理流程图 ............................................................................................. 35 5.7 新闻人物管理 ............................................................................................................... 36 5.7.1新闻人物信息查看和修改 ..................................................................................... 36 5.7.2新闻人物添加和修改流程图 ................................................................................. 38 6 系统调试与测试 ............................................................................................................ 39 6.1 系统调试 ....................................................................................................................... 39 6.2 系统测试 ....................................................................................................................... 39 结 论 ...................................................................................................................................... 42 致 谢 ...................................................................................................................................... 44 参考文献 ............................................................................................................................... 45 附录A 数据表 ........................................................................................................................ 46 附录B中英文翻译 ................................................................................................................. 49 英文部分 .......................................................................................................................... 49 中文部分 .......................................................................................................................... 53 第1页 1 绪论 1.1开发背景 Internet的蓬勃发展,使新闻的传播方式发生了巨大的变化,传统的信息传播媒体电视、广播、报纸已经不再是人们茶余饭后的主要精神甜点,人们更多的开始关注网络新闻。由于互联网所容纳的信息量大、内容丰富、信息及时、准确,更有相关信息的全面的介绍与比较,大大地方便了人们的阅读,因此在短短几年的时间里,互联网便济身于众多媒体之间,并具有相当一部分媒体人群。借此东风,新闻网也迅速发展起来,它内容丰富,涉及到商业、工业、农业、银行、财政、教育、娱乐、信息等各个产业,信息量大,不仅有实事新闻,还有相关的行业信息,同时新闻网具有互联网所具备的一切特性。在全球网络化、信息化的今天,新闻网迅速发展,大大地丰富了人们的生活,不知不觉中,它已经成为人们生活中不可或缺的重要组成部分。 随着Internet的普及,网页逐渐融入人们的生活,快速及时地浏览新闻,获取五彩缤纷的网上信息,已成为人们日常生活的一部分,与此同时越来越多的企业建立了自己的WWW网站,企业通过网站可以展示产品,发布最新动态,与用户进行交流和沟通,与合作伙伴建立联系,以及开展电子商务等。其中新闻管理系统是构成企业网站的一个重要组成部分,它担负着双层作用,一方面可以用来动态发布有关新产品或新开发项目,另一方面又可以及时向顾客公告企业经营业绩、技术与研发进展、特别推荐或优惠的工程项目、产品和服务,从而吸引顾客,扩大顾客群[1]。传统的网站新闻管理方式有两种,一是静态HTML页面,更新信息时需要重新制作页面然后上传页面并修改相应链接,然而随着Internet的进一步发展,这种静态Web站点的开发与维护变得越来越困难,而且不能与浏览者进行有效交互,从而使得这种方法已不多用。二是基于ASP、PHP或者JSP和脚本语言,将动态网页和数据库结合,通过应用程序来处理信息,这是目前较为流行的做法。 1.2设计目的 随着信息时代的高速发展,传统的报纸杂志已经远远满足不了人们的需求,人们更加希望于能够在网上了解更多的新闻和信息,于是我们就很有必要在网上创建一个新闻发布管理信息系统了。大部分网站都是采用静态的方式来发布和管理信息的,可是网站需要更新的信息量也越来越大,所以这很不利于网站管理人员的工作。为了更加方便的 第2页 管理网站,于是我们就很迫切的需要利用动态技术创建一个新闻发布管理信息系统了。 针对现在我们的上网环境,在线发布新闻、动态生成新闻网页、为新闻添加搜索查找功能是必不可少的。本系统采用E作为开发工具,后台数据库采用SQL数据库的设计,利用JDBC数据访问技术实现对数据库的各种管理操作,实现新闻发布系统的供浏览和新闻搜索功能。本系统的设计主要是解决上网人群交流的信息化、智能化、便捷化,提高了网络交流的自由度,网站的发展是一个必然的过程,全球化的传播,也是一个能够给人们带来更多信息的社会。互动的网络社会突破了地域之间人们的阻碍,它给人们带来了更多的机会和把握未来的机遇。这个开放的世界更加注重个性化的人们,追求多样文化精神创造性,也将人们的注意力吸引到全球化的背景中来。网站将要占据更重要的发展生机。它也是决定互联网走向全球化重要因素。成熟的网站应用会带动相关政治、经济、文化发展,会给互联网未来带来更多的发展生机。 1.3 开发工具简介 本系统是由: My eclipse + Tomcat6.0 + SQL Server 2000为平台。页面开发工具应用了Dreamweaver 8。 My eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。它可以加快程序的开发,用于编写JSP、JavaBean代码,具有强大的功能,它的可扩展功能可以有效的支持J2EE以及Web开发。对于工程的部署有很大的优势所在。 Tomcat是一个免费的开源的Serlvet容器,它是Apache基金会的Jakarta项目中的一个核心项目,由Apache,Sun和其它一些公司及个人共同开发而成。由于有了Sun的参与和支持,最新的Servlet和Jsp规范总能在Tomcat中得到体现。Tomcat不仅仅是一个Servlet容器,它也具有传统的Web服务器的功能:基于Tomcat的开发主要是JSP和Servlet的开发,开发JSP和Servlet非常简单。 SQL Server是微软公司开发的一个关系数据库管理系统,以Transact_SQL作为它的数据库查询和编程语言。T-SQL是结构化查询语言SQL的一种,支持ANSI SQL-92标准。SQL Server 采用二级安全验证、登录验证及数据库用户帐号和角色的许可验证。 SQL Server有以下等特点:上手容易;兼容性良好能;电子商务;数据仓库;增强的在线商务;利于构筑"敏捷性商务"。 第3页 Dreamweaver是美国Macromedia公司开发的集网页制作和管理网站于一身的所见即所得网页编辑器,它是第一套针对专业网页设计师特别发展的视觉化网页开发工具,利用它可以轻而易举地制作出跨越平台限制和跨越浏览器限制的充满动感的网页。 Dreamweaver是Macromedia公司继Flash以后向互联网(Internet)推出的又一梦幻工具。其优点就是直观性,使用方便,容易上手,您在所见即所得网页编辑器进行网页制作和在Word中进行文本编辑不会感到有什么区别。 Dreamweaver是唯一提供Roundtrip Html、视觉化编辑与原始码编辑同步的设计工具。它包含HomeSite和BBEdit等主流文字编辑器等工具。 1.4 相关技术知识简介 JSP(Java Server Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准,其网址为忽略://忽略此处.javasoft.com/products/jsp。该技术为创建显示动态生成内容的Web页面提供了一个简捷而快速的方法。JSP技术的设计目的是使得构造基于Web的应用程序更加容易和快捷。 JSP规范是Web服务器、应用服务器、交易系统、以及开发工具供应商间广泛合作的结果。JSP技术在多个方面加速了动态Web页面的开发: (1)将内容的生成和显示进行分离 使用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面。这有助于作者保护自己的代码,而又保证任何基于HTML的Web浏览器的完全可用性。 (2)强调可重用的组件 绝大多数JSP页面依赖于可重用的,跨平台的组件(JavaBeans或者Enterprise JavaBeansTM组件)来执行应用程序所要求的更为复杂的处理。开发人员能够共享和交换执行普通操作的组件,或者使得这些组件为更多的使用者或者客户团体所使用。 (3)采用标识简化页面开发 Web页面开发人员不会都是熟悉脚本语言的编程人员。Java Server Page技术封装了许多功能,这些功能是在易用的、与JSP相关的XML标识中进行动态内容生成所需要的。随着越来越多的供应商将JSP支持添加到他们的产品中,您可以使用自己所选择的服务器和工具,更改工具或服务器并不影响当前的应用。当与Java 2平台,企业版(J2EE) 第4页 和Enterprise JavaBean技术整合时,JSP页面将提供企业级的扩展性和性能,这对于在虚拟企业中部署基于Web的应用是必需的。 ASP和JSP 技术比较 ASP(Active Server Pages)微软的Windows IIS系统自带的脚本语言,利用它可以执行动态的Web服务应用程序。ASP的语法非常类似Visual Basic,学过VB的人可以很快上手,ASP也是这几种脚本语言中最简单易学的开发语言。但ASP也是这几种语言中唯一的一个不能很好支持跨平台的语言。 因为ASP脚本语言非常简单,因此其代码也简单易懂,结合Html代码,可快速地完成网站的应用程序。ASP在国内异常流行,因为国内大多使用的是盗版的Windows和盗版的SQL Server,而ASP+COM+SQL Server实际上也是一种不错的搭配,其性能也不输于PHP+MYSQL,特别是Windows系统和SQL Server都有图形界面,比APACHE和MYSQL易于维护,因此对于不重视知识产权的国家来说也是一种不错的选择。不过,正因为ASP很简单,所以单纯使用ASP所能完成的功能也是有限的,好在COM(Component Object Model)技术拯救了ASP,微软提供了COM/DCOM技术,极大拓宽了ASP的应用范围,使得ASP几乎具有无限可扩充性[3]。 JSP(Java Server Pages)是Sun公司推出的一种动态网页技术。JSP技术是以Java语言作为脚本语言的,熟悉Java语言的人可以很快上手。JSP本身虽然也是脚本语言,但是却和ASP有着本质的区别。ASP都是由语言引擎解释执行程序代码,而JSP代码却被编译成Servlet并由Java虚拟机执行,这种编译操作仅在对JSP页面的第一次请求时发生。因此普遍认为JSP的执行效率比ASP都高。JSP是一种服务器端的脚本语言,最大的好处就是开发效率较高,JSP可以使用JavaBeans或者EJB(Enterprise JavaBeans)来执行应用程序所要求的更为复杂的处理,但是这种网站架构因为其业务规则代码与页面代码混为一团,不利于维护,因此并不适应大型应用的要求,取而代之的是基于MVC的Web架构。所以不少国外的大型企业系统和商务系统都使用以上的MVC架构,能够支持高度复杂的基于Web的大型应用。 综上所诉JSP对于网站开发来讲不像ASP那样易学易用,支持Java的主机也少于支持PHP的主机,这从一定程度上限制了Java技术在网站上的发展,不过在企业软件应用上来讲,MVC还是拥有相当大的优势的,虽然其配置和部署相对其他脚本语言来 第5页 说要复杂一些,但对于跨平台的中大型企业应用系统来讲,基于Java技术的MVC架构几乎成为唯一的选择[4]。 第6页 2 可行性分析 新闻发布系统后台对新闻作了详细的分类,前台以分类形式显示新闻的详细信息,满足了人们浏览新闻网时分类查看新闻信息的要求,同时提供新闻信息查询功能,方便浏览者查找相关的新闻信息。新闻网后台则通过对总管理员设置和管理员添加等模块对网站管理员进行管理,保证了网站的安全性。 2.1经济可行性分析 网站新闻发布系统,又称为信息发布系统,是将网页上的某些需要经常变动的信息,类似新闻、新产品发布和业界动态等更新信息集中管理,并通过信息的某些共性进行分类,最后系统化、标准化发布到网站上的一种网站应用程序。网站信息通过一个操作简单的界面加入数据库,然后通过已有的网页模板格式与审核流程发布到网站上。大大地提高了网络的利用率,使网络的能力得以更充分的发挥。 2.2技术可行性分析 本系统采Dreamweaver 和SQL Server 2000 进行开发,两中软件都是我们在平时的学习中接触的,因此对此两种软件了解,能够开发出计划中的系统。开发出来的系统也是我们在进行了调查,了解了人们普遍使用的功能,在这期间进行了学习,对此系统各个功能模块都很了解,在功能方面能够满足用户的操作度。 通过网站管理实现了企业信息的发布、查看、接收等功能;通过网站对企业进行管理,使员工的考勤管理、薪酬管理更为科学化、系统化;通过网站管理,为企业个人提供了一个更为完善的工作平台。 2.3操作可行性分析 该系统设计简单,界面清晰简单,操作的过程和方法也不复杂,使用者能够以最快的速度能够上手操作,不需要特别的培训,而且我们在相应的操作中有许多的信息提示, 用户可以根据提示而访问我们这次开发的论坛,此系统的功能可以满足大部分的人群,我们在操作方面是可行的。 2.4法律可行性分析 该平台是经过商家授权,通过对商家需求的分析及策划方案来进行实际操作。对数据的信息及产品的图片都有合理的保管措施,无商业泄密,不会构成侵权,可以保证其在法律上是可行的。 第7页 2.5可行性研究结论 通过对以上的技术、经济、法律等可行性分析得出一个很重要的结论就是网络新闻发布系统可以正式研发并可很好的实现其各个功能。以上的研究和分析表明系统开发所产生的效益将大于投入,所以开发该项目是可行的、必要的。 第8页 3 需求分析 为了开发真正满足用户需求的软件产品,首先必须知道用户的需求。需求分析阶段是管理信息系统(MIS)开发最重要的阶段。MIS开发的需求阶段首先是了解和澄清用户的需求,然后严格地定义被开发的软件系统的需求规格说明书。只有通过软件需求分析,才能把软件功能和性能的总体概念描述为具体的软件需求规格说明,从而奠定软件开发的基础。需求分析所要作的工作是深入描述软件的功能和性能确定软件设计的限制和软件同其它系统元素的接口细节,定义软件的其它有效性需求。 软件需求主要包括:功能需求、界面需求、性能需求、环境需求、可靠性需求、安全保密需求、资源使用需求、软件成本消耗与开发进度需求和目标需求。 3.1系统功能模块设计 此新闻发布系统是为了达到资源共享,提高以往新闻的的即时性,缩短人们在获取新闻时浪费的时间,同时也提高了管理的工作效率等等。目标系统应该达到以下要求: 1.时间经济性。优化逻辑设计与物理设计,使系统运行效率更高,反映速度更快,减少用户等待时间。 2.可靠性。能连续准确的处理业务,有较强的容错能力。 3.可理解性。用户容易理解和使用该系统。 4.可维护性和适应性。系统应易于修改、易于扩充、易于维护,能够适应业务不断发展变化的需要。 5.可用性。目标系统功能齐全,能够完全满足业务需求。 对软件需求的深入理解是软件开发工作获得成功的前提条件,不论我们把设计和编码工作做的如何出色,不能真正满足用户需求的程序只会令用户失望,给开发者带来烦恼,虽然在可行性研究阶段已经粗略了解了用户的需求,甚至还提出了一些可行的方案,但是不能够代替需求分析,能够遗漏任何一个微小的细节,需求分析是一项十分艰巨复杂的工作。用户和分析员之间需要沟通的内容非常多,在双方交流信息的过程中很容易出现误解或遗漏,也可能存在二义性。因此,不仅在整个需求分析过程中应该采用行之有效的通信技术,集中精力过细地工作,而且必须严格审查验证需求分析的结果。系统具体功能简介如下: 通过和用户的沟通,发现操作上网人员大多数具备一定的计算机操作水平,因此要求系统有友好而且美观的人机操作界面。这样以来,可以使用户操作更佳便捷,给用户 第9页 提供方便,用户可以轻轻松松应用该系统,并且会使用户的使用效率大大提高。这也是用户要求的最基本保证。还了解到,该登录网站的用户目的不尽相同,需要发表的意见也比较多而且复杂,人们所持有的对问题的看法也相对复杂,这要求对该网站的管理方面也不一样,也就是说网站的管理员可以做的操作,其他用户不一定能做,这就要求系统有供多种不同的用户登录,因此该系统的使用对象多,就要求有安全而且多种管理权限。这点尤为重要。也是保证网站数据安全性的基本条件。 建立一个新闻网站,新闻管理员能发布最新新闻信息,还可以对新闻信息进行相应操作,新闻用户能对新闻信息进行查看,评论。网站管理员能够管理文章分类。能够构建代码库,选择分享给访客,能对代码库进行分类。在后台编辑文章,上传评论等,网站管理员可以选择模板风格能够添加友情链接,申请友情链接,对友情链接进行分类能够对新闻网进行基本的配置,能够对新闻进行手动添加,以方便在首页显示。 通过进一步的了解,网站用户的基本要求就是要利用网站查看自己感兴趣的新闻与网友进行交流。另外,就是用户基础信息的管理,如:用户个人的基本信息(添加、删除、修改、查询),网站管理员管理上的基本信息(添加、删除、修改、查询)等等。总之,这些功能都是一般新闻发布系统都具备的基础功能。另外,新闻网站的管理也是客户重点强调的一项功能,要求系统能够让网站管理员与上网用户面对面的接触,做到直接对话,这就需要通过互联网上的浏览器/服务器模式进行管理员在线发布信息,用户登录网站时查看。通过查看新闻信息,实现与访问者的相互交流,可以对自己的信息进行必要的修改和标注,进而做到个人对自己的信息透明化。新闻网最为重要的莫过于访问者可以自由查看新闻信息,所以系统提供用户查看信息,并可以对新闻信息发表意见。新闻网站为了实现网站建设者与访问者之间的相互交流,展现最新的新闻列表,方便访问者浏览。 网上新闻发布系统是一个典型的数据库开发应用程序,由前台和后台两个部分,论文主要就介绍后台的模块,可以分为链接管理、添加管理员、管理员信息设置、新闻类型管理、新闻详细类型管理、新闻信息管理、新闻人物管理、退出后台等模块。链接管理主要包括链接网站名称、链接网站地址、链接网站发布日期部分组成。其中,管理员对链接网站地址进行添加、删除、修改、查询等操作。 管理员管理包括(1)管理员添加:管理员主要是对整个系统的维护和新闻的发布,这是很重要的一个环节,对系统的安全性都有要求。(2)管理员信息设置:删除、修 第10页 改、查询管理员的信息,对管理员的级别等等的设置。新闻类型管理这个部分对新闻的分类很重要,新闻的类型分的越仔细,查询新闻信息的时候速度和精度相对都很高,同时系统也支持模糊的查询。对新闻类别的更详细的描述,用户可以更明确的知道新闻所属的类型,新闻所介绍的内容的导向等等。 管理员对要求发布的新闻先进行分类,对新闻内容的审查,通过审核和修改后就可以存储在数据库,便于用户的查看访问。同时管理员也有同样的权利,管理员还能对新闻进行删除和修改的操作。新闻人物管理主要由系统管理员添加新闻人物的信息和用户网上投票2部分组成。管理员添加新闻人物后,对新闻人物的相关信息进行完善,之后用户访问网站后就可以对新闻人物进行投票。退出后台的功能是推出后台,返回到前台主页。 系统在安全性要求提供用户身份验证,只有使用者在正确的输入密码以后才能登录该系统。系统的处理过程严格按照事务(Transaction)处理机制执行,对异常操作通常发出警告然后取消操作。同时对输入首先进行合法性检查不合法则发出错误提示,或是要求输入的项是空白,则有提示框出现,最大限度的满足数据的安全,保证系统的稳定。 系统具体设计目标如下: 本新闻发布系统平台主要是对后台的管理和对前台的操作。后台管理是管理员对本网站的维护,通过对链接网站、后台管理员管理、新闻管理、新闻类别管理、新闻详细类别、新闻人物投票管理等功能达到对网站的管理。前台操作是用户登录到本网站,可以进行管理员注册,通过网站的新闻查询功能,找到自己感兴趣的新闻进行阅读。 无论哪个网站都要有它自己的设计规则。该新闻发布系统也一样,它的主要设计规则有: 简单性:在实现平台功能的同时,尽量让平台操作简单易懂,这对于一个网站来说是非常重要的。 针对性:该平台设计是新闻发布系统及后台管理的定向开发设计,所以具有专业突出和很强的针对性。 实用性:该新闻发布系统能完成新闻信息展示和管理员管理的基本信息,具有良好的实用性。 3.2数据库要求 数据库处理在信息系统的研究中一直是非常重要的主题,然而近年来随着World 第11页 Wide Web(WWW)的猛增及Internet技术的迅速发展,使得数据库技术成为当下最热门技术之一。数据库技术能使Internet应用超越具有早期应用特点的简单的发布。同时,Internet技术提供了一种向用户发布数据库内容的标准化的访问方法。这些技术没有脱离经典数据库技术的要求。它们只是加重了数据库技术的重要性。 数据管理技术的发展与硬件(主要是外存)、软件、计算机应用的范围有密切的联系。数据管理技术的发展经过三个阶段:人工管理阶段、文件系统阶段和数据库阶段。人工管理阶段和文件系统阶段都有着相当多的缺陷,诸如数据冗余性 ,数据不一致性以及数据联系弱等等。也正是由于这些原因,促使人们研究新的数据管理技术,从而产生了数据库技术。20世纪60年代末发生的三件大事,层次模型IMS系统的推出、关于网状模型DBTG报告的发表以及关于关系模型论文的连续发表标志着数据管理技术进入数据库阶段。进入70年代以后,数据库技术得到迅速发展,开发了许多有效的产品并投入运行。数据库系统克服了文件系统的缺陷,提供了对数据更高级更有效的管理。当进入数据库阶段后,随着数据管理规模一再扩大,数据量急剧增加,为了提高效率,开始时,人们只是对文件系统加以扩充,在应用文件中建立了许多辅助索引,形成倒排文件系统。但这并不能最终解决问题。在20世纪60年代末,磁盘技术取得重要进展,具有数百兆容量和快速存取的磁盘陆续进入市场,成本也不高,为数据库技术的产生提供了良好的物质条件。在建设网站系统之前,我们必须对系统所用到的数据进行大致的分类和具体的结构设计,既要做到清晰明了,又要能适应系统各项功能的调用,而不至于产生结构上的逻辑混乱,保证关键数据在意外情况下不会被破坏,可以说数据库是系统的重中之重。数据库设计要遵循一些规则,一个好的数据库满足一些严格的约束和要求。尽量分离各实体对应的表,一个实体对应一个表,搞清楚该实体有哪些属性,对应有些什么字段,以及各实体之间有何种联系。实体、属性与联系是进行概念设计时要考虑的三个元素,也是一个好的数据库设计的核心。 3.3开发环境要求 在B/S体系结构系统中,用户通过浏览器向分布在网络上的许多服务器发出请求,服务器对浏览器的请求进行处理,将用户所需信息返回到浏览器。B/S结构简化了客户机的工作,客户机上只需配置少量的客户端软件。服务器将担负更多的工作,对数据库的访问和应用程序的执行将在服务器上完成。浏览器发出请求,而其余如数据请求、加工、结果返回以及动态网页生成等工作全部由Web Server完成。实际上B/S体系结构是 第12页 把二层C/S结构的事务处理逻辑模块从客户机的任务中分离出来,由Web服务器单独组成一层来负担其任务,这样客户机的压力减轻了,把负荷分配给了Web服务器。这种三层体系结构如图3.1所示。 Browse浏览器 Web服务器 图3.1 B/S三层架构示意图 数据库 这种结构不仅把客户机从沉重的负担和不断对其提高的性能的要求中解放出来,也把技术维护人员从繁重的维护升级工作中解脱出来。由于客户机把事务处理逻辑部分分给了功能服务器,不再负责处理复杂计算和数据访问等关键事务,只负责显示部分,所以维护人员不再为程序的维护工作奔波于每个客户机之间,而把主要精力放在功能服务器上程序的更新工作。这种三层结构在层与层之间相互独立,任何一层的改变不会影响其它层的功能。图3.2所示为采用MVC开发的逻辑示意图;图3.2所示为MVC业务示意图: 应用服务器 Web服务器 浏览器 Jsp Serverlet控制器 EJB容器 业务组件 数据库 图3.2应用服务器之上采用MVC开发的逻辑示意图 Control 服务控制 输出 输入请求 View 显示方式 Model 业务逻辑模型 Html 其他 图3.3MVC业务流程示意图 第13页 通过这种方案,我们可以迅速地实现整个业务,其优势和特点如下: Model(模型)层:由EJB组件来实现,EJB将具体的业务封装在组件内部,具备安全、高性能、可重用等优秀的特征。 View(视图)层:由JSP、HTML组成。这一层次的特点是能够真实地展示和客户交互的界面,具备可描绘的功能。同时能够嵌套动态数据,可以进行动态页面的展示。同时可以方便地进行客户端的个性化定制。根据每个客户的需求来展示不同风格的界面。 Controller(控制器)层:是非常重要的一层,这一层是连接View和Model的纽带,同时也是将这两层进行最大限度分离的工具。通常由Servlet来实现,Servlet和JSP虽然同样都属于页面展示工具,但分属两层。主要在于JSP以脚本语言的形式存在, 它的主要优势是进行动态数据的Web展示,而Servlet是一个完整的Java程序,进行业务的调用和流程的处理是它的长处。 通过这种模型的建立,我们的应用系统具备了非常好的性能和可扩展性。将业务组件和展示页面进行分离,并通过Controller来描述调用关系,一方面可以提高效率,另一方面也可以增加系统扩充的能力,使我们的系统可以进行最快速度的业务扩展,以满足不同用户、不同阶段、各种各样的业务需求。 3.4 数据字典 数据流图重点在描述以处理逻辑为中心的数据的流入与流出,而对数据本身未加描述,影响了用户对数据流图的理解。数据字典是对数据流图的很好的补充,它是数据流图上所有成分的定义和解释的文字集合,它是对数据流图的各种成分起注解、说明的作用,同时它还对系统分析中其他需要说明的问题进行定义和说明。系统分析人员把不便在数据流图上注明而对于系统分析应该获得,对整个系统开发以至将来系统运行与维护是必须的信息尽可能放入数据字典。 数据字典对数据流图的描述尽可能说明下列问题: 1、什么?(是什么或是什么) 2、何出?(在何处来或者来自何处,去向何处) 3、何时?(何时出现,时间长短) 数据词典的作用是给数据流图上每个成分以定义和说明。换句话说,数据流图上所有成分的定义和解释和文字的结合就是数据字典。 第14页 数据词典描述的主要内容有:数据流、数据元素、数据存储、加工、外部项,其中数据元素是组成数据流的基本成分。在系统分析中,数据词典起着重要作用。 编写数据词典的基本要求是: 1、对数据流涂上的各种成分的定义必须明确、易理解、唯一。 2、命名、编号与数据流图一致,必要时(如计算机辅助编写数据的作用。它包含关于系统的详细信息。词典时)可增加编码,方便查询检索、维护和统计报表。 3、符合一致性和完整性的要求,对数据流图上的成分定义与说明无遗漏项。数据词典中无内容重复或内容相互矛盾的条目。数据流图中同类成分的数据词典条目中,无同名异义或异名同义者。 4、格式规范、风格统一、文字精炼,数字与符号正确。 本系统的数据字典包括: 数据流“链接其他网站”的字典条目如表3.4所示: 表3.4数据流“链接其他网站”的字典条目 数据流名:链接其他网站 组 成:链接其他网站=数据库流水号+链接网站名称+链接网站地址+链接网站发布日期 数据流“后台管理”的字典条目如表3.5所示: 表3.5 数据流“后台管理”的字典条目 数据流名: 后台管理 组 成: 后台管理=数据库流水号+管理员账号+管理员密码+管理员真实姓名+管理员注册时间+管理员标识 数据流“新闻管理”的字典条目如表3.6 所示: 表3.6 数据流“新闻管理”的字典条目 数据流名: 新闻管理 组 成: 新闻管理=数据库流水号+新闻标题+新闻内容+新闻类型+新闻详细类型+新闻发布日期 数据流“新闻类别”的字典条目如表3.7 所示: 表3.7 数据流“新闻类别”的字典条目 第15页 数据流名:新闻类别 组 成:新闻类别=数据库流水号+新闻类型名称+新闻类型建立日期 数据流“新闻人物投票”的字典条目如表3.8所示: 表3.8数据流“新闻人物投票”的字典条目 数据流名:新闻人物投票 组 成: 新闻人物投票=数据库流水号+新闻人物姓名+新闻人物地址+新闻人物籍贯+新闻人物工作+备注+新闻人物票数 3.5 实体E-R图 对E-R图的设计如下所示。新闻发布系统的实体设计如图3.9所示 数据库流水号管理员账号管理员密码管理员真实姓名管理员注册时间管理员标示数据库流水号管理员新闻人物姓名1新闻人物地址新闻人物籍贯新闻人物工作投票新闻人物备注新闻人物票数n数据库流水号新闻详细类型新闻发布日期新闻人物信息n管理n链接其他网站链接网站名称数据库流水号链接网站地址1n新闻管理链接网站发布的日期用户新闻标题新闻内容新闻类型 图3.9 实体E-R图 第16页 3.6数据流图 数据流图简称DFD(Data Flow Diagram)图,其主要功能是用来描述信息在系统中的流动和处理的情况,是极好的理解工具。它能精确的描述系统的逻辑模型,描述数据由输入经过存储、加工、处理到最后输出的全过程。数据流图是将信息彼此之间的联系自顶向下、逐层分解,从逻辑上精确的描述新系统具有的数据加工功能、数据输入、数据输出、数据存储及数据来源和去向。数据流程图不但能够反映现行系统中数据处理的逻辑功能,而且能用它来反映将要建立的系统的逻辑模型,因此数据流程图是系统分析有利的工具,熟练的掌握数据流程图的画法,对系统分析至关重要。 (1)顶层数据流图 管理员用户登录信息发布或修改新闻、新闻人物信息管理员新闻发布系统查询查看新闻、新闻人物投票等用户反馈新闻、新闻人物信息新闻信息、投票信息等反馈管理员用户登录状态图3.10系统顶层DFD图 (2)链接网站地址管理 管理员在输入相关的链接网站地址信息后,系统进行相应的操作(添加、删除、修改、查询),验证数据有效之后把处理完的数据存储在链接其他网站地址信息表中,最后把更新完的数据输出在展示区,供管理员查看。 第17页 输入链接网站信息输入链接网站信息连接其他网址表删除链接网站信息查询链接网站信息链接网站信息添加链接网站信息修改验证是否有效对应相关记录写回数据库读出记录数据处理并更新数据库管理员输入链接网站信息输入链接网站信息输出相关信息 图3.11链接网站地址管理DFD图 (3)新闻信息管理 管理员在输入相关的新闻信息后,系统进行相应的操作(添加、删除、修改、查询),验证数据有效之后把处理完的数据存储在新闻信息表中,最后把更新完的数据输出在展示区,供管理员和用户查看。 输入新闻信息输入新闻信息新闻管理表删除新闻信息查询新闻信息新闻信息添加新闻信息修改验证是否有效对应相关记录写回数据库读出记录数据处理并更新数据库管理员输入新闻信息输入新闻信息 输出相关信息图3.12新闻信息管理DFD图 (4)新闻类别管理 管理员在输入相关的新闻类别后,系统进行相应的操作(添加、删除、修改、查询), 第18页 验证数据有效之后把处理完的数据存储在新闻类别信息表中,最后把更新完的数据输出在展示区,供管理员查看。 输入新闻类别输入新闻类别新闻类别表删除新闻类别信息查询新闻类别信息新闻类别信息对应相关记录写回数据库读出记录验证是否有效数据处理并更新数据库管理员输入新闻类别输入新闻类别添加新闻类别信息修改输出相关信息 图3.13新闻类别管理DFD图 (5)新闻人物信息管理 管理员在输入相关的新闻人物信息后,系统进行相应的操作(添加、删除、修改、查询),验证数据有效之后把处理完的数据存储在新闻人物信息表中,最后把更新完的数据输出在展示区,供管理员查看。 新闻人物表删除新闻人物信息输入新闻人物细信息查询新闻人物信息新闻人物信息对应相关记录写回数据库读出记录验证是否有效数据处理并更新数据库输入新闻人物细信息管理员输入新闻人物细信息输入新闻人物细信息添加新闻人物信息修改输出相关信息 图3.14新闻人物信息管理DFD图 第19页 4 总体设计 数据库设计主要采用的是以逻辑数据库设计和物理数据库设计为核心的规范设计方法。其中逻辑数据库是根据用户要求和特定数据库管理系统的具体特点。以数据库设计理论为依据。设计数据库的全局逻辑结构和每个用户的局部逻辑结构。物理数据库设计是在逻辑结构确定之后,设计数据库的存储结构及其他实现细节。各种规范设计方法在设计步骤上存在差别,各有不同。 4.1 数据库设计 数据库设计过程一般分为以下六个阶段需求分析阶段:进行数据库设计首先必须准确了解与分析用户需要(包括数据与处理)。需求分析是整个设计过程的基础,需求分析是否充分与准确,决定整个数据库构建的速度与质量。概念结构设计阶段:概念设计是整个数据库设计的关键,他通过对用户需求进行综合,归纳与抽象,形成一个独立于具体DBMS的概念模型。逻辑结构设计阶段:逻辑结构设计是将概念结构转换为某个DBMS所支持的数据模型,并对其进行优化。数据库物理设计阶段:数据库物理设计是为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)。数据库实施阶段:在数据库实施阶段,设计人员运用DBMS提供的数据语言及其宿主语言,根据逻辑设计和物理设计的结果建立数据库,编制与调试应用程序,组织数据录入,并进行试运行。数据库运行和维护阶段:数据库系统经过试运行后,即可投入正式运行。在数据库运行过程中必须不断地对其进行评价、调整与修改。 网上新闻发布系统数据库设计数据库: 创建任何一个数据库的第一步是仔细的规划数据库,设计必须是灵活的、有逻辑的。创建一个数据库结构的过程被认为是数据模型设计。标识需要的数据;收集被标识的字段到表中;标识主关键字字段;绘制一个简单的数据图表;规范数据;指定字段的信息;创建物理表。 本系统采用 SQL Server2000数据库为数据库开发工具,建立一个数据库db_news,并为之定义了相应的关系以适应本系统所需的功能。下面介绍各表的主要功能。 (1)链接其他网站表:链接其他网站表主要用于保存链接其他网站信息。 由于系统需要对链接其他网站进行添加、删除、修改、查询等操作,所以必须要有一个表,用于存储各个网站的名称、地址,链接地址发布日期,给这个表取名为:tb_link。 第20页 其中ID为自动生成的序号,设置为主键,不允许为为空,其他字段都可以为空。 (2)后台管理表:后台管理表主要用于保存管理员的基本信息。 由于系统需要对管理员进行管理,其中包括对管理员信息的添加、删除、修改的基本操作,查询管理员情况,所以需要有一个管理员信息表,给这个表取名为:tb_manager。用于存储每个管理员的姓名等基本信息,其中包括很多字段,这里不做详细说明,其中ID为自动生成的序号,设置为主键,不允许为空,其他字段都可以为空。 (3)新闻管理表:新闻管理表主要用于保存新闻信息。 由于管理员发布新闻信息,所以要求系统能有发布新闻的模块,因此必须创建一个表,用于存储新闻的相关的信息,给这个表取名为:tb_news。其中包括很多字段:数据库流水号、新闻标题、新闻内容、新闻类型、新闻详细类型、新闻发布日期等。这里同样ID为自动生成的序号,设置为主键,不允许为空,其他字段都可以为空。 (4)新闻类别表:新闻类别表主要用于新闻所属类型信息。 由于用户的不同的需求,查看各类新闻,所以管理员要对新闻信息的分类,因此系统应该有新闻分类的表,用于存储新闻分类的新闻信息资源,给这个表取名为:tb_newsType。其中包括很多字段:数据库流水号、新闻类型名称、新闻类型建立日期。这里同样ID为自动生成的序号,设置为主键,不允许为空,其他字段都可以为空。 (5)新闻人物投票表:新闻人物投票表主要用于保存对新闻人物信息。 同上,创建一个表,用于存储给新闻人物的具体内容,给这个表取名为:tb_Vote。其中包括很多字段:数据库流水号、新闻人物姓名、新闻人物地址、新闻人物籍贯、新闻人物工作、备注、新闻人物票数等。这里同样ID为自动生成的序号,设置为主键,不允许为空,其他字段都可以为空。 (6)新闻类别详细表:新闻类别详细表主要用于存储新闻详细类别相关信息。 给这个表取名为:tb_Style。其中包括的字段有:数据库流水号、新闻类别名称、新闻类别详细信息、新闻详细类别建立时间。这里同样ID为自动生成的序号,设置为主键,不允许为空,其他字段都可以为空。 部分表的表结构参见附录A。 4.2 模块设计 网上新闻发布系统是一个典型的数据库开发应用程序,由前台和后台两个部分,论文主要就介绍后台的模块,可以分为链接管理、添加管理员、管理员信息设置、新闻类 第21页 型管理、新闻详细类型管理、新闻信息管理、新闻人物管理、退出后台等模块。 新闻发布系统前台功能结构,如图4.1所示 新闻网前台功能结构新闻分类新闻详细信息新闻信息查询新闻人物投票友情链接后台登录口 图4.1新闻网前台功能结构图 新闻发布系统前台主要内容有新闻分类,新闻详细信息,新闻信息查询,新闻人物投票,友情链接,后台登陆口的显示。前台主要是展示网站的旗帜广告和站内导航条,显示导航模块中的功能以及功能模块中的内容。 新闻网后台功能结构,如图4.2所示 第22页 新闻网后台功能结构总管理员设置总管理员修改密码添加管理员管理员信息设置新闻类型管理新闻详细类型管理新闻信息管理链接管理新闻人物管理退出后台 图4.2 新闻网后台功能结构图 新闻网后台功能主要有总管理员设置和修改密码,添加管理员及其信息设置,新闻类型管理,新闻信息管理和链接管理,新闻人物管理,退出后台。管理员必须输入账号,密码,才能进入到新闻后台管理界面,进入以后可以对新闻信息等相关信息进行编辑,修改和删除等操作。当单击“结束”按钮时,系统结束,退出后台。 4.2.1链接管理 链接管理主要包括链接网站名称、链接网站地址、链接网站发布日期部分组成。其中,管理员对链接网站地址进行添加、删除、修改、查询等操作。 4.2.2管理员管理 (1)管理员添加:管理员主要是对整个系统的维护和新闻的发布,这是很重要的一个环节,对系统的安全性都有要求。 (2)管理员信息设置:删除、修改、查询管理员的信息,对管理员的级别等等的设置。 第23页 4.2.3新闻类型管理 这个部分对新闻的分类很重要,新闻的类型分的越仔细,查询新闻信息的时候速度和精度相对都很高,同时系统也支持模糊的查询。 4.2.4新闻详细类型管理 对新闻类别的更详细的描述,用户可以更明确的知道新闻所属的类型,新闻所介绍的内容的导向等等。 4.2.5新闻信息管理 管理员对要求发布的新闻先进行分类,对新闻内容的审查,通过审核和修改后就可以存储在数据库,便于用户的查看访问。同时管理员也有同样的权利,管理员还能对新闻进行删除和修改的操作。 4.2.6新闻人物管理 新闻人物管理主要由系统管理员添加新闻人物的信息和用户网上投票2部分组成。管理员添加新闻人物后,对新闻人物的相关信息进行完善,之后用户访问网站后就可以对新闻人物进行投票。 最后是退出后台模块的功能是推出后台,返回到前台主页。 第24页 5 详细设计 详细设计的任务是设计出程序的“蓝图”,以后程序将根据这个蓝图来编写出实际的代码。因此,详细设计的结果基本上决定了最终的程序代码的质量。 5.1 用户登录界面设计 网站登录主要是用户通过登录进入管理界面进行合法的操作。网站登录模块主要用于验证用户是否是合法用户。网站登录页面由两部分组成,即用于收集登录信息的前台表单部分和用于验证的后台处理部分。 5.1.1网站前台 网站前台首页的运行结果如图5.1所示。 1 2 3 图5.1 网站前台首页运行结果 网站框架图说明如下: 第25页 表5.1 网站前台首页页面说明 区域 1 2 3 名称 网站导航 功能模块 内容显示 说明 主要展示网站的旗帜广告和站内导航条 主要用于显示导航模块中的功能 主要用于显示功能模块中的内容 对应文件 typeNewWatch.do linkSelect.do dateNews.do?type=今日新闻 网站前台主要内容有网站导航,功能模块,以及主要内容的显示。网站导航主要是展示网站的旗帜广告和站内导航条,功能模块主要用于显示导航模块中的功能,内容显示主要用于显示功能模块中的内容。本软件建议您使用IE7.0以上版本,分辨率:1024*768”。 5.1.2网站后台 网站后台首页的运行结果如图5.2所示。 1 3 2 图5.2 网站后台首页运行结果 网站后台首页中的各部分说明如表5.2所示。 第26页 表5.2 网站后台首页页面说明 区域 1 2 3 名称 网站导航 功能模块 内容显示 说明 主要展示网站的旗帜广告和站内导航条 主要用于显示导航模块中的功能 主要用于显示功能模块中的内容 对应文件 typeTopAction.do left_main.jsp right_main.jsp 当单击“进入后台”按钮时,后台对用户的身份进行验证,主要是检索用户名和密码在数据库中是否存在。如果存在那么登录成功,进入操作界面,否则登录失败,并弹错误提示:“不存在此用户和密码,5秒钟之后返回。” 5.2 后台登录模块设计 在新闻发布系统中,后台管理员分为两种:一个是普通管理员,他可以对新闻类型进行定义,也可以发布新闻、设置投票人数及网站链接;另一个是总管理员,他除了可操作以上功能外,还可以对普通管理员进行设置,总管理员和普通管理员都能通过后台登录页面登录后台。 5.2.1后台登陆 在前台单击“进入后台”超链接,即可进入到后台登录页面,如图5.3所示。 图5.3 后台登录页面 系统只有成功登录后才能进入,所以在这些页面中都包含了进行身份认证的程序 第27页 5.2.2后台登陆流程图: 开 始 输入用户名 输入密码提示用户名或密码错误 确定Y/重置N?YN清空N 用户名、密码正确?Y进入系统主界面结 束图5.4 后台登录流程图 后台登陆时,用户必须输入用户名,密码,如果输入错误可以进行重置,如果你确定自己输入的密码系统会提示“密码是否正确”;当用户输入密码错误后,还需要用户重新输入,当密码更改成功后,系统会提示“进入系统主界面”。进入到系统管理的用户管理界面,可以进一步对用户的信息进行编辑,当单击“结束”按钮时,系统结束。详细见系统管理模块。 5.3 链接管理 连接管理是本网站的一个亮点,网站的这种方式,要求系统有复杂的链接的能力, 第28页 使得网站的功能更加强大,与实际联系更加紧密。 5.3.1友情链接及其添加 当单击友情连接时,在中间展示区会出现如图5.5的链接信息: 图5.5添加链接信息 当单击添加链接地址时,在中间展示区会出现如图5.6的添加链接信息: 图5.6 添加链接 网站的这种方式,要求系统有复杂的链接的能力,这也是本系统的一个亮点,当用户单击每一个单选框时,把选定时的连接地址记录到数据库的登记表中,与数据库中的链接地址设置表中的地址进行比较,如果不相同就添加链接。 第29页 5.3.2链接管理流程图 开 始输入链接网站名称输入链接网站地址 确定Y/重置N?YN清空存入数据库中结 束 图5.7添加链接地址流程图 添加链接地址时,必须输入链接网站名称,链接网站地址,如果输入错误可以进行清空,如果输入正确则存入数据库中。当单击“结束”按钮时,系统结束。详细见系统管理模块。 5.4 管理员管理 当用户单击管理员按钮时,系统会连接到管理注册界面。管理员界面主要有三个区1、管理导航区;2、功能导航区;3、展示区。 第一个位管理导航区,是任何一个模块共用的区域,主要用于选择各种管理操作。第二个是管理模块的功能导航区,主要用于选择各种功能操作。最后第三个是展示区,当单击某个按钮时,在展示区会显示相应的功能操作或者列表。 第30页 5.4.1管理员注册和信息查看 当单击管理员注册时,在中间展示区会出现如图5.8的管理员注册信息: 图5.8管理员注册1 图5.9 管理员注册2 图5.9 管理员信息查看 管理员可以先输出账号,然后点击提交,如果输入的信息不正确点击重置,如果输入正确请继续填写管理员信息。然后查看管理员信息,如果普通管理员密码错误可以进行修改工作。 第31页 5.4.2管理员管理流程图 开 始管理员账号管理员密码管理员真实姓名 提交Y/清除N?YN清空存入数据库中结 束图5.10 管理员注册 管理员登陆时,管理员必须输入账号,密码,真实姓名,如果输入错误可以进行清空,如果你确定自己输入正确则存入数据库中,当单击“结束”按钮时,系统结束。详细见系统管理模块。 5.5 新闻详细类型管理 新闻详细类型管理模块主要用于对新闻进行修改和删除工作,单击修改按钮,出现和上图类似的界面,编辑完信息后点提交,则完成修改操作。单击删除按钮,则对新闻实行删除操作。 5.5.1新闻详细类别信息及其添加 当单击新闻详细类比的查看时,在中间展示区会出现如图5.11的查看新闻的详细类 第32页 比信息: 图5.11 查看新闻的详细类别信息 当单击添加新闻的详细类别时,在中间展示区会出现如图5.12的添加新闻的详细信息: 图5.12 添加新闻的详细信息 第33页 5.5.2添加新闻详细类别信息流程图 开 始添加详细类型信息选择新闻类型 提交Y/重置N?YN清空存入数据库中结 束图5.13 添加新闻详细类别信息 添加新闻详细类别时,管理员必须输入添加详细类型信息,选择新闻类型,如果输入错误可以进行清空,如果你确定自己输入正确则存入数据库中,当单击“结束”按钮时,系统结束。详细见系统管理模块。 5.6 新闻信息管理 新闻信息管理中,包括对新闻的查询和添加操作,当用户单击“新闻标题”时,连接到详细信息界面,里面显示出保护大熊猫,添加的新闻信息可以在这里查询到,查询操作只是对数据库表中的信息进行读取,并不进行修改。 5.6.1新闻的添加 单击查看新闻,如图5.14所示: 第34页 图5.14 添加新闻信息 当单击添加新闻时,在中间展示区会出现如图5.15的添加新闻的信息: 图5.15 添加新闻信息 第35页 图5.16添加新闻信息 5.6.2新闻信息管理流程图 开 始选择新闻类型添加新闻标题添加新闻的内容选择新闻详细类别 提交Y/重置N?YN清空存入数据库中结 束 图5.17 添加新闻信息流程图 第36页 添加新闻信息时,管理员必须输入选择新闻类型,添加新闻标题,添加新闻内容,选择新闻详细类别,如果输入错误可以进行清空,如果你确定自己输入正确则存入数据库中,当单击“结束”按钮时,系统结束。详细见系统管理模块。 5.7 新闻人物管理 新闻人物管理中,包括对新闻人物的修改和删除操作,当用户单击“详细信息”时,连接到详细信息界面,里面显示出新闻人物的详细信息,在修改模块中修改的人物信息可以在这里查询到,查询操作只是对数据库表中的信息进行读取,并不进行修改。删除操作可以删除对应人员的信息,删除前,系统提示“你真的要删除吗?”点击“确定”按钮删除相应信息。删除操作同样要慎重操作,以免误删信息给管理员带来麻烦。 5.7.1新闻人物信息查看和修改 当单击添加新闻人物管理时,在中间展示区会出现如图5.18的添加新闻人物信息 图5.18 查看新闻人物信息 第37页 图5.19添加新闻人物信息 图5.20 修改新闻人物信息 在用户管理中,包括对用户信息的查询、编辑和删除等操作,当用户单击“修改”按钮时,连接到修改信息界面,里面显示出用户的详细信息,在添加用户模块中添加的用户信息可以在这里查询到,查询操作只是对数据库表中的信息进行读取,并不进行修改。对用户信息的编辑操作是把相应的数据找到,之后在数据库的表中进行修改,更新 第38页 数据库,得到新的数据。删除操作可以删除对应人员的信息,删除前,系统提示“你真的要删除吗?”点击“确定”按钮删除相应信息。删除操作同样要慎重操作,以免误删信息给管理员带来麻烦。 5.7.2新闻人物添加和修改流程图 开 始添加新闻人物名称添加新闻人物籍贯添加新闻人物年龄添加新闻人物工作添加新闻人物简介 提交Y/重置N?YN清空存入数据库中结 束图5.21新闻人物信息流程图 添加新闻人物信息时,管理员必须输入选择新闻人物名称,籍贯,年龄,工作,简介,如果输入错误可以进行清空,如果你确定自己输入正确则存入数据库中,当单击“结束”按钮时,系统结束。详细见系统管理模块。 第39页 6 系统调试与测试 6.1 系统调试 调试是软件开发过程中最艰巨的脑力劳动,调试开始时,软件开发者仅仅面对着错误的征兆,然而在问题的外部现象和内在原因之间往往并没有明显的联系,在组成程序的密密麻麻的元素中,每一个都可能是错误的根源。如何能在浩如烟海的程序元素中找到有错误的那个元素,这是调试过程中最关键的技术问题。 调试过程主要是运行编制好的程序,然后遇到错误后根据系统的提示,找到相关的问题所在。本系统调试过程中遇到问题、原因和解决方法如下面介绍: 1.在调试本程序过程中,有时候往往出现连接不上数据库,运行不成功,究其原因,可能是数据库没有导进去。在SQL Server 2000中,在树形菜单的数据库上单击鼠标右键,从弹出的快捷菜单中选择相关命令还原数据库,选择从设备还原,然后选择设备,将路径指向本系统db_news文件还原即可。 2.在进行设备信息录入时,添加完相关信息提交之后,系统提示“信息错误”,添加不成功,最后在数据库中发现设备数量的属性定义为文本,所以设备数量那栏填数字,添加不成功。 6.2 系统测试 软件测试是软件开发过程的重要组成部分,是用来确认一个程序的品质或性能是否符合开发之前所提出的一些要求。软件测试就是在软件投入运行前,对软件需求分析、设计规格说明和编码的最终复审,是软件质量保证的关键步骤。 JSP程序需要将程序文件发布到tomcat服务器后才能浏览网页的内容,所以要将做好的JSP程序文件放在tomcat的主目录下才能运行,本程序采取边做边运行测试的方法,做完一个功能模块就对其进行测试验证,看看能不能读或写数据库。 1.功能测试 (1)链接测试 链接测试可分为三个方面。首先,测试所有链接是否按指示的那样确实链接到了该链接的页面;其次,测试所链接的页面是否存在;最后,保证Web应用系统上没有孤立的页面,所谓孤立页面是指没有链接指向该页面,只有知道正确的URL地址才能访问。链接测试必须在集成测试阶段完成。 第40页 (2)表单测试 当用户给应用系统管理员提交信息时,就需要使用表单操作,例如管理员注册、登录、信息提交等。在这种情况下,我们必须测试提交操作的完整性,以校验提交信息的正确性。如果表单只能接受指定的某些值,则也要进行测试。例如:只能接受某些字符,测试时可以跳过这些字符,看系统是否会报错。 (3)数据库测试 在Web应用技术中,数据库起着重要的作用,数据库为应用系统的管理、运行、查询和实现用户对数据存储的请求等提供空间。最常用的数据库类型是关系型数据库,可以使用SQL对信息进行处理。 一般情况下,可能发生两种错误,分别是数据一致性错误和输出错误。数据一致性错误主要是由于用户提交的表单信息不正确而造成的,而输出错误主要是由于网络速度或程序设计问题等引起的,针对这两种情况,可分别进行测试。 2.可用性测试 (1)导航测试 导航描述了用户在一个页面内操作的方式,在不同的用户接口控制之间,例如按钮、对话框、列表和窗口等;或在不同的连接页面之间。系统的导航帮助要尽可能地准确。导航的另一个重要方面是应用系统的页面结构、导航、菜单、连接的风格是否一致。确保用户凭直觉就知道Web应用系统里面是否还有内容,内容在什么地方。应用系统的层次一旦决定,就要着手测试用户导航功能。 (2)图形测试 在应用系统中,适当的图片既能起到广告宣传的作用,又能起到美化页面的功能。一个应用系统的图形可以包括图片、边框、颜色、字体、背景、按钮等。图形测试的内容有: 要确保图形有明确的用途; 验证所有页面字体的风格是否一致;背景颜色应该与字体颜色和前景颜色相搭配;图片的大小和质量也是一个很重要的因素,一般采用JPG或GIF压缩。 (3)浏览器测试 浏览器是Web客户端最核心的构件,框架和层次结构风格在不同的浏览器中也有不同的显示,甚至根本不显示。不同的浏览器对安全性和Java的设置也不一样。测试浏览器兼容性的一个方法是创建一个兼容性矩阵。在这个矩阵中,测试不同厂商、不同版 第41页 本的浏览器对某些构件和设置的适应性。 3.安全性测试 系统的安全性测试区域主要有: 测试有效和无效的用户名和密码,要注意到是否大小写敏感,可以试多少次的限制,是否可以登录而直接浏览某个页面等。 4.总结 从功能、可用性、安全性等方面对本系统的每个模块逐个进行测试,分析错误,最终所有的功能都能正常运行。 第42页 结 论 我这次毕业设计的题目—网上新闻发布系统,在毕业设计的近三个半月时间里,经过自己的努力和老师同学的帮助,终于完成了这次毕业设计,在从设计到完成的这段时间里,我觉的我有了很大的收获,通过这次毕业设计使我的专业知识更加的扎实,同时动手实践能力也增强了。在此过程中,我严格按照软件工程中软件生命周期模型来开发软件。并参考了一些关于JSP和SQL server 2000的书籍。使我无论在理论上还是在实践上都有一个较大幅度的提高,尤其是培养了自己独立分析问题、解决问题的能力。我按照设计要求,进行了系统分析、设计、编程、调试运行等,现已全部完成,达到了预想的设计效果。 通过这次毕业设计,使我无论在思想上还是理论实践上都有了较大成度的提高。在调试过程中,我每调试成功一个模块,就会感觉到向成功迈进了一步,心里有一种说不出的喜悦。当自己亲手设计的程序运行成功时,心理有一种无法言语的感觉。毕竟是自己第一次独立完成这么大的程序,从内心深处确确实实感受着这种震撼。 我设计的网上新闻发布系统已基本满足所要达到的功能要求,但是还不够完善,还存在着这样那样的问题,对系统的设计和程序的编排上还存在一些不足之处,还有些功能需要改进。总而言之,在本次毕业设计过程中,通过自己亲自动手设计,编制和调试,我学到了许多书本上学不到的知识。从中体会到了实践的重要性,只有把书本所学运用到实践,才能真正的掌握所学,学以致用。现在,我对一个管理系统的开发及应用不再那么陌生了,再也不像从前那样面对一个系统无从下手了。 本次设计也是对我对所学的各门专业知识的测验和总结。回首大学的学习生活,我学习到了很多知识,使我在理论上和实践上有了很大提高,除了自己的刻苦努力外,这些成绩的取得与指导教师的指导及各位老师几年来辛勤的教育是分不开的。在这里我只能衷心的道一声“谢谢您老师,辛苦了”!以此来表达我内心的感谢与感激。同时在设计过程中我也等到了很多同学的帮助,遇到困难时跟他们相互交流、探讨问题的解决方法。这使得我从同学身上学到了很多东西,学到了他们对知识的探索精神和对解决问题的执着意志,同学之间相互鼓励共同学习进步。在论文即将完成之际,我的心情久久无法平静,从开始进入课题,到论文撰写修改,再到论文的顺利完成,有多少可敬的师长、同学、朋友给了我无言的帮助,在这里请接受我诚挚的谢意! 我即将离开大学校园走入社会,这就意味着快乐的大学生活就要结束。走入社会这 第43页 所大学开始新的学习和生活,这就需要我不但要学习专业知识,还要学会社会上的为人处世之道和生存技能。大学的学习和生活为我进入社会奠定了基础,使我能够很快的融入社会,很快的适应社会的生活,所以我要感谢在大学教育我的老师和帮助过我的同学。大学是教一个人生存的技能和不断学习进取的方法,是教一个人思考问题解决问题的方法,是教一个人养成思考问题的方法。在当今社会飞速发展的今天,这更是在社会上立于不败之地的利器,这就需要我们不断学习,努力进取,正所谓学如逆水行舟,不进则退。 第44页 致 谢 毕业设计期间,马驰老师认真负责的工作态度,严谨的治学精神和深厚的理论水平都使我受益匪浅。马驰老师优秀的个人魅力也使本小组所有成员紧密集合,互相帮助形成一个非常团结的集体,而且他无论在理论上还是在实践中,都给于我了很大的帮助,使我的计算机编程水平有了进一步的提高,这对我以后的工作和学习具有巨大的作用,衷心感谢他耐心和专业的指导。 同时还要向所有指导过我的老师和帮助我的同学致以深深的感谢,是他们的孜孜不倦的教诲和无私的帮助才使得我今天的毕业设计得以顺利的进行。尤其寝室的同学,他们无论在生活方面还是在学习方面都给予了我很大的帮助。这些都使我懂得了团结合作的重要性,它是我以后的工作前进的动力,为我以后的工作奠定了基础。 再次的对这些人表示感谢,尤其是我的指导教师马驰老师。 第45页 参考文献 1.JSP工程应用与项目实践 机械工业出版社 陈威、白伟明、李楠 2005年2月 2.ASP 信息系统开发实例精选 机械工业出版社 王国辉、牛强、李南南等 2005年7 3.ASP数据库开发实例解析 机械工业出版社 李严、于亚芳、王国辉 2004年12月 4.SQL Server数据库开发实例解析 机械工业出版社 宋昆、李严等 2006年1月 5.Robert Sheldom :《Microsoft Office Access 2003》[M] Brandon A.Nordin 2004 6.JSP 信息系统开发实例精选 机械工业出版社 王国辉、牛强、李南南等 2005年7月 7.Visual C++工程应用与项目实践 机械工业出版社 张雨、阮伟良等 5005年1月 8.Visual C++管理信息系统完整项目实例剖析 人民邮电出版社 明日科技 2005年7月 第46页 附录A 数据表 (1)链接其他网站表(tb_Link) 链接其他网站表主要用于保存其他网站信息。表tb_Link的结构如表A.1所示。 表A.1 表tb_Link的结构 字段名 ID Name Address IssueDate 数据类型 int varchar varchar datetime 长度 4 50 50 8 是否主键 否 否 否 否 描述 数据库流水号 链接网站名称 链接网站地址 链接网站发布的日期 (2)后台管理员设置表(manage) 后台管理员设置表主要用于保存后台管理员信息。表manager的结构如表A.2所示。 表A.2 表manager的结构 字段名 ID Name Password RealName IssueDate mark 数据类型 int varchar varchar varchar datetime varchar 长度 4 50 50 50 8 50 是否主键 否 否 否 否 否 否 描述 数据库流水号 管理员帐号 管理员密码 管理员真实姓名 管理员注册时间 管理员标识 (3)新闻管理表(tb_news) 新闻管理表主要用于保存各类新闻信息内容。表tb_news的结构如表A.3所示。 第47页 表A.3 表tb_news的结构 字段名 ID Title Content Type Style IssDate 数据类型 int varchar text varchar varchar datetime 长度 4 100 16 100 50 4 是否主键 否 否 否 否 否 否 描述 数据库流水号 新闻标题 新闻内容 新闻类型 新闻详细类型 新闻发布日期 (4)新闻类别表(tb_newsType) 新闻类别表主要用于保存新闻类别信息。表tb_newsType的结构如表A.4所示。 表A.4 tb_newsType的结构 字段名 ID TypeName DateTime 数据类型 int varchar datetime 长度 4 50 8 是否主键 否 否 否 描述 数据库流水号 新闻类型名称 新闻类型建立日期 (5)新闻人物投票表(tb_Vote) 新闻人物投票表主要用于保存新闻人物投票信息。表tb_Vote的结构如表A.5所示。 表A.5 表tb_Vote的结构 字段名 ID Name Address Country 数据类型 int varchar varchar varchar 长度 4 50 50 50 是否主键 否 否 否 否 描述 数据库流水号 新闻人物姓名 新闻人物地址 新闻人物籍贯 第48页 Job Remark Number varchar varchar int 50 50 4 否 否 否 新闻人物工作 新闻人物备注 新闻人物票数 (6)新闻详细类型表(tb_Style) 新闻详细类型表主要用于保存详细新闻类型信息。表tb_Style的结构如表A6所示。 表A.6 表tb_Style的结构 字段名 ID StyleName STName DataTime 数据类型 int varchar varchar datetime 长度 4 50 50 8 是否主键 否 否 否 否 描述 数据库流水号 详细新闻类别信息 新闻类别信息 新闻详细类别信息建立时间 第49页 附录B中英文翻译 英文部分 The technique of JSP and Servlet 1.JSP and Servlet The technique of JSP and Servlet applied the main technique with the Java development server; it is a standard to develop the business application. The java developer likes to use it has various reason, one says that this technique studies easily for the developer that have already acquainted with the language of Java; the other is Java takes the principle of" weave to write once, circulate everywhere" into the Web applying, carrying out" weave to write once, carry out everywhere". And more important is, if follow some good design principles, it can separate means from contents mutually, create a high quantity, reply to use, be easy to applied procedure of maintenance and modification. For example, in the HTML text file if it imbed the excessive code of Java(scriptlet), the very complicated and hard reading of application that will be caused to develop out, and it is hard to reply to use, and to later of maintenance and modification also will result in the difficulty. In fact, in the CSDN forum of JSP/ Servlet, we usually can see some question to ask, the code is very long, but the logic is not very clear, a great deal of HTML and code of Java mix together, making the people know nothing about it. This is the irregularity that develops on mind. 2.The guideline of JSP and Servlet In the earlier period, the dynamic state web page mainly adopted the technique of CGI( the Common Gateway Interface), you can use the different language to write the procedure of CGI, such as the VB, C/ C++ or Delphi etc.. Although the technique of CGI has already developed maturity and the functions are strong, but because of the weakness of weaving the distance difficulty, efficiency lowly, the modification complicated etc., the trend that have to was gradually replace. In all new techniques, the JSP/ Servlet has the higher efficiency, the more easily procedure writing, the stronger functions, more safe and can be transplanted easily, as a result was thought to have the most dynamic state website technique of develop the prospect in the future by many persons. Like CGI, the Servlet support claim/ respond to the model. When a customer pass to the server delivers a claim, the server give the claim to the Servlet, the Servlet be responsible for handle the claim to respond, then give them to the server, being send out by the server again 第50页 to the customer. Different from CGI, the Servlet does not create new progress, but be placed in the same progress with the HTTP Server. It passes to use the line distance technique, letting up the expense of the server. The Servlet handles the process of claim like this: after receiving the claim comes from the customer, the adjust with the method of service, in that method the Servlet judges what the type of the claim first( GET/ POST/ HEAD … ), and then adjust to use the homologous processing method( doGet/ doPost/ doHead … )to create respond. Do not see so complicated, say in fact that it is just a class of Java to the Servlet. With the different place of the general type is, this circulates in a Servlet container, and can provide the management of session and the object life cycle managements. As a result when you use the Servlet, you can get all advantages of the terrace of Java, including the safety management and using the JDBC to interview the database and also the ability of the cross-platforms. And, the Servlet uses the line distance, so it can develop a Web application with higher efficiency. 3.The JavaServer Pages (JSP) The technique of JSP is a key technique of J2EE, it abstract Servlet on the higher and first-degree layer. It can make contents of the normal regulations static state HTML and dynamic states combine together, looks like a HTML web page, but circulate as the Servlet. There are many businesses application server support JSP technique now, for example, BEA WebLogic, IBM WebSphere, JRun etc.. Use the JSP compare to the Servlet is simpler. If you have a server of Web that supports the JSP, and have a JSP document, You can put it to the static state HTML document anywhere which can be placed, need not compile, package or carry on the ClassPath constitution, it can be visit as the common web page, the server will work well other works automatically for you. 4.The work principle of JSP The document of JSP looks to be like a common static state HTML document, but including some codes of Java only inside it. It uses ".jsp" as a suffix to tell the server that this document needs the special processing. When we visit a JSP page, this document will be translate to a Java document of source by the JSP the engine first, it is a Servlet in fact, and carry on compiling, then like the other Servlets, be handled by the engine of the Servlet. Servlet engine load this type of class and deals the claim comes from the customer, and as a result return to the customer, after that when the customer visits this page again, as long as that document is not be taken place or be changed, the engine of JSP adjusts directly with the Servlet that have already be loaded. If it has already been changed, it will carry out the above process again, 第51页 translate, compile and loading. In fact this is the so-called" the first person punishment”. For the very first time it wants to carry out the above process of series, so some time will be wasted; the interview later will not be like that. 5.The principle of the development Don't imbed too much code in the page of JSP: For very simple or the test of the code, you can put all codes of Java directly into the page of JSP did not have problems. But this kind of method shouldn't be let by the excessive usage, otherwise it will produce a lot of HTML and Java to mix to put together, it is hard for a person to read and comprehend. Solve the problem is to write a lone type, using to carry out the related calculation. Once the test passed, we can put it in the same calculating situation of any performance. This can promote the code reply using. Choose the right containment (include) mechanism: If an application in each pages have the similar rise and bottoms, still having already navigated perhaps, we should put them into a lone document, then use the containment mechanism to join them in each page into this page. Don't make the business logic and the meaning be mixed together: The complicated application involves a great deal of code, as a result that the business logic separates from the meaning of the head seems to be mutually important, this kind of separate can let any one square of variety will not affect another. So, all codes of JSP should be limited in the layer of the meaning, but if such, how you can carry out the business logic? This is the job that the JavaBean to do. The technique of JavaBean is independence in the module model of the terrace, it can be using anywhere after the developer writes it and the test passed a module, it rises the replying. In the technique of JSP, the JavaBean carried out the business logic part, it return the data to the page of JSP, then the page of JSP is responsible to turn the formatted data output the browser of the client. Use the filter: The filter is an object; it can deliver the claims or modify the respond. It can before the request to arrive the Servlet/ JSP as to carry on preparing the processing, and can after the respond to leave the Servlet/ JSP as to carry on after handle. So if you have a few Servlet/ JSP and need to carry out the same data conversion or the same page processing, you can write a filter, then in the deploy document of describe( web.xml) to contact the filter with the should be Servlet/ JSP. Keep saving for the eternal data with the database: In the Servlet/ JSP, you can use the object of HttpSession to keep the customer’s temporary data. However if you want to keep the eternal data, you should the use a database, the database conservancy data would be more safe, 第52页 and have no request to the browser which the customer use. Thus even your applied server collapsed because of a certain reason, your data is still there. 第53页 中文部分 JSP和Servlet技术 1、JSP 和Servlet JSP和Servlet技术是用Java开发服务器端应用的主要技术,是开发商务应用表示端的标准。Java开发者喜欢使用它有多种原因,其一是对于已经熟悉Java语言的开发者来说这个技术容易学习;其二是Java把“一次编写,到处运行”的理念带入到Web应用中,实现了“一次编写,到处实现”。而且更为重要的是,如果遵循一些良好的设计原则的话,就可以把表示和内容相分离,创造出高质量的、可以复用的、易于维护和修改的应用程序。比方说,在HTML文档中如果嵌入过多的Java代码(scriptlet),就会导致开发出来的应用非常复杂、难以阅读、不容易复用,而且对以后的维护和修改也会造成困难。事实上,在CSDN的JSP/Servlet论坛中,经常可以看到一些提问,代码很长,可以逻辑却不是很清晰,大量的HTML和Java代码混杂在一起,让人看得一头雾水。这就是随意开发的弊端。 2、JSP和Servlet概览 早期的动态网页主要采用CGI(Common Gateway Interface,公共网关接口)技术,你可以使用不同的语言编写CGI程序,如VB、C/C++或Delphi等。虽然CGI技术已经发展成熟且功能强大,但由于编程困难、效率低下、修改复杂等缺点,所以有逐渐被取代的趋势。在所有的新技术中,JSP/Servlet具备更高效、更容易编程、功能更强、更安全和具有良好的可移植性,因而被许多人认为是未来最有发展前途的动态网站技术。 与CGI相似,Servlet支持请求/响应模型。当一个客户向服务器递交一个请求时,服务器把请求送给Servlet,Servlet负责处理请求并生成响应,然后送给服务器,再由服务器发送给客户。与CGI不同的是,Servlet没有生成新的进程,而是与HTTP Server处于同一进程中。它通过使用线程技术,减小了服务器的开销。Servlet处理请求的过程是这样的:当收到来自客户端的请求后,调用service方法,该方法中Servlet先判断到来的请求是什么类型的(GET/POST/HEAD…),然后调用相应的处理方法(doGet/doPost/doHead…)并生成响应。 别看这么复杂,其实简单说来Servlet就是一个Java类。与一般类的不同之处是,这个类运行在一个Servlet容器内,可以提供session管理和对象生命周期管理。因而当你使用Servlet的时候,你可以得到Java平台的所有好处,包括安全性管理、使用JDBC 第54页 访问数据库以及跨平台的能力。而且,Servlet使用线程,因而可以开发出效率更高的Web应用。 3、JavaServer Pages (JSP) JSP技术是J2EE的一个关键技术,它在更高一级的层次上抽象Servlet。它可以让常规静态HTML与动态产生的内容相结合,看起来像一个HTML网页,却作为Servlet来运行。现在有许多商业应用服务器支持JSP技术,比如BEA WebLogic、IBM WebSphere、 JRun等等。使用JSP比用Servlet更简单。如果你有一个支持JSP的Web服务器,并且有一个JSP文件,你可以把它放到任何静态HTML文件中可以放置的位置,不用编译,不用打包,也不用进行ClassPath的设置,就可以像访问普通网页那样访问它,服务器会自动帮你做好其他的工作。 4、JSP工作原理 JSP 文件看起来就像一个普通静态HTML文件,只不过里面包含了一些Java代码。它使用.jsp的后缀,用来告诉服务器这个文件需要特殊的处理。当我们访问一个JSP界面的时候,这个文件首先会被JSP引擎翻译为一个Java源文件,其实就是一个Servlet,并进行编译,然后像其他Servlet一样,由Servlet引擎来处理。Servlet引擎装载这个类,处理来自客户的请求,并把结果返回给客户,以后再有客户访问这个界面的时候,只要该文件没有发生过更改,JSP引擎就直接调用已经装载的Servlet。如果已经做过修改的话,那就会再次执行以上过程,翻译、编译并装载。其实这就是所谓的“第一人惩罚”。因为首次访问的时候要执行一系列以上的过程,所以会耗费一些时间;以后的访问就不会这样了。 5、开发原则 不要在JSP界面中嵌入过量的Java代码:对于非常简单或是测试性的代码,把所有的Java 代码直接放入JSP界面内是没有问题的。但是这种方法不应该被过度使用,否则就会产生一大堆HTML和Java混合起来的代码,让人难以阅读和理解。解决方法是写一个单独的类,用来执行相关的计算。一旦这个类测试通过,就可以把它放在任何执行同样计算的场合中。这样可以促进代码的复用。 选择合适的包含(include)机制: 如果一个应用中每个界面都有一样的抬头和底部,或者还有导航条,那么就应该把它们放到一个单独的文件中,然后在每一个界面中使用包含机制把它们加入到这个界面中。 第55页 不要把业务逻辑和表示混合在一起: 复杂的应用涉及大量的代码,因而把业务逻辑和前端的表示相分离就显得格外重要,这种分离可以让任何一方的变化不会影响到另外一方。所以,所有的JSP代码都应该限制在表示层,可是如果这样的话,你如何实现你的业务逻辑呢?这就是JavaBean所做的事情。JavaBean技术是一个独立于平台的组件模型,它让开发者编写、测试通过一个组件后,可以随处使用,提高了复用性。在JSP技术中,JavaBean实现了业务逻辑部分,它把数据返回给JSP界面,由JSP界面负责格式化数据并输出到客户端的浏览器。 使用过滤器(filter): 过滤器是一个对象,可以传输请求或修改响应。它可以在请求到达Servlet/JSP之前对其进行预处理,而且能够在响应离开Servlet/JSP之后对其进行后处理。所以如果你有几个Servlet/JSP需要执行同样的数据转换或界面处理的话,你就可以写一个过滤器类,然后在部署描述文件(web.xml)中把该过滤器与对应的Servlet/JSP联系起来。 用数据库来保存持久性数据: Servlet/JSP中可以使用HttpSession对象来保存用户的临时数据。不过如果你想保存持久性数据的时候,你应该使用数据库,数据库保存数据会更安全,而且对客户所用的浏览器没有什么要求。这样即使你的应用服务器由于某种原因崩溃了,你的数据依然良好。 本文来源:https://www.wddqw.com/doc/67ec6c3a084e767f5acfa1c7aa00b52acfc79c9f.html