已阅读5页,还剩37页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
深圳职业技术学院毕业论文(设计)基于JSP的新闻发布系统 完成日期:2010年05月15日姓 名:学 号:专 业:计算网络技术班 级:07网络1班指导教师:毕业设计毕业设计深圳职业技术学院- 35 -摘要本新闻发布系统是一个简单的在线新闻管理系统,通过它可以现实对新闻的显示,添加,浏览,删除以及对帐号的管理等几个功能,可以对新闻里面的信息进行管理,还可以利用权限进行各自的不同操作, 如上传图片或者附件。为了能够详细的实现新闻发布,通过需要建立一套数据库系统,把新闻的信息保存下来,让所有来访者都能够很好的使用。本文主要介绍了该系统的主要功能以及详细的说明各个模块现实的功能,阐述系统的实现过程。基于JSP技术的新闻在线发布系统,通过MyEclipse进行开发,然后使用Access数据库进行数据的保存,现实了对新闻信息的添加,删除修改,以及对用户信息的添加修改,和对帐号的管理操作等。主要是运用了JSP、Servlet、JavaScript、JDBC、Apache FileUpload、HTML等技术,运用了Access作为本系统的数据库,可以更好的对数据进行保存,删除,修改等应用,一起运用了SESSION对象。通过它们可以很方便的管理新闻发布系统。关键词: 新闻 系统 管理全套设计加扣3012250582ABSTRACTThis press release system is a simple online news management system through which the reality of the news show, add, browse, delete, and account management on several features, news which can manage the information, you can also use permissions to their different operations. In order to achieve a detailed press release, through the need to establish a database system, the preservation of news information, so that all visitors are able to very good use. This paper describes the main features of the system, and detailed description of the reality of the functions of each module, described the system implementation process. Based on JSP technology news online publishing system, developed through MyEclipse, then use the Access database for data preservation, the reality of news information to add, delete modify, and add the user information changes, and account management operations and so on. Mainly use the JSP, Servlet, JavaScript, JDBC, Apache FileUpload, HTML and other technologies, the use of the Access database as the system can be better to save the data, delete, modify applications, together with the use of the SESSION object. Through which the management can easily press release system. Keywords: information systems management目录第一章 需求分析11.1 系统功能需求11.2 系统软硬件需求1第二章 概要设计22.1 系统概述22.2 数据表设计22.3 系统总体结构图32.4 系统结构设计42.5 前台系统功能设计52.6 登录模块设计62.7 后台系统设计7第三章 详细设计83.1 登陆验证模块设计83.2忘记密码模块设计93.3 新闻发布模块设计93.4 更新新闻模块设计103.5 删除新闻模块设计103.6 查找新闻模块设计113.7 附件添加模块设计113.8 管理帐户模块设计12第四章 调试与测试124.1 前台测试134.2 后台测试14第五章 主要技术问题解决155.1 安全性问题165.2 附件上传问题165.3 页面跳转问题175.4 MVC分层问题18第六章 总结196.1 致谢206.2 参考献文21第一章 需求分析1.1 系统功能需求为了能够发布新闻,通常要建立一套数据库系统,把用户的新闻信息,个人帐号,以及其他个人资料信息保存记录下来。而最终系统要操作方便,让所有来访者都能够使用。功能主要包括用户对各个模块的需求。前台功能游客:浏览新闻用户注册:浏览新闻、查找新闻、个人密码找回、密码修改后台功能新闻管理功能:浏览新闻、删除新闻、修改新闻、新闻添加附件、查找新闻帐号管理功能:查看帐号信息、修改帐户状态、删除帐户信息1.2 系统软硬件需求操作系统系统需要WIN2000以及以上系统支持,本系统需要配置TOMCAT5.0以及以上版本的支持服务软件.本程序开发所用的是Myeclipse 7.0 应用开发软件和Access数据库所开发完成,所以如需要对程序和里面的核心代码进行修改或者重建需要使用7.0以及以上版本的开发软件对其进行在开发和使调,否则将产生不可预知的错误,或者调试不能通过而导致出错和一系列错误.硬件环境:普通个人电脑操作系统:WINDOWS2000、XP以及以上版本操作系统数据库系统:采用Access(建议数据库MySQL)WEB服务器:TOMCAT 5.0以上JAVA运行环境:采用JR1.5以上版本客户端:IE4.0 ,遨游等第二章 概要设计2.1 系统概述本系统是实时在线的新闻发布系统,因此应该构建在INTELNET网络上,通过上网的方式随时使用。我们在这里使用J2EE开发互联网程序来实现功能是比较方便的,同时可以利用JSP技术来编写本系统。2.2 数据表设计 由于本系统需要保存用户发布的新闻,以及用户个人信息,所有要使用到数据库来保存各种所有的数据,所以本系统操作Access来保存数据.本系统一共需要3张数据库表来存储数据,数据库名为:news,配置该系统的系统DSN时,数据源的名称为news。1.表名为:user 里面主要是放置用户详细信息 如表2.2-1名称类型空默认值属性username文本NoNull用户名(主键)Password文本NoNull用户密码address文本NoNull用户地址mail文本NoNull用户邮箱question文本NoNull密码找回问题answer文本NoNull密码找回答案enabled文本NoNull账号状态score数字NoNull用户积分times日期/时间NoNull用户注册时间permission文本NoNull用户权限表2.2-12.表名为:news 里面主要存放新闻的一些信息 如表2.2-2名称类型空默认值属性id自动编号NoNull主键title文本NoNull新闻标题content备注NONull新闻内容author文本NONull新闻作者times日期/时间NONull新闻时间type文本NONull新闻类型publisher文本NONull新闻发布者表2.2-23.表名为:Command 里面主要存放新闻附件的信息 如表2.2-3名称类型空默认值属性id自动编号NoNull主键Newsid数字YesNull新闻的idLocation文本YesNull附件地址times日期/时间YesNull上传时间Newstitle文本YesNull新闻标题FileName文本YesNull文件名表2.2-32.3 系统总体结构图在线新闻发布系统,需要建立一套数据库系统,以及后台可简单操作的系统来进行对各种信息的操作。从实际用途的角度出发,系统的总体功能进行大致的规划为前台功能和后台管理,如图2.3所示。新闻发布系统前台系统后台系统管理用户模块登陆模块新闻管理(增删查改)新闻附件上传游客模块用户管理增加新闻添加附件用户登陆忘记密码修改密码查找新闻浏览新闻图片上传视频新闻删除用户管理用户图2.3 系统总体结构图2.4 系统结构设计在线新闻发布系统是一个基于B/S架构的系统。系统的用户在客户端通过IE浏览器来访问新闻发布系统。为了保证系统的安全性和稳定性,下面是这个系统的模型图。图2.4为新闻发布系统的结构设计图。用户管理员WEB应用系统平台新闻系统数据库系统图2.4 新闻发布系统设计结构图2.5 前台系统功能设计前台系统的功能主要是由几个不同的模块共同完成来实现的,功能比较简单,也容易实现,便于操作,如图2.5所示。前台系统登陆模块用户模块游客模块图2.5 前台系统设计图2.6 登录模块设计用户在使用登录模块的过程中,系统判断是否管理员用户,然后进入到相应的界面中去。管理员进入后可以进行添加删除等一系列的权限操作,普通用户进入后可以使用新闻发布系统的发布新闻以及达到一定积分后上传附件等一系列的操作。游客模块是详细设计中的新闻查找模块如果发现无正确的用户信息,系统将会给出提示,并且重新返回登录页面,如下图 2.6。首页权限验证账号验证登录注册错误信息提示结束权限出错账号异常或被禁用图2.6 登录模块示意图图2.6-1 登陆信息提示2.7 后台系统设计后台系统的功能主要涉及到管理员的权限,能具体的对用户和新闻信息等一系列信息的删除、添加、修改等功能。如下图所示。管理员登陆删除查询新闻删除用户其他功能分类显示新闻用户管理添加修改新闻新闻管理修改账号状态新闻添加附件图2.7 后台系统设计图第三章 详细设计3.1 登陆验证模块设计用户将自己的用户名和密码输入相应的文本框并登录,程序文件中的表单把数据提交到CheckLoginServlet页面。程序得到login.jsp页面的表单提交的数据后,从数据库的表中取出账户和密码与用户输入的登录名和口令完全一致的记录。如果记录存在,用户将成功的登录到系统中。否则,返回登录页面,并显示错误信息,提醒用户重新登录系统。登陆验证界面 如图3.1-1图3.1-1 登陆界面登陆流程图 如图3.1-2登陆Servlet接受数据主页面JavaBean数据操作传数据登陆信息真假图3.1-2 登陆流程图3.2忘记密码模块设计用户将自己的用户名和密码问题和密码答案填到FindPassword.jsp相应的文本框中,程序文件中的表单把数据提交到FindPasswordServlet中。Servlet得到的表单提交的数据后,从数据库的表中取出账户和密码提示问题和密码提示答案与用户输入的是否匹配。如果匹配存在,则Servlet就会跳转到修改密码页面用户重新输入两次密码。否则,会出现提示信息,并显示错误信息,提醒用户密码提示问题错误或者新密码两次输入不相等. 忘记密码界面 如图3.2-1图3.2-1忘记密码界面图3.2-2修改密码图3.2-3提示错误密码找回流程图 图3.2-3信息输入页面Servlet验证密码修改页面Servlet验证密码修改成功输入新密码真假真图3.2-3修改密码流程图3.3 新闻发布模块设计用户将标题、作者、类型和新闻内容输入到页面本文框内,然后把数据传到AddNewsServlet.程序得到页面的表单提交的数据后,通过javabean把数据写入数据库。其中数据库中会保存新闻的发布者。发布新闻界面 如图3.3-1图3.3-1发布新闻界面发布新闻流程图 如图3.3-2insert.jspAddNewsServlet处理Servlet验证添加成功Servlet验证数据库接收数据 图3.3-2发布新闻流程图3.4 更新新闻模块设计管理员可以通过新闻的id来修改新闻,其中通过新闻的id来取得新闻的详细内容。然后根据以前的内容可以任意的修改新闻。包括新闻的类型。如图3.4-1图3.4-1修改新闻检测图3.4-2修改新闻界面修改新闻流程图 图3.4-3update.jspinsert.jspUpdateNewsServletAddNewsServlet处理Servlet验证更新成功Servlet验证数据库接收数据图3.4-3修改新闻流程图3.5 删除新闻模块设计管理员可以删除新闻,其中删除新闻是根据页面中传递给servlet的新闻id值。其中删除时带一个删除的校验。如图 3.5-1图 3.5-1删除新闻删除新闻后的页面是通过Servlet后台跳转,无需前台页面跳转。如图 3.5-2图 3.5-23.6 查找新闻模块设计查找新闻分为匹配查找、分类查找,管理员、用户、游客将查找的信息输入相应的文本框,页面调用JavaBean得到数据,然后显示数据。匹配查找新闻信息界面 如图3.6-1分类查找新闻信息界面图3.6-2新闻查找界面新闻查找流程图 如图3.6-2查询页面输入信息输出查找信息Servlet验证调用JavaBean 图3.6-3查找新闻流程图3.7 附件添加模块设计管理员和一定权限的用户可以根据新闻的需要为新闻添加相应的附件,其中包括图片和视频。用户上传的文件系统会根据文件后缀名来判断是图片还是视频然后把附件上传到相应的文件夹中。其中根文件夹是Command设计的时候会根据每天的日期来存放附件。不同时间上传的附件会存放到不同的文件夹中。选择了文件后提交到AddCommandServlet然后添加到数据库。如:新闻的id,新闻的title,附件的位置Location,还有文件名FileName。添加附件页面 如图3.7-1图3.7-1附件添加模块界面添加附件流程图 如图3.7-2添加附件页面AddCommandServlet添加成功调用JavaBean选择附件文件图3.7-2修改帐户权限流程图3.8管理帐户模块设计管理账号模块设置包括删除账号以及对账号使用的状态修改。帐户管理界面 如图3.8-1图3.8-1帐户管理界面图3.8-2帐户管理检测用户管理页面UpdateUserServlet添加成功数据库用户ID图3.8-3帐户管理流程图第四章 调试与测试从上面系统设计可知,本系统的界面共分为如下三大部分。1、游客模块,用于游客使用该系统,游客只享有查询新闻功能。2、用户模块,用于用户进行新闻浏览,为了满足用户使用本流程和要求,它包括以下几个部分:用户注册、登录用户、密码找回、发布新闻和浏览新闻。对于发布新闻100条以上的用户,积分100权限发生改变。编程可以发布带附件的新闻。3、管理模块,用于管理员进行新闻信息管理(增、删、查、改)、新闻附件添加、帐户管理。这些整体关系的设计,下面对每个部分给出主要界面的设计及其设计思路。4.1 前台测试 打开IE输入以下网址 http:/localhost:8080/news 然后确定就进入以下新闻主界面 如图4.1-1图4.1新闻主界面进入新闻页面后在点页面上的”登陆”按钮 输入用户名和密码后,如果输入正确,那么就会在主页面上显示你的帐号、权限和你所拥有的积分 ,登陆后的界面 如图4.1.2图4.1.2 登陆后的界面进入登陆后面以后就可以点”发布新闻”按钮,然后就进入发布新闻页面对新闻进行发布,发布新新闻界面如图4.3图4.1.3 发布新闻界面当用户达到积分100以上即可享有更高级的权限对新闻添加附件用户积分的增加是根据每发布一条新闻就增加一个积分。如图4.4图4. 用户发布附件新闻界面4.2 后台测试进入后台页面需要管理员用户,判断管理员用户是数据库的permission字段,假如该字段的值为admin,那么该账号登录后即可享有管理员用户的所有功能。管理员登陆页面 如图4.2.1图4.2.1管理员登陆后界面正确进入后面页面后,接可以对新闻进行删除,点删除新闻按钮后就进入到相应Servlet前台页面不会发生跳转后台Servlet发生跳转,如图4.2.2 图4.2.2管理员删除新闻界面图4.2.3管理员删除新闻后的界面同时管理员管理用户也可以进行删除和权限的控制,点删除帐号按钮后就把删除用户的id传到Servlet中。假如想修改用户状态只需点击操作用户按钮即可,删除帐号页面如图4.2.4图4.2.4删除帐号页面图4.2.5删除帐号后页面图4.2.6修改帐户权限页面此时的用户已经被管理员禁用了 如图 4.2.7图 4.2.7用户权限被修改后效果第五章 主要技术问题解决关键技术问题分为4个,安全性问题、附件上传问题、页面跳转到Servlet问题和MVC分层问题。5.1 安全性问题该新闻系统是基于三种登陆模式来开发的。对于用户使用者和非用户使用者,我们把用户使用的页面存放在一个NewsMain文件夹中。并编写了拦截器Filter。当没有用户的使用者或者是恶意猜测页面的攻击者,拦截器开始工作跳转到根路径下的login.jsp。提醒使用者可以注册帐号以及可以以游客的身份登陆。这是第一层的安全性。对于有帐号的使用者,我们在登陆的时候取出数据库user表中的permission字段,根据permission字段判断帐号的权限。假如permission字段为admin那么该帐号就是管理员用户,假如为normaluser那么该用户就是只能发布文字新闻的用户。假如为commanduser那么该用户就是可以发布带附件的新闻用户。5.2 附件上传问题对于附件的上传,使用的是apache 的commons-fileupload,commons-io。当初的想法是想使用jspSmartUpload来进行上传,但是比较了两个组件的性能以及方便性后选择了前者,后者首先不开源,其次后者想要获得上传附件的相关信息必须先上传后才能获得,并且jspSmartUpload已经不出新版本了。起初附件上传的时候想法是在数据库中创建一个Command表,把附件的位置以及附件名从附件中获取后存到数据库中,方便以后维护,并且想和新闻绑定,在传附件的时候把新闻的id和新闻的标题一起传过去Servlet处理,然后存进数据库。但是文件上传是以二进制的数据格式传进去Servlet,是不能获取具体的数据的。那么对于这个考虑,我设想了提交两个表单,一个是隐藏表单,用于传文字等信息。然后通过JS获取隐藏表单中的值以URL的形式传给Servlet。代码如下:input type=hidden name=newstitle value=input type=hidden name=newsid value=返回 function ok() id = form2.newsid.value; title= form2.newstitle.value; 这里是把隐藏表单的值给第一个表单并以URL的形式传进去Servlet form1.action=/news/AddCommandServlet?newsid=+id+&newstitle=+title; form1.submit(); 5.3 页面跳转问题这个是解决安全性问题后发现的一个新问题,因为有帐号的使用者所有页面是在NewsMain中的,所以每次调用这些页面的时候URL地址栏就是http:/localhost:8080/news/NewsMain/.当然我们是使用Servlet来跳转的,所以地址栏都是http:/localhost:8080/news/XXXServlet。假如我们添加新闻的时候不想添加想返回主页面使用这个跳转的话我们的地址栏就会变成http:/localhost:8080/news/NewsMain/XXX.jsp。那么我们想使用其它功能的时候是跳转到Servlet的就会出现这种错误了 如图 5.1图 5.1页面跳转错误出现的错误解决的方法就是写一个Servlet来进行页面的跳转,那么对于一个合格的系统分页功能是必须有的,那么设计到下一页的时候也不能使用简单的HTML的标签来翻页了。同时也是需要写一个分页的Servlet来解决路径的问题。同时还可以编写JS代码来返回上一个Servlet,代码: 返回但是此代码使用会引起不方便,用户假如点击会把之前的操作返回。安全性很差只用于不提交给任何Servlet的页面中使用,如添加新闻的insert.jsp。5.4 MVC分层问题对于一个合格的系统是需要分层的,控制层、视图层、数据库链接各个层需要低耦合。想到大部分都是在JSP页面中使用JAVABEAN来调用数据库,以及通过页面来控制页面的跳转,最后就是想可以通过Servlet来做控制层,页面不跳转!在Servlet中跳转。对于数据库的操作,编写一个bean来存放需要使用的数据,对这个bean进行封装。并存放到一个List中。前端的JSP直接使用bean不需要长期连接数据库,减低数据库的长期连接。实现各个视
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 海洋测绘员班组安全评优考核试卷含答案
- 合成碳膜电位器制造工诚信评优考核试卷含答案
- 公司漆器镶嵌装饰工合规化技术规程
- 泥瓦作文物修复师岗前基础理论考核试卷含答案
- SMED快速换模(简版)
- 2026年北师大版(2022)小学劳动技术二年级上册期末综合测试卷及答案
- 机械臂路径规划技术要求
- 广东省珠海市某中学2025-2026学年九年级上学期第一次月考物理试题(含答案)
- 专题02 二次函数【知识梳理+解题方法+专题过关】-2025-2026学年九年级数学上学期期中期末挑战满分冲刺卷(人教版)(原卷版)
- 第二章 声现象 单元练习(解析版)
- 弱传播课件教学课件
- 2025年新版医疗器械监督管理条例培训考试试卷及答案
- 子宫超声输卵管造影技术
- 2025年中建项目经理能力测试题及答案
- DB50-T 1512-2023 现制现售饮用水卫生管理规范
- 核心人才协议书
- 辅警2025面试题目和答案
- 如何开好班前班后会培训
- 加油站建设项目社会稳定风险评估报告
- GB/T 15849-2025密封放射源的泄漏检验方法
- 中医医师岗位管理制度
评论
0/150
提交评论