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

下载本文档

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

文档简介

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

2、需考虑验证码的设计。使用Tomacat6.0为系统地发布平台,发布方便,安全可靠性比较高。1.2 性能需求Tomacat可以免安装,体积小,运行效率高。能很方便的在Windows和Linux系统下发布。同时使用 MySql5.0数据库,安装方便,而且免费使用,MySql在WindowsXP以及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页面开发人员可以使用HTM或者XML标识来设计和格式化最终页面。使用 JSP标识或者小脚本来生成页面上的动态内容(内容是根据请求 来变化的,例如请求帐户信息或者特定的一瓶酒的价格)。(2)强调可重用的组件绝大多数JSP页面依赖于可重用的,跨平台的组件(JavaBeans或者 EnterpriseJavaBeansTM 组件)来执行应用程序所要求的更为复杂的处理。开发人员能够共享和交换执行普通操作的组件,或者使得这些组件为更多的使用者或者客户团体 所使用。基于组件的方法加速了总体开发过程,并且使得各种组织在他们现有的技能 和

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

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

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

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

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

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

13、API,对实现与数据库连接的服务提供商而言是接口模型。作为API, JDBC为程序开发提供标准的接口,并为数据库厂商及第三方中间件厂商实现与 数据库的连接提供了标准方法。JDBC使用已有的SQL标准并支持与其它数据库连接标 准,如ODBJ间的桥接。JDBC实现了所有这些面向标准的目标并且具有简单、严格 类型定义且高性能实现的接口。访问并操纵数据库服务器中的数据。JDBC由JSP技术支持,其数据库访问模型如下图所示。表 1 : Java表 1 : JDBC APIJDBC驱动程序APIJDBC实现选择公开的协议专有的数据库访问协议图2-1采用JDBC技术实现数据库访问模型2.6 B/S开发模式B

14、/S结构,即 Browser/Server-浏览器/服务器结构,浏览器发送请求而服务器应答请求。其工作原理如下图2-2 B/S结构的三层模型前台通过IE、Firefox等浏览器向Web服务器发送HTTP请求,web服务器通过 JSP和一些中间件访问后台数据库,并将操作的结果以 HTMLX面的形式返回给前端的浏览器。比与C/S模式,采用B/S模式用户的操作更加简单,不像 C/S需要在客户端 进行客户端程序,只需要一个通用浏览器即可完成数据的请求与接收,大幅的减少了 客户端的维护工作。同时,B/S模式使用的技术是Internet的We阪术,因而更适合 于网上的信息发布。欢迎下载32第三章总体设计因

15、为网络中新闻发布的频率非常高,如果没有一个高效的新闻发布管理系统, 则维护工作将非常繁琐,浪费很多时间和精力。通过使用新闻发布系统,管理员只需 设置标题、内容和图片等新闻,系统将自动生成对应的网页,使新闻发布和管理变得 很轻松。而对于前台界面,为适应多个用户的需求,必须达到友好,方便,简洁,易 用的特点。本文将根据前期的需求分析,对新闻发布系统进行总体设计。3.1系统功能描述新闻发布系统包括新闻类别管理、新闻发布管理、新闻搜索、留言评论管理等模 块。具体描述如下:(1 )新闻类别管理:a.新闻类别的添加;b.新闻类别的修改;c.新闻类别的删除;(2)新闻发布管理:a.基本新闻信息的发布,包括新

16、闻标题、新闻内容等;b.基本新闻信息的修改;c.基本新闻信息的删除;(3)新闻统计模块a.对点击次数的统计b.根据点击次数排除点击排行榜c.根据发布时间的先后时间排出最新文章(4)新闻搜索模块:a.按照新闻标题搜索;-b.按照新闻内容搜索。c.搜索结果的显示(5)评论管理模块:a.网友发表评论、留言;b.对留言的过滤c.管理员对留言的管理3.2 E-R模型根据分析可划分出新闻信息、新闻类别信息、评论信息和用户信息和几个实体, 其具体的E-R模型如下(1)新闻信息图3-1新闻信息实体的E-R模型(2)评论信息图3-2评论信息实体的E-R模型(用户名I /密码用片信息 二图3-3 用户信息实体的(

17、4)新闻类别信息类别ID 、类别名称>z新闻类别信息 )图3-4 新闻类别信息实体的)E-R模型E-R模型(3)用户信息1拥有评论,v-M新闻信息'M1图3-5 ER关系模型图一评论信息)新闻类别信息(5) ER关系图3.3 系统流程图图3-6系统的基本流程任何用户从浏览器输入地址进入本新闻发布系统后首先进入新闻主界面,即可 进行新闻的查看,根据标题或内容进行新闻的搜索,以及进入评论页面进行新闻的评 论。输入管理员登录页面的地址,进入登录页面,用户输入用户名和密码以及正确的 验证码后可进入后台管理,有新闻的发布,新闻的管理,新闻类别的管理,新闻评论 的管理等。断开与服务器的连接即

