WEB课程设计报告_第1页
WEB课程设计报告_第2页
WEB课程设计报告_第3页
WEB课程设计报告_第4页
WEB课程设计报告_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

1、第一章 需求分析随着网络的飞速发展和普及,越来越多的 用户习惯上网浏览新闻。本系统的主要目的就是为用户提供一个方便、及时的网上新闻发布、浏览平台。利用本系统,用户可以直接在网上发布新闻信息并根据自己的需要对新闻进行浏览、检索、增加、或修改。本系统遵循软件工程标准,并按照软件工程规定的流程进行项目的开发。1.1 安全需求由于使用JSP编写的程序代码隐蔽,在客户端仅可以看到由JSP输出的动态HTML文件,因此只要编写程序时注意严谨性,防止SQL注入和cookies欺骗,整个系统的安全就能得到保障,同时也能防止别人抄袭源代码。本系统的管理员可以有多名,为防止暴力猜解密码,在设计后台登陆模块时需考虑验

2、证码的设计。使用Tomacat6.0为系统地发布平台,发布方便,安全可靠性比较高。1.2 性能需求Tomacat可以免安装,体积小,运行效率高。能很方便的在Windows和Linux系统下发布。同时使用MySql5.0数据库,安装方便,而且免费使用,MySql在Windows XP以及Linux下都能被良好的支持。而JSP不但可以用Eclipse,也可以用Dreamweaver编辑,甚至记事本等文本编辑工具即可编写,因此对系统运行环境非常低,小型服务器和家用电脑均可作为本系统运行环境。1.3 功能需求本新闻发布系统将实现以下几个功能(1) 查看新闻功能:任何用户均可以使用查看新闻功能。查看新闻

3、功能在首页显示最新新闻,用户可点击文章标题查看新闻的详细内容,可以点击新闻的类别进入分类列表。(2) 站内新闻检索功能:任何用户均可以使用新闻搜索功能。在新闻查看页面上,用户可以通过在单选按钮中选择检索方式,如新闻标题,关键字,或者正文,然后输入检索条件搜索符合新闻。这里提供的是模糊搜索功能,即只要在查询字段只能感包含用户输入的关键内容就认为是符合查询条件的记录。查询结果同样以分页的方式显示。(3) 新闻点击率统计: 通过计数器对用户对新闻的点击进行统计,实时显示新闻的点击率。(4) 管理员登录功能:当用户需要使用新闻管理功能时,需要先以管理员身份登录系统。在地址栏中输入管理员登录页面的地址,

4、进入管理员登录页面。用户在登录页面输入用户名和密码以及随机产生的验证码,若登录失败,则清空输入,并简要显示错误原因,管理员登录页面等待下一次登录。(5) 新闻类别管理:管理员登录后,可以对新闻的类别进行添加修改删除操作。(6) 新闻发布功能:获得权限的用户可以使用发布新闻功能。用户通过在系统菜单栏上单击“添加新闻”项可以进入发布新闻页面。发布新闻时,需要填写新闻的标题和内容,发布时间取当前系统时间,不需要用户填写。(7) 新闻管理功能:当用户作为管理员登录系统后,可以进行新闻管理操作,包括对现有新闻的修改和删除。在管理页面上,用户可以通过单击每条记录右侧的“编辑”和“删除”超链接来进行操作。当

5、管理员的本次维护工作结束后,可通过单击“退出”超链接来注销管理员身份。(8) 评论功能:任何用户在输入标题和个人名称后可对新闻进行评论,用户可以查看所有评论,管理员可以查看和删除评论。第二章 系统开发模式及技术2.1 JSP简介 JSP(Java Server Pages)是一种建立在Servlet规范提供的功能之上的动态网页技术,和ASP类似,他们都是在通常的网页中嵌入脚本代码,JSP文件中嵌入的是Java代码和JSP标记。 用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。2.2 JSP的特点 JSP技术在多个方面加速了动态Web页面的开发,具有以下特点

6、。(1) 将内容的生成和显示进行分离使用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面。使用JSP标识或者小脚本来生成页面上的动态内容(内容是根据请求来变化的,例如请求帐户信息或者特定的一瓶酒的价格)。(2) 强调可重用的组件绝大多数JSP页面依赖于可重用的,跨平台的组件(JavaBeans或者EnterpriseJavaBeansTM组件)来执行应用程序所要求的更为复杂的处理。开发人员能够共享和交换执行普通操作的组件,或者使得这些组件为更多的使用者或者客户团体所使用。基于组件的方法加速了总体开发过程,并且使得各种组织在他们现有的技能和优化结果的开发努力中得

