计算机科学与工程学院实验报告实验题目:新闻发布系统课程名称:web程序设计实验类型:□演示性□验证性□操作性□设计性□综合性专业:软件技术班级:3班学生姓名:冯丽学号:090304319实验日期:2010年11月30日实验地点:2教503实验学时:3天实验成绩:指导教师签字:年月日实验报告正文部分(具体要求详见实验报告格式要求)需求分析随着网络的q速发展和普及,越来越多的用户习惯上网浏览新闻。本系统的主要目的就是为用户提供一个方便、及叫的网上新闻发布、浏览平台。利用本系统,用户可以直接在网上发布新闻信息并根据自己的需要对新闻进行检索。本系统遵循软件工程标准,并按照软件工授规定的流程进行项目的开发。系统概述本次任务是要实现一个新闻发布系统,系统的主要功能包括:新闻查看功能、新闻搜索功能、发布新闻功能、管理员登录功能和新闻管理功能。任何用户均可使用本系统来查看、查找、发布新闻。用户可以通过单击每条新闻的标题来查看该条新闻的详细内容。新闻搜索分为按新闻标题、新闻内容、新闻作者和发布时间等多种搜索方式。当用户作为系统管理员成功登录后,可以使用新闻管理功能。新闻管理包括对现有新闻的修改和删除,管理员本次操作完毕后,可单击“管理员退出”超链接退出登录状态。系统运行环境1.硬件环境●处理器:Inte1Peteum.内存:32M或更高.硬盘空间:1GB2.软件环境●操作系统:Windows98/ME/2000/XP.Web服务器:Tomcat5.0或以上版本●数据库:Access.客户端:IE5.o或以上版本.开发语言:JSP、Java功能需求描述新闻发布系统购主要目的是为用户提供一个方便的、可快速浏览当前最新新闻的界面并且也可以随时发布最新的讯息以达到信息共享的目的。因此要为用户提供个方便易用的使用界面,同时也为具有更高权限的管理用户提供添加、删除新闻的系统维护功能。新闻发布系统主要需要实现以下一些基本功能:1查看新闻功能:任何用户均可以使用查看新闻功能。用户通过在系统导航栏上单击“查看新闻”超链接,可以进入查看新闻页面。查看新闻功能显示所有新闻,并且使用分页显示的效果,每页显示8条新闻,用户可通过单击下方的页码或在文本框巾输入页码来跳转到任意一页浏览。这里显示的所有新闻按发布的时间降序排列,以保证最新发布的新闻位于最前面。用户通过单击每条新闻的标题可以查看到新闻的详细内容。2新闻搜索功能:任何用广均可以使用新闻搜索功能。齐新闻查看页面上,用户可以通过在“查询类别”下拉列表框中选择按新闻的标题、内容、作者和发布日期等不同的查询方式来搜索符合条件的新闻。这里提供的是模糊搜索功能,即只要在查询字段中包含用户输入的关键字内容就认为是符合查询条件的记录。查询结果同样以分页的方式显示。3发布新闻功能:任何用户均可以使用发布新闻功能。用户通过在系统导航栏上单击“发布新闻”超链接可以进入发布新闻页面。发布新闻时,需要填写新闻的标题、内容和发布者姓名,发布时间取当前系统时间,不需要用户填写。4管理员登录功能:当用户需要使用新闻管理功能时,需要先以管理员身份登录系统。当未登录用户单击系统导航栏上的“新闻管理”超镕接时,进入管理员登录页面。用户可以在登录页面输入用户名和密码,若登录失败,则重定向到管理员登录页面等待下一次登录。5新闻管理功能:当用户作为管理员登录系统后,可以进行新闻管理操作,包括对现有新闻的修改和删除。在管理页面上,用户可通过单击每条记录右侧的“编辑”和“删除”超链接来进行操作。当管理员的本次维护工作结束后,可通过单击“管理员退出”超链接来注销管则员身份。总体设计在前面对用户需求的分析和研究的过程中,对于本系统中几个主要的功能模块大致有了一个抽象的认识。下面将通过总体设计,给出新闻发布系统的模块结构、流程描述和用户界面布局。1开发与设计的总体思想新闻发布系统面向各个层次的网络用户,为了使它适合更多的用户使用,系统的界面设计应该尽星做到简洁、友好、方便、易用,用户不需要专门的学习便可熟练操作。本系统采用B/S模式,服务器端使用JSP进行动态网页的开发。2系统模块结构图依据需求分析结果,新闻发布系统可以分为四个模块:数据库访问模块、新闻查看模块、新闻发布模块和新闻管理模块,如图4—1所示。3模块设计1数据库访问模块:利用JavaBean封装对数据库的操作,主要包括连接数据库、添加、修改、删除、查询数据表、关闭连接等功能。当JSP页面中需要访问数据库时直接调用这个JavaBean即可。数据库访问模块功能树如图4—2所示。新闻发布系统数据库访问模块新闻查看模块新闻发布模块新闻管理模块4-1系统模块结构图数据库访问模块加载驱动程序创建连接、执行查询语句创建连接、执行非查询类语句关闭连接4-2数据库访问模块2新闻查看模块:新闻查看模块提供分页显示全部新闻的功能,用户通过单击每条新闻的标题可以查看到本条新闻的详细内容。还可以通过输入查询类别和查询关键字来选择符合条件的新闻浏览。新闻查看模块功能树如图4—3所示。新闻查看模块显示新闻列表查看详细内容4-3新闻查看模块3新闻发布模块:新闻发布模块提供发布新消息的功能。4新闻管理模块:新闻管理模块包括修改新闻和删除新闻的功能。在进入管理模块前,需要以合法的管理员身份登录。新闻管理模块功能树如图4—4所示。新闻管理模块管理员登录修改新闻删除新闻4-4新闻管理模块系统流程描述系统的流程如图4-5开始新闻系统首页管理员登陆编辑新闻删除新闻新闻发布新闻查看退出4-5系统流程图数据库设计本系统采用Accesss数据库,在数据库中使用数据表news来存储现有的新闻信息。表的结构如表4-1所示。表4-1数据表news的结构名称字段名称数据类型主键非空新闻ID号ID数字(自动编号)YesYes新闻标题Title文本NoYes新闻详细内容Content备注NoYes新闻作者Auther文本NoYes新闻发布时间Pubdate日期/时间NoYes另外,还使用了admin数据表存储管理员的信息,表的结构如表4-2所示。表4-2数据表admin的结构名称字段名称数据类型主键非空管理员ID号ID数字(自动编号)YesYes管理员用户名Name文本NoYes管理员密码Password文本NoYes详细设计基于系统需求分析与系统总体设计的结论,本节将分别阐述系统的详细设计和实现过程。一访问数据库的JavaBean由于在本系统的多个JSP页面中都需要访问数据库,因此使用一个JavaBean来专门完成数据库的连接、访问等操作。把数据库操作封装在一个类中,每次需要访问数据库时只要实例化这个类并利用类里面提供的各种公有方法来完成对应的功能即可。这样,既可以节省编程时间,也提高了代码的利用率。1.模块描述负责完成与数据库的连接、访问、关闭等操作。2.类的设计与实现(1)名称:DBBean.java(2)功能:负责完成与数据库的连接、访问、关闭操作(3)属性设计:如表4-3所示表4-3类属性定义表属性名属性类型访问控制描述driverStrStringPrivate要加载的驱动程序类名ConnStrStringPrivate连接数据库urlConnConnectionPrivate驱动程序和指定数据库之间的连接对象StmtStatementPrivate语句对象二新闻查看模块新闻查看模块主要提供全部新闻的分页显示、显示新闻的详细内容、按不同的方式搜索新闻等功能。其中完成新闻显示、搜索的各JSP页面中均需要访问数据库,因此直接调用了刚刚实现并发布好的DBBean来完成数据库操作。1.模块描述提供新闻显示功能、搜索功能。2.源文件定义(1)indexJsp名称:新闻发布系统首页。功能:新闻变看页面,默认情况下分页显示全部新闻,并按发布时间降序排列。若查询条件不为空,则显示符合条件的所有新闻。输入:查询类别和查询关键字。处理:获取查询条件,在news表中查找符合条件的记录并按时间将序排列输出:新闻信息列表。(2)Lop.htm名称:系统导航栏页面。功能:主要负责提供系统的导航功能,用户可以通过导航栏方便地在各个功能页面间切换。(3)detail.jsp名称:显示新闻详细信息页面。功能:主要负责显示每条新闻的详细内容。当用户单击要查看的新闻标题时,重新打开一个浏览器窗口显示该条新闻的详信息。为了显示效果更清晰、美观,这里需要将换行符从“/n”转换成Html语言中识别的标记符号“”或br“P”。输入:要显示的新闻的id号。处理:在news表中查找相应的记录输出:新闻详细内容。三新闻发布模块1.模块描述提供发布新闻的功能。2.源文件定义(1)add.jsp名称:新闻发布页而。功能:提供输入新闻信息的表单,用户需输入新闻标题、新闻内容和发布者姓名来添加新闻。这里使用了客户端验证,检查各部分是否均已填写,避免无效信息提交到后台。新闻的发布时间使用系统的当前时间.无须用户输入。(2)save.jsp名称:新闻发布处理页面功能:负责添加—条新闻。输入:用户在添加页面输入的信息。处理:读取用户在add.htm中输入的新闻信息,并作为一条新记录插入到数据表中输出:重定向到新闻查看页面index.jsp,显示发布结果。四新闻管理模块1.模块描述提供已有新闻的修改和删除功能。2.源文件定义(1)login.jsp名称:管理员登录页而。功能:提供管理员登录的表单。输入:用户名和密码。处理:显示登录表单,读取错误信息,若存在,则显示错误提示信息。输出:登录界面或错误提示信息。(2)verify.jsp名称:登录处理页面。功能;负责判断用户是否为合法用户。输入;用户在登录页面输入的信息。处理:获取用户在login.jsp页面上输入的用户名和密码,验证是否为admin表中的管理员用户,若验证通过,则将管理员标志变量写入到session中输出:若验证通过,重定向到管理页面;否则,回到login.jsp登录页面,并提示错误信息(3)manage.jsp名称:新闻管理页面。功能:负责提供新闻的修改和删除界面,在所有新闻的右侧均显示“编辑”和“删除”超链接,供管理员操作。另外,还显示“管理员退出”超链按来注销身份。输入:要删除的新闻id号、查询类别和查询关键字。处理:获取要删除的新闻id号,在news表中删除此记录。获取查询条件,生成查询SQL语句,查找符合条件的记录。输出:新闻管理界面。(4)edit.jsp名称:编辑新闻页面。功能:主要负责显示管理员选中的新闻的各项信息,管理员可在此基础上进行编辑修改。提供了客户端验证方法,避免无效的信息被提交。输入:要编辑的新闻的id号。处理:在news表中查找相应的记录。输出:编辑新闻界面。(5)update.Jsp名称:编辑处理页面。功能:主要负责编辑新闻信息。输入:用户在编辑页面输入的信息。处理:获取管理员在edit.jsp页面上输入的修改信息,更新数据表中的相应记录的字段值输出:重定向到管理页面(6)logout.jsp名称:管理员退出页面。功能:注销当前的管理员身份,输入:无。处理:将session中的所有信息删除。输出:重定向到系统首页。(7)check.jsp名称:登录验证页面。功能:主要负责验证在本次会话的连接中,用户是否以管理员身份成功登录过防止未登录用户直接进入管理页面。输入:无。处理:判断session中是否存在变量admin,若不存在,则说明该用户没有成功登陆过系统。输出:若验证不通过,重定向到登陆页面。小结本系统是—个简单的新闻管理系统,在实现过程中并未考虑到新闻添加后的审核等安全方面的问题,在实际应用中可以进行进—步的完善。本系统使用了JDBC技术实现了与后台数据库的互连,主要使用了JDBC中的几个重要接口,如:DriverManger、connection、Statement和ResultSet等,利用其中的标准方法实现与数据库的连接、访问、断连等操作,具备了一个数据库应用程序的最普遍的功能,如添加、修改、删除和查询,所使用的语句和操作步骤均可能在今后的相似类型的程序中使用到。另外,使用了JavaBean