18、退出本新闻系统。3.4 数据流图(1)前台数据流图结统计)要统计的新闻信/访问次数统也二点Uiewsi新 闻 信 息 表图3-7 前台的数据流图数据库中有两个表用于前台的数据的存放,新闻信息表newsinfo中存放新闻的内容,标题,点击量等数据,通过各种命令与前台进行数据交 换。留言信息表存放用户的留言。(2)后台数据流图评论管理;用居|快量.评论信息表(comment)评论管理命令评论管理结果分类操作信息f 分类管理结果发布管理命令新闻管理命令管理结果 r发布管理新闻管理 二发布管理结果-文章管理结果-统计管理命令一文章管理命令文章管理L£点击率类别信息表发布操作信息 发布操作结果

19、文章管理信息文章操作结果图3-8 后台数据闻信息(ne)wsinfo流图3.5系统功能模块划分从功能描述的内容可以看到,本系统可以实现五个完整的功能。根据这些功能, 设计出系统的功能模块,如下图所示。新闻发布系统新闻类别管理新闻发布管理新闻统计模块新闻搜索模块新闻评论管理图3-9新闻发布总体系统功能模块示意图3.6数据库设计本系统采用MySql数据库,在数据库中使用数据表article 来储存现有的新闻信息。表的结构如表字段名称数据类型说明newsidInt(10) unsigned新闻编号,自动增加(主键)biaotiVarchar(45)新闻的标题fabushijiandatetime发布

20、时间pinglunInt(10) unsigned新闻评论idlaiyuanVarchar (45)新闻来源tupianVarchar(45)新闻图片路径名称ZhaiyaoText新闻摘要guanjianziVarchar (45)新闻关键字classidInt(10) unsigned新闻类别idzhengwenText止义fabiaozheVarchar (45)及表口banquanxinxiVarchar (45)版权信息点击率,浏览一次增加dianjialvInt(10) unsigned1表3-1新闻信息表newsinfo使用数据表users来储存管理员的信息,表的结构如下表字段名称

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

22、(45)类别名称表3-4新闻类别信息名称classes第四章详细设计4.1前台系统4.1.1新闻的查看主页面如下图制镰C NEWSWCachim 3硼虑用醐踞幸蚓钿惜金琳不T辟T五犯应鼠疝空盛工图4-1系统主页界面效果任何用户在浏览器输入网址后进入本站界面,即可查看新闻标题及发布时间,新 闻的评论、新闻的点击率等,单击任意一条新闻标题即可查看新闻内容。网易Q1广告收入环比大跌50吗2010-06-25东源: 金朋费山 公司公布的1忤第一季度财报q啪艮防I算机广告服翁收入达9门50万元人民币匕8。万美 摘要二 元).筏上一聿度1.附亿元人民币邪比大裁5爪跳.勺北同4网易01窃阐为7事】亿元人民币

23、(LM忆养 元),上一季度和去年同期分别为14妩元人民币.网易方面解释称.毛利祠的环比下降主宾是由于广告C;二lotuneots .! .tthnas乩iiiLni后.at比桌UT惭陞文件夹:5月我日网曷公司公布M年第一季度硼财,题示.其Q工广修匿奔收入达315。万元人民币a3就万美元),莪上 一季度】.附亿元人民币环七大晟5必温与尸尼时.河易。二三田桐为7.九日元人民币£1加美元).上T段和去年同期分别物,44£元人民而口网易 方面幡称,毛利福的环比下降主要是由于广告也入的季节性下降。受广告段人缩水影说.小网曷一安耻男的毛利辜近为度5而上一聿度则肥文菊.网旻工面解释机 广