7、到平衡。(3) 采用标识简化页面开发Web页面开发人员不会都是熟悉脚本语言的编程人员。JavaServerPage技术封装了许多功能,这些功能是在易用的、与JSP相关的XML标识中进行动态内容生成所需要的。标准的JSP标识能够访问和实例化JavaBeans组件,设置或者检索组件属性,下载Applet,以及执行用其他方法更难于编码和耗时的功能。 (4) 健壮性与安全性由于JSP页面的内置脚本语言是基于Java编程语言的,而且所有的JSP页面都被编译为JavaServlet,JSP页面就具有Java技术的所有好处,包括健壮的存储管理与安全性.(5) 良好的移植性:作为Java平台的一部分,JSP拥

8、有Java编程语言一次编写,隋处运行的特点。(6) 企业级的扩展性和性能:当与Java2平台、企业版(J2ee)和EnterpriseJavaBeans技术整合时,JSP页面将服务器JSP页面中的程序代码的识别就是依靠一些基本指令完成.2.3 JSP技术JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。2.4 访问WEB数据库常见技术目前在WINDOWS环

9、境下有多种访问WEB数据库的技术,主要有:(1) 公共网关接口CGI(Common Gateway Interface)CGI是较早实现的技术。适用于多种服务器平台,如UNIX、WINDOWS等,但CGI的开发成本高、维护困难、功能有限、不具备事务处理功能、占用服务器资源较多。(2) INTERNET数据库连接器IDC(Internet Database Connector)。IDC集成在ISAPI(Internet Server API)中,充分利用了DLL技术,易扩充,但编程较CGI更为复杂,只适用于小型数据库系统。(3) 先进数据库连接器ADC(Advance Database Conn

10、ector)ADC提供了ActiveX Control来访问数据库,它的主要特点是数据查询由用户端浏览器执行,因而需将服务器端数据库中的部分记录下载到用户端,系统开销较大、响应慢,只适用于特别频繁的数据库查询操作。(4) JAVA/JDBC语言编程JAVA语言是一种面向对象、易移植、多线程控制的语言,可通过JDBC去连接数据库。用JAVA/JDBC编写的软件可移植性强,适用于多种操作系统,但其执行效率和执行速度还不理想,目前无法建立高效、高速的应用。(5) 动态服务器页面JSP(Active Server Page)JSP是微软公司推出的WEB应用开发技术,着重于处理动态网页和WEB数据库的开

11、发,编程灵活、简洁,具有较高的性能,是目前访问WEB数据库的非常好的选择。2.5 本系统采用的数据库访问技术 本新闻发布系统使用JDBC访问MySql数据库,JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC为工具/数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯 Java API 编写数据库应用程序,同时,JDBC也是个商标名。 有了JDBC,向各种关系数据发送SQL语句就是一件很容易

12、的事。换言之,有了JDBC API,就不必为访问Sybase数据库专门写一个程序,为访问Oracle数据库又专门写一个程序,或为访问Informix数据库又编写另一个程序等等,程序员只需用JDBC API写一个程序就够了,它可向相应数据库发送SQL调用。同时,将Java语言和JDBC结合起来使程序员不必为不同的平台编写不同的应用程序,只须写一遍程序就可以让它在任何平台上运行,这也是Java语言“编写一次,处处运行”的优势。 Java数据库连接体系结构是用于Java应用程序连接数据库的标准方法。JDBC对Java程序员而言是API,对实现与数据库连接的服务提供商而言是接口模型。作为API,JDB

13、C为程序开发提供标准的接口,并为数据库厂商及第三方中间件厂商实现与数据库的连接提供了标准方法。JDBC使用已有的SQL标准并支持与其它数据库连接标准,如ODBC之间的桥接。JDBC实现了所有这些面向标准的目标并且具有简单、严格类型定义且高性能实现的接口。访问并操纵数据库服务器中的数据。JDBC由JSP技术支持,其数据库访问模型如下图所示。图2-1 采用JDBC技术实现数据库访问模型2.6 B/S开发模式 B/S结构,即Browser/Server-浏览器服务器结构,浏览器发送请求而服务器应答请求。其工作原理如下浏览器WEB服务器数据库服务器SQL数据请求返回结果Web请求返回HTML 图2-2

