JSP新闻发布系统课设报告.doc_第1页
JSP新闻发布系统课设报告.doc_第2页
JSP新闻发布系统课设报告.doc_第3页
JSP新闻发布系统课设报告.doc_第4页
JSP新闻发布系统课设报告.doc_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

精品文档 程序语言综合课程设计设计报告学院:信息工程学院组长:黄敏(计算机中加141, 06号)成 员:刘存国(计算机中加141, 16号)指导老师杨书新完成时间:2016年07月1日1欢迎下载。目 录第一章 需求分析11.1 功能需求11.2 性能需求11.3 用户界面需求21.4 安全需求2第二章 总体设计32.1 系统功能描述32.2 E-R模型42.3 系统功能模块划分52.4 系统流程图6第三章 数据库设计73.1概念设计73.2逻辑设计73.3物理设计7第四章 详细设计与实现94.1前台界面和功能实现94.2后台界面和功能实现12总结25致谢251欢迎下载。第一章 需求分析1.1 功能需求本系统的目的是实现新闻发布系统的基本功能。(1)查看新闻任何用户均可以使用查看新闻功能,查看新闻功能在新闻首页显示最新新闻,用户可以点击首页的新闻标题链接查看相关新闻内容,可以根据新闻首页的分类新闻(如国内、社会等)查看你想要了解的新闻消息,也可以通过或者通过点击自己感兴趣图片的下方链接来查看相关新闻。(2)站内新闻检索功能任何用户均可以使用新闻搜素功能,可通过关键词以及标题来搜索符合的新闻。(3)Admin管理员登录功能当用户需要使用新闻管理功能时,需要先以管理员的身份登录系统,在地址栏中输入管理员登录的地址,进入登录页面。用户在登录页面输入用户名和密码以及随机产生的验证码,若登录失败,则清空输入,并简要显示错误原因,管理员登录页面等待下一次登录,否则登录成功,从而使用新闻管理功能。(4)新闻类别管理Admin管理员登录后,可以对新闻的类别进行添加修改删除功能。(5)新闻发布功能获得权限的用户可以使用新闻发布功能。用户通过点击“添加新闻”项进入新闻发布页面,填写新闻的主题、标题、作者、摘要以及相关内容和图片,按提交键即可,发布时间取当前系统时间,不需用户填写。(6)新闻管理功能管理员登录后,可进行新闻管理操作,包括对现有新闻的删除和修改。在管理页面上,用户可通过单击每条记录右侧的“修改”或“删除”超链接来进行操作。当管理员本次维护结束后,可通过“login out”退出该页面。1.2 性能需求(1)Tomcat可以免安装,体积小,运行效率高,能很方便的在Windows和linux系统下发布。同时使用mysql数据库,安装方便且免费使用,mysql在Windows和linux下都能被良好的支持。而JSP不但可以使用Myeclipse,也可使用dreamweaver编辑,甚至记事本等文本编辑工具即可编写,因此对系统运行环境非常低,小型服务器和家用电脑均作为本系统运行环境。 (2)界面设计友好美观、数据要准确安全可靠;实现对新闻信息的添加、修改、删除,便于更新网站内容;系统最大限度地实现易维护性和易操作性;对于一个新闻发布系统而言新闻信息是很多的,而且使用的人数较多,所以对系统的安全性有着比较高的要求,对于数据库,要设置不同用户的权限,数据的修改必须由合法用户操作。1.3 用户界面需求网站页面是用户直接访问的页面,所以必须要让用户访问就能看出来这个网站的主题思想是什么,一下就能体现出这个网站的中心内容。并且首页的模块之间要联系紧密,更好的让用户理解明白。1.4 安全需求由于使用JSP编写的程序代码隐蔽,在客户端仅可以看到由JSP输出的动态HTML文件,因此只要编写程序时注意严谨性,防止SQL注入和cookies欺骗,整个系统的安全就能得到保障,同时也能防止别人抄袭源代码。本系统的管理员可以有多名,为防止暴力猜解密码,在设计后台登录模块时需考虑验证码的设计。第二章 总体设计高效的新闻发布系统可简便维护工作,使用新闻发布系统,管理员只需设计标题、内容和图片等新闻,系统将自动生成对应的网页,使新闻发布和管理变得很轻松。而对于前台界面,为适应多个用户的需求,必须达到友好、方便、简洁和易用的特点。本文将根据前期的需求分析,对新闻发布系统进行总体设计。2.1 系统功能描述新闻发布及管理系统包括新闻类别管理、新闻发布管理、新闻查询和图片处理等模块。具体描述如下。1新闻类别管理: (1)新闻类别的录入,包括类别名称等信息; (2)新闻类别的修改; (3)新闻类别的删除; (4)新闻类别的查询。 2新闻发布管理: (1)基本新闻信息的发布,包括新闻标题、新闻内容和所属类别等; (2)基本新闻信息的修改; (3)基本新闻信息的删除; 3图片处理模块: (1)选择图片文件;(2)上传图片文件; (3)存储图片新闻;(4)修改新闻图片; (5)删除新闻图片;(6)在网页中浏览新闻图片。 4新闻查询模块: (1)按照新闻类别分页显示新闻;(2)按照日期分页显示新闻;(3)按照新闻发布者查询。5系统用户管理功能: (1)系统用户信息的录入,包括用户名和密码等信息;(2)系统用户信息的修改; (3)系统用户信息的删除。2.2 E-R模型根据分析可划分出新闻信息、用户信息、评论信息以及新闻信息类别和几个实体,具体E-R模型如下。(1) 新闻信息新闻信息主题上传图片内容标题作者摘要图2-1 新闻信息实体的E-R图(2)用户信息用户信息邮 箱用户名名性 别密 码图2-2 用户信息实体的E-R图(3)新闻类别信息新闻类别信息类别名称类别ID名图2-3 新闻类别信息实体的E-R图M1拥有用户信息新闻信息新闻类别信息M1属于图2-4 ER关系模型图2.3 系统功能模块划分从功能的内容可以看到,该新闻发布系统可以实现6个完整的功能。我们根据这些功能,设计出系统的功能模块。新闻发布及管理系统系统用户管理新闻更新管理新闻查询模块新闻添加管理新闻发布管理新闻类别管理 图2-5 系统功能模块图新闻发布及管理系统的功能模块之间的关系: 前台系统 后台系统新闻删改管理基本信息发布查看新闻新闻图片发布新闻类别管理 数据库图2-6 新闻发布及管理系统的功能模块图2.4 系统流程图开始 新闻系统首页类别管 理新闻发 布 管理员登录新闻修 改新闻删 除查看新 闻注册登 录退出图2-7 系统的基本流程图任何用户从浏览器输入地址进入本新闻发布系统后首先进入新闻主界面,即可进行新闻的查看,根据标题或关键字进行浏览自己喜欢的新闻。点击登录与注册,进入登录页面,未注册的用户能够选择注册,已注册的用户输入自己的用户名和密码可进入后台管理,有新闻的发布、新闻的管理、新闻的类别管理等。点击login out即可退出本新闻系统。第三章 数据库设计3.1概念设计新闻发布系统中,主要需要以下数据来保持相应的信息:1新闻信息表:用于保存新闻信息的基本信息。2管理员信息表:用于保存新闻发布系统管理员的信息。3新闻主题信息表:用于保存新闻主题信息。3.2逻辑设计本系统主要涉及四张表:新闻信息表(newsinfo)、管理员表(userinfo)、主题信息表(topic)。前面我们已给出他们的E-R图。上述四表的关系如下图所示:图3-1 逻辑关系图3.3物理设计 本系统主要涉及四张表:新闻信息表(newsinfo)、管理员表(userinfo)、主题信息表(topic)。我们采用了MySql数据库,在数据库中使用数据表来储存现有的新闻信息。1. 存储新闻信息的newsinfo表,其中表的结构如表3-1所示。表3-1 新闻信息表newsinfo名称字段数据类型主键非空新闻IDidInt(10)是是新闻标题titleVarchar(50)否是新闻发布人authorVarchar(30)否否新闻发布时间timeVarchar(20)否是新闻图片路径pic_pathVarchar(80)否否新闻内容contentVarchar(100)否是新闻摘要abstrateVarchar(50)否否2. 使用数据表userinfo来储存管理员的信息,表的结构如下表3-2所示。表3-2 管理员信息表userinfo名称字段数据类型主键非空管理员IDtidInt(11)是是管理员名称tnameVarchar(20)否是管理员密码tpassVarchar(30)否否 3. 使用数据表topic来储存新闻主题的信息,表的结构如下表3-4所示。 表3-4 新闻类别信息名称topic名称字段数据类型主键非空主题IDidInt(11)是是主题名称topic_nameVarchar(30)否是 第四章 详细设计与实现4.1前台界面和功能实现4.1.1主页功能介绍1在index.jsp页面有普通用户登录窗口,用户可以在主页面浏览新闻,和查看热点新闻列表和每条新闻的详情,用户点击“登录与注册”后在窗口输入账号密码后,登入成功,或者注册。 2主页面的名称为index.jsp 如下图图4-1 前台主页面图任何用户输入域名后直接进入到主页面,以上是从数据库加载的新闻列表和新闻话,题在主页实现的功能有:1.查看从数据库加载出来所有的新闻主题、新闻列表;2.用户可以点击右上角的“登录与注册”,跳转到后台登录界面。 3主页的主要实现代码 < > 首页 新闻 图片 视频 娱乐 时尚 体育 财经 汽车 房产 购物 博客 登入与注册 %List list = (List) request.getAttribute(list);if (list = null | list.size() 1) out.print(没有任何新闻信息!); else %15)str=str.substring(0,15)+.;%a href=Chakan.jsp?title= 天下要闻         迷惘的人,是因为迷失在物欲纵横的世界里,无法自 拔,终日无所事事,庸庸碌碌过完一生,如行尸走肉;人不应作没有思 想的芦苇,随波逐流。有梦的人,无论身处何处,都会有梦想指引前行 ,一路不觉所累,前行的才会更远,变得更强。我一直拥有一个梦想, 因为“他”,即便沉舟侧畔,依旧千帆过。梦想与我一路逐波,我与梦 想一路相随。 4.2后台界面和功能实现4.2.1后台功能介绍后台的主要功分为三块:(1)后台管理员登录与注册。(2)新闻类别的添加、删除;(3)新闻的添加、删除、查询、修改;4.2.2登录与注册界面1后台登入界面如下图:图4-2 后台登录界面图 2后台注册界面如下图:图4-3 后台注册界面图3实现页面主要代码: 登录 | 注册 忘记密码 |意见反馈 | 返回首页 账号:    密码:    性别:    男      女邮箱:     我已阅读并同意相关服务条款和隐私政策           4后台主界面图4-4 后台主界面图主界面主要加载了当前管理员,登录状态,安全退出按钮,和导航栏的菜单功能及后台系统的功能介绍。4.2.3新闻操作功能 1对新闻操作界面如下图4-5 后台对新闻添加界面图图4-6 后台对新闻修改界面图1图4-7 后台对新闻修改界面图2图4-8 后台新闻列表和删除操作界面图2实现主要代码(1)新闻添加代码: 主题   % List list = (List) request.getAttribute(list);if (list = null | list.size() 1) out.print(没有任何主题信息!); else for (topicBean td : list)%option value= 标题 作者 摘要 内容 上传图片 (2)新闻修改代码: 修改新闻: 主题标题作者摘要内容上传时间图片上传路径修改%List list = (List) request.getAttribute(list);if (list = null | list.size() 1) out.print(没有任何新闻信息!); else for (XinwenBean xw : list) % input type=hidden name=time value= (3)新闻查询代码: 查询新闻: 按时间查询:          按作者查询:          按主题查询:          (4)新闻删除代码 删除新闻: 主题标题作者摘要内容上传时间图片上传路径删除%List list = (List) request.getAttribute(list);if (list = null | list.size() 1) out.print(没有任何新闻信息!); else for (XinwenBean xw : list) % input type=hidden name=time value= 4.2.4话题操作功能 1对新闻操作界面如下: 图4-9 后台主题添加和删除操作界面图2实现主要代码:(1)话题添加代码: 添加主题: 主要Servlet代码:tryClass.forName(com.mysql.jdbc.Driver);String url = jdbc:mysql:/localhost:3306/xw;String username = root;String password = hm6666;Connection conn = DriverManager.getConnection(url,username,password); Statement stat=conn.createStatement();String sql = insert into topic(topic_name) values(?);PreparedStatement ps = conn.prepareStatement(sql);ps.setString(1, topic_name); temp=ps.executeUpdate(); if(temp=1) out.println(alert(添加新闻成功!););stat.close();ps.close();conn.close();elseout.println(alert(添加新闻失败!);); catch (Exception e) e.printStackTrace();response.sendRedirect(findTServlet); (2)话题删除代码: 删除主题:% List list = (List) request.getAttribute(list); if (list = null | list.size() 1) out.print(没有任何主题信息!); else for (topicBean td : list) % option value= 主要Servlet代码:request.setCharacterEncoding(UTF-8);String topic_name =request.getParameter(topic_name);System.out.println(topic_name);try Class.forName(com.mysql.jdbc.Driver); String url = jdbc:mysql:/localhost:3306/xw;String username = root; String password = hm6666; Connection conn = DriverManager.getConnection(url,username,password);String sql = delete from topic where topic_name=?;PreparedStatement ps = conn.prepareStatement(sql);ps.setString(1, topic_name);ps.executeUpdate();ps.close();conn.close(); catch (Exception e) e.printStackTrace(); response.sendRedirect(findTServlet);4.2.5全局页面分页功能1系统中使用分页技术界面如下:图4-10 前台显示新闻分页界面图图4-11 后台显示用于修改新闻分页界面图图4-12 后台显示用于删除新闻分页界面图 2分页技术主要代码如下: request.setCharacterEncoding(UTF-8);int currPage = 1; / 当前页码if(request.getParameter(page) != null) / 判断传递页码是否有效currPage = Integer.parseInt(request.getParameter(page);/ 对当前页码赋值NewsDao dao = new NewsDao();/ 实例化BookDaoList list = dao.find(currPage);/ 查询所有新闻信息request.setAttribute(list, list);/ 将list放置到request中int pages ; / 总页数int count = dao.findCount();/ 查询总记录数if(count % XinwenBean.PAGE_SIZE = 0) / 计算总页数pages = count / XinwenBean.PAGE_SIZE; / 对总页数赋值elsepages = count / XinwenBean.PAGE_SIZE + 1; / 对总页数赋值StringBuffer sb = new StringBuffer(); currPage-; sb.append( + 上一页 + ); sb.append(); currPage+; sb.append( + currPage +/+pages+ ); sb.append(); if(currPage=pages) currPage=pages; else currPage+; sb.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论