24、上收入 主利率为环比神唯金吠大施r隆所6g.关疑字口网购广告羽5,留用所原类别H点击率;10版获号户;原文出自【出特例】图4-2新闻内容界面效果显示一条新闻的主要代码为:<%request.setCharacterEncoding("gbk");SearchNews sh = new SearchNews();News n=sh.getNews(1);if(n != null)%><% out.println(n.getBiaoti(); %><% out.print(n.getFabushijian(); %></td>&l

25、t;% out.println(n.getLaiyuan(); %><% out.println(n.getZhaiyao(); %></td><% out.println(n.getTupian(); %><% out.println(StringToHtml.toHtml(n.getZhengwen(); %><% out.println(n.getGuanjianzi(); %><% out.println(n.getFabiaozhe(); %><% out.println(n.getClassid()

26、; %><% out.println(n.getDianjilv(); %><% %><%out.println(n.getBanquanxinxi(); %><% if(n.getComcount()!=0) %><a href="commentofnew.jsp?newid=<% out.print(n.getNewsid(); %>"> <em>评论<% out.print(n.getComcount(); %>>></em> </a&g

27、t;<% else %> <em>评论<% out.print(n.getComcount(); %>条 >></em> <% %></td></tr><p><hr> 我要留言:</hr><form action="AddCommentOfNews" method="post" enctype="multipart/form-data"name="form1" id="

28、form1"><textarea name="commenttext" rows="15" cols="61"></textarea><input name="newsid" type="hidden" value="<% out.print(n.getNewsid(); %>"/><input name="Submit" type="submit" value=&q

29、uot;提交"/>4.1.2评论功能的实现评论管理的数据流图如下评论查看结果,. .,评论管评论查看浏览评论." 嘎吉果 ir/卫/评论删除结果k论管理命令评论管理)(评论删除?评论删除命令丁评论查询信息|W一评论信息查询结果评论删除信息j留f信息表评论信息删除结果mefsage图4-3评论管理数据流图评论与浏览页面州an凡 Lipins 枕表. 2010-0e-2913:41thiim o canimeint of th-1 3 ncw cwqrof e _by wwi号 1 1 p 1 txkEElJg 发表士2C1LJUIS21B : L> r bSthi

30、 e ' w ,r 、:nriitipjit tf -ttii b newe图4-4评论浏览添加评论页面评论实现的事务处理相关代码:protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException / TODO Auto-generated method stubdoPost(request, response);/* see HttpServlet#doPost(HttpServletRequestrequest,Htt

31、pServletResponse response)request, HttpServletResponse*/protected void doPost(HttpServletRequest response) throws ServletException, IOException / TODO Auto-generated method stub request.setCharacterEncoding("gbk");response.setCharacterEncoding("gbk");int newsid = Integer.parseInt

32、(request.getParameter("newsid");String comment = request.getParameter("commenttext");String comperson = request.getParameter("person");String type = request.getParameter("type");PrintWriter pw = response.getWriter();pw.println(newsid);pw.println(comment);Comme

33、nt comm = new Comment。;comm.setContext(comment);comm.setNewid(newsid);comm.setComPerson(comperson);int result = ModifComment.insert(comm);if(type.equals("new")response.sendRedirect("oneofnews.jsp?newid="+newsid);else if(type.equals("comment")response.sendRedirect("

34、commentofnew.jsp?newid="+newsid);else if(type.equals("admincomment")response.sendRedirect("adminadmin_commentview.jsp?newid="+newsid);添加一条评论的代码为:public class InsertCommentpublic static void insert(Comment comment)DBConnectPool dbp=DBConnectPool.getInstance();Connection conn=

35、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 Date();pstmt.setString(3,comment.getComPerson();pstmt.setString(4, comment.getContext();pstmt.execu

36、teUpdate(); catch (SQLException e1) / TODO Auto-generated catch blocke1.printStackTrace();finallytryif(pstmt!=null)pstmt.close();catch(SQLException el)el.printStackTrace();4.2后台管理系统的设计4.2.1 后台登陆模块台登陆用户名!admin密码:. 登陆图4-5后台登陆界面当用户在对话框输入正确的用户名、密码及随机产生的验证码时,进入后台页面If.jsp ,否则回到登陆页面login.jsp 并提示原因。登录事务处理相关

37、代码如下: protected void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException / TODO Auto-generated method stub doPost(request, response);/* see HttpServlet#doPost(HttpServletRequest request,HttpServletResponse* response)*/protected void doPost(HttpServletR

38、equest request,HttpServletResponse response) throws ServletException,IOException request.setCharacterEncoding("gbk");response.setCharacterEncoding("gbk");String username = request.getParameter("name");String passwd = request.getParameter("pass");boolean flag =

39、 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 新闻的管理文章的管理包括文章的添加,删除和修改等操作,其数据流图如下芝士一口果 文章管理命令文章添加命W-七|

40、文章添加结果文章添加信息文章信息添加结果.文章查询命令文章查询信息文章查询结果一文章查询.文章信息查询结果丁文章管理*1章修改结果新潮信息删除结果文章修改命令文章修改文章修改信息文章信息修改结果arti )cle文章删除命令文章删除图4-6文章管理的数据流图文章删除信息文章信息删除结果新闻的添加新闻添加页面如下:添加新闻图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,pinglun," +"laiyuan,tupian,zhaiyao,guanjiainzi," +"classid,fabiaozhe,banq

温馨提示

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

评论

0/150

提交评论