14、 B/S结构的三层模型 前台通过IE、Firefox等浏览器向Web服务器发送HTTP请求,web服务器通过JSP和一些中间件访问后台数据库,并将操作的结果以HTML页面的形式返回给前端的浏览器。比与C/S模式,采用B/S模式用户的操作更加简单,不像C/S需要在客户端进行客户端程序,只需要一个通用浏览器即可完成数据的请求与接收,大幅的减少了客户端的维护工作。同时,B/S模式使用的技术是Internet的Web技术,因而更适合于网上的信息发布。第三章 总体设计因为网络中新闻发布的频率非常高,如果没有一个高效的新闻发布管理系统,则维护工作将非常繁琐,浪费很多时间和精力。通过使用新闻发布系统,管理员

15、只需设置标题、内容和图片等新闻,系统将自动生成对应的网页,使新闻发布和管理变得很轻松。而对于前台界面,为适应多个用户的需求,必须达到友好,方便,简洁,易用的特点。本文将根据前期的需求分析,对新闻发布系统进行总体设计。3.1 系统功能描述新闻发布系统包括新闻类别管理、新闻发布管理、新闻搜索、留言评论管理等模块。具体描述如下:(1)新闻类别管理:a.新闻类别的添加;b.新闻类别的修改; c.新闻类别的删除;(2)新闻发布管理:a.基本新闻信息的发布,包括新闻标题、新闻内容等;b.基本新闻信息的修改;c.基本新闻信息的删除;(3)新闻统计模块a.对点击次数的统计b.根据点击次数排除点击排行榜c.根据

16、发布时间的先后时间排出最新文章(4)新闻搜索模块:a.按照新闻标题搜索; -b.按照新闻内容搜索。 c.搜索结果的显示(5)评论管理模块:a.网友发表评论、留言;b.对留言的过滤c.管理员对留言的管理3.2 E-R模型根据分析可划分出新闻信息、新闻类别信息、评论信息和用户信息和几个实体,其具体的E-R模型如下(1) 新闻信息 图3-1 新闻信息实体的E-R模型(2) 评论信息 图3-2 评论信息实体的E-R模型(3) 用户信息 图3-3 用户信息实体的E-R模型(4)新闻类别信息图3-4 新闻类别信息实体的E-R模型(5)ER关系图图3-5 ER关系模型图3.3 系统流程图管理员登陆新闻查看新

17、闻搜索评论新闻发布新闻管理类别管理评论管理退 出新闻系统首页开 始 图3-6 系统的基本流程 任何用户从浏览器输入地址进入本新闻发布系统后首先进入新闻主界面,即可进行新闻的查看,根据标题或内容进行新闻的搜索,以及进入评论页面进行新闻的评论。输入管理员登录页面的地址,进入登录页面,用户输入用户名和密码以及正确的验证码后可进入后台管理,有新闻的发布,新闻的管理,新闻类别的管理,新闻评论的管理等。断开与服务器的连接即退出本新闻系统。3.4 数据流图(1)前台数据流图 图3-7 前台的数据流图 数据库中有两个表用于前台的数据的存放,新闻信息表newsinfo中存放新闻的内容,标题,点击量等数据,通过各

18、种命令与前台进行数据交换。留言信息表存放用户的留言。(2)后台数据流图 图3-8 后台数据流图3.5 系统功能模块划分 从功能描述的内容可以看到,本系统可以实现五个完整的功能。根据这些功能,设计出系统的功能模块,如下图所示。图3-9 新闻发布总体系统功能模块示意图3.6 数据库设计本系统采用MySql数据库,在数据库中使用数据表article来储存现有的新闻信息。表的结构如表字段名称数据类型说明newsidInt(10) unsigned新闻编号,自动增加(主键)biaotiVarchar(45)新闻的标题fabushijiandatetime发布时间pinglunInt(10) unsign

19、ed新闻评论idlaiyuanVarchar(45)新闻来源tupianVarchar(45)新闻图片路径名称ZhaiyaoText新闻摘要guanjianziVarchar(45)新闻关键字classidInt(10) unsigned 新闻类别idzhengwenText 正文fabiaozheVarchar(45)发表者banquanxinxiVarchar(45) 版权信息dianjialvInt(10) unsigned 点击率,浏览一次增加1 表3-1 新闻信息表newsinfo 使用数据表users来储存管理员的信息,表的结构如下表字段名称数据类型说明usernameVarcha

20、r(45)管理员用户名userpasswdVarchar(128)管理员用户密码 表3-2 管理员信息表users使用数据表comment来储存新闻评论信息,表的结构如下表字段名称数据类型说明newsidInt(10) unsigned新闻idComTimetimestamp评论时间ComPersonVarchar(45)评论者Contenttext评论内容 表3-3 新闻评论comment使用数据表classes来储存新闻类别信息,表的结构如下表字段名称数据类型说明classidInt(10) unsigned类别id自动增长classnameVarchar(45)类别名称 表3-4 新闻类

21、别信息名称classes第四章 详细设计4.1 前台系统4.1.1 新闻的查看主页面如下图图4-1 系统主页界面效果任何用户在浏览器输入网址后进入本站界面,即可查看新闻标题及发布时间,新闻的评论、新闻的点击率等,单击任意一条新闻标题即可查看新闻内容。 图4-2 新闻内容界面效果显示一条新闻的主要代码为: a href=commentofnew.jsp?newid= 评论 条 评论 条 我要留言: input name=newsid type=hidden value=/ 4.1.2 评论功能的实现 评论管理的数据流图如下 图4-3 评论管理数据流图评论与浏览页面:图4-4 评论浏览添加评论页面

22、评论实现的事务处理相关代码:protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException / TODO Auto-generated method stubdoPost(request, response);/* * see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */protected void doPost(H

23、ttpServletRequest request, HttpServletResponse response) throws ServletException, IOException / TODO Auto-generated method stubrequest.setCharacterEncoding(gbk);response.setCharacterEncoding(gbk);int newsid = Integer.parseInt(request.getParameter(newsid);String comment = request.getParameter(comment

24、text);String comperson = request.getParameter(person);String type = request.getParameter(type);PrintWriter pw = response.getWriter();pw.println(newsid);pw.println(comment);Comment comm = new Comment();comm.setContext(comment);comm.setNewid(newsid);comm.setComPerson(comperson);int result = ModifComme

25、nt.insert(comm);if(type.equals(new)response.sendRedirect(oneofnews.jsp?newid=+newsid);else if(type.equals(comment)response.sendRedirect(commentofnew.jsp?newid=+newsid);else if(type.equals(admincomment)response.sendRedirect(adminadmin_commentview.jsp?newid=+newsid);添加一条评论的代码为:public class InsertComme

26、nt public static void insert(Comment comment) DBConnectPool dbp=DBConnectPool.getInstance(); Connection conn=dbp.getConnection(); PreparedStatement pstmt=null; try pstmt=conn.prepareStatement(inser into comment values(?,?,?,?);pstmt.setInt(1, comment.getNewid();pstmt.setDate(2, (java.sql.Date)(new D

27、ate();pstmt.setString(3,comment.getComPerson();pstmt.setString(4, comment.getContext();pstmt.executeUpdate(); catch (SQLException e1) / TODO Auto-generated catch blocke1.printStackTrace();finallytryif(pstmt!=null) pstmt.close();catch(SQLException el) el.printStackTrace(); 4.2 后台管理系统的设计4.2.1 后台登陆模块 图

28、4-5 后台登陆界面当用户在对话框输入正确的用户名、密码及随机产生的验证码时,进入后台页面lf.jsp,否则回到登陆页面login.jsp并提示原因。登录事务处理相关代码如下:protected void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException / TODO Auto-generated method stubdoPost(request, response);/* * see HttpServlet#doPost(HttpServle

29、tRequest request, HttpServletResponse * response) */protected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException request.setCharacterEncoding(gbk);response.setCharacterEncoding(gbk);String username = request.getParameter(name);String passwd = re

30、quest.getParameter(pass);boolean flag = false;User user = (new SearchUsers().getUser(username);if(user!=null)if(passwd.equals(user.getPassWord()flag = true;if(flag)response.sendRedirect(admin/admin_index.html);elseresponse.sendRedirect(admin/login.jsp); 4.2.2 新闻的管理 文章的管理包括文章的添加,删除和修改等操作,其数据流图如下图4-6文

31、章管理的数据流图新闻的添加新闻添加页面如下:图4-7 新闻添加界面添加一条新闻的相关代码为:public static boolean insert(News news) boolean flag = false;DBConnectPool dbp = DBConnectPool.getInstance();Connection conn = dbp.getConnection();PreparedStatement pstmt = null;try pstmt = conn.prepareStatement(insert into newsinfo( +biaoti,gabushijian,

32、pinglun, +laiyuan,tupian,zhaiyao,guanjiainzi, +classid,fabiaozhe,banquanxinxi,dianjilv +) + value(?,?,?,?,?,?,?,?,?,?,?););pstmt.setString(2,news.getBiaoti();pstmt.setDate(3, news.getFabushijian();pstmt.setInt(4,news.getPinglun();pstmt.setString(5, news.getLaiyuan();pstmt.setString(6,news.getTupian();pstmt.setString(7, news.getZhaiyao();pstmt

温馨提示

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

评论

0/150

提交评论