目 录
第一章 绪论 1
第二章 相关技术介绍 3
2.1 JAVA简介 3
2.2 JSP技术简介 3
2.3 MySQL数据库简介 4
第三章 系统设计 5
3.1功能需求 5
3.2性能需求 6
3.3 可靠性和用户界面需求 7
3.4系统E-R模型 8
3.5 系统流程分析 9
第四章 系统功能实现 11
4.1 系统架构 11
4.2 系统设计 12
4.3 系统数据库设计 13
第五章 系统功能实现 15
5.1前台新闻发布系统界面 15
5.1.1用户注册界面 16
5.1.2用户登入界面 17
5.1.3用户浏览新闻界面 18
5.2后台新闻界面系统 19
5.21后台管理界面 21
5.2.2新闻栏目管理界面 21
5.2.3新闻资讯管理界面 23
第六章 系统测试 27
6.1测试概述 27
6.2测试环境 27
6.3测试内容 27
第七章 总结 31
致 谢 33
系统设计
系统不仅要求功能完善,而且还要界面友好,因此,对于一个成功的系统设计,功能模块的设计是关键。由于本系统可执行的是一般性质的教学管理工作,本系统具有一般适用性,其所实现的功能满足学校对日常课程网站工作的管理,方便老师和学生的沟通。系统设计的图像的数据流分析阶段的需要结构化设计的概要说明的基础上,根据映射到软件体系结构的某些程序。首先,整个系统分成几个小的模块,小的问题,本文转载自http://www.biyezuopin.vip/onews.asp?id=14511然后,进一步细分模块,添加细节。
据新闻发布系统的需求分析,确定此系统分为前台新闻显示和后台管理两类。前台新闻显示模块分为新闻浏览、新闻搜索、留言板等几个模块,管理员通过输入的用户名和密码登陆后台管理区,可以对后台进行管理页面、新闻类别管理、新闻管理、公告管理和系统设置等几个模块的操作[11]。如图3-2所示
在本系统中,根据对系统需求的分析,可以总结出如下的需求集:
(1)系统应有前台和后台;
(2)系统前台应该可以显示新闻栏目和新闻以及用于管理员登录系统后台的登录界面;
(3)一般用户应该可以在前台自由浏览新闻,包括选择性地浏览新闻即先选择新闻栏目再浏览新闻栏目下的新闻条目;
(4)注册用户可以发表相关新闻的评论,系统管理员应该可以登录到系统
后台;
(5)系统管理员应该可以对新闻栏目和新闻进行查看、修改、删除和添加操作,也可以对注册用户管理,同时还可以对相关新闻的评论进行管理。
由以上需求集分析可知:
(1) “新闻栏目”和“新闻”为系统的两个主要内容,所以应该分别作为一个类,而新闻栏目和新闻的显示需要管理类进行管理,系统管理员要对栏目和新闻进行查看、添加、修改和删除,也需要相应的管理类进行管理,所以,系统对于新闻栏目和新闻分别需要“栏目管理类”和 “新闻管理类”;
(2)系统中应该要有超级管理员、管理员、注册用户等角色,超级管理员是最高权限的,管理员是超级管理员发放的,注册用户是前台注册产生的。
(3)系统要保存信息,必须用到数据库,所以需要一个数据库连接的类;
(4)要将系统的各个功能执行成功,少不了相应的控制类。 因此,识别出系统主要的类:新闻管理类,栏目管理类,用户管理类,评论管理类数据库连接的连接对象类以及各个类。
<%@ page language="java" import="java.util.*" contentType="text/html;charset=gb2312" %><%@ include file="iframe/head.jsp" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "/TR/1999/REC-html401-19991224/loose.dtd"><HTML xmlns="/1999/xhtml"><HEAD><LINK href="images/default.css" type=text/css rel=stylesheet><LINK href="images/css.css" type=text/css rel=stylesheet><META http-equiv=Content-Type content="text/html; charset=gb2312"><SCRIPT language=JavaScript src="images/inc.js"></SCRIPT><SCRIPT language=JavaScript src="images/default.js"></SCRIPT><SCRIPT language=JavaScript src="images/swfobject.js"></SCRIPT><META content="MSHTML 6.00.2900.3268" name=GENERATOR></HEAD><BODY text=#000000 bgColor=#ffffff leftMargin=0 topMargin=0><TABLE class=MainTable cellSpacing=0 cellPadding=0 width="100%" align=center border=0><TBODY><TR><TD vAlign=top width="37%" height=200><!--*******************************幻灯开始*******************************--><TABLE class=dragTable cellSpacing=0 cellPadding=0 width="100%" align=center border=0><TBODY><TR><TD class=middle align="left" colspan="2"><!--*******************************体育资讯**********************************--><SCRIPT type=text/javascript>var imgUrl = new Array();var imgtext = new Array();var imgLink = new Array();imgUrl[0]='images/1.jpg';imgLink[0]='http://localhost:8080/xwtj/';imgtext[0]=' ';imgUrl[1]='images/2.jpg';imgLink[1]='http://localhost:8080/xwtj/';imgtext[1]=' ';imgUrl[2]='images/3.jpg';imgLink[2]='http://localhost:8080/xwtj/';imgtext[2]=' ';imgUrl[3]='images/4.jpg';imgLink[3]='http://localhost:8080/xwtj/';imgtext[3]=' ';var pics=imgUrl[0];var links=imgLink[0];var texts=imgtext[0];for(var i=1;i<imgUrl.length;i++){pics+='|'+imgUrl[i];links+='|'+imgLink[i];texts+='|'+imgtext[i];}var focus_width=330var focus_height=228var text_height=1var swf_height = focus_height+text_heightdocument.write('<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="'+ focus_width +'" height="'+ swf_height +'">');document.write('<param name="allowScriptAccess" value="sameDomain" /><param name="movie" value="<%=basePath%>images/rollpic.swf" /><param name="quality" value="high" /><param name="bgcolor" value="#F0F0F0">');document.write('<param name="menu" value="false"><param name=wmode value="opaque">');document.write('<param name="FlashVars" value="pics='+pics+'&links='+links+'&texts='+texts+'&borderwidth='+focus_width+'&borderheight='+focus_height+'&textheight='+text_height+'">');document.write('<embed src="<%=basePath%>images/rollpic.swf" wmode="opaque" FlashVars="pics='+pics+'&links='+links+'&texts='+texts+'&borderwidth='+focus_width+'&borderheight='+focus_height+'&textheight='+text_height+'" menu="false" bgcolor="#F0F0F0" quality="high" width="'+ focus_width +'" height="'+ focus_height +'" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="/go/getflashplayer" />');document.write('</object>');</SCRIPT></TD></TR></TBODY></TABLE><!--*******************************幻灯结束*******************************--></TD><TD class=Side vAlign=top align=left width="37%" height=200><!--*******************************体育资讯开始*******************************--><TABLE class=dragTable cellSpacing=0 cellPadding=0 width="100%" align=center border=0><TBODY><TR><TD class=head id=tb1_bt1 onmouseover=tb_xs(1,2,1) width="100%" height="30"><SPAN class=TAG>最新新闻</SPAN></TD></TR><TR><TD class=middle align="left" colspan="2"><!--*******************************体育新闻**********************************--><TABLE class=xsnr id=tb1_nr1 cellSpacing=0 cellPadding=0 width="100%" border=0><TBODY><%if(!newsList.isEmpty()){for(int news11=0;news11<newsList.size();news11++){List newsList2=(List)newsList.get(news11);%><TR><TD align="left"><A href=<%=basePath %>newsinfo.jsp?id=<%=newsList2.get(0).toString()%> ><%=newsList2.get(1).toString().length()>17?newsList2.get(1).toString().substring(0,17):newsList2.get(1).toString() %></A><BR></TD><TD align="right"><%=newsList2.get(2).toString().substring(0,10) %><BR></TD></TR><%}} %></TBODY></TABLE></TD></TR></TBODY></TABLE><!--*******************************体育新闻结束*******************************--></TD><TD class=Side vAlign=top align=right width="25%"><!--*******************************滚动公告开始*******************************--><TABLE width="100%" height="240" border=0 cellPadding=0 cellSpacing=0 class=dragTable><TBODY><TR><TD class=head><SPAN class=TAG><P>站内公告</P></SPAN></TD></TR><TR><TD class=middle align=left><MARQUEE onmouseover=if(document.all!=null){this.stop()} onmouseout=if(document.all!=null){this.start()} scrollAmount=1 scrollDelay=1 direction=up height=180><TABLE cellSpacing=0 cellPadding=0 width="100%" border=0><TBODY><%if(!affList.isEmpty()){for(int aff=0;aff<affList.size();aff++){List affList2=(List)affList.get(aff);%><TR><TD width="100%"><%=affList2.get(1).toString() %>---<%=affList2.get(2).toString() %><BR></TD></TR><%}}%></TBODY></TABLE></MARQUEE></TD></TR></TBODY><!--*******************************滚动公告结束*******************************--></TABLE></TD></TR></TBODY></TABLE><!--*******************************2个信息栏目开始*******************************--><TABLE class=MainTable cellSpacing=0 cellPadding=0 width="100%" align=center border=0><TBODY><TR><TD vAlign=top width="49%" height=200><!--*******************************幻灯开始*******************************--><TABLE class=dragTable cellSpacing=0 cellPadding=0 width="100%" align=center border=0><TBODY><TR><TD class=head id=tb1_bt1 onmouseover=tb_xs(1,2,1) width="100%" height="30"><SPAN class=TAG>热点新闻</SPAN></TD></TR><TR><TD class=middle align="left" colspan="2"><!--*******************************新闻新闻**********************************--><TABLE class=xsnr id=tb1_nr1 cellSpacing=0 cellPadding=0 width="100%" border=0><TBODY><TR><TD align="center">新闻标题</TD><TD align="center">新闻栏目<BR><TD align="center">发布时间<BR><TD align="center">发布人<BR><TD align="center">点击率<BR></TD></TR><%List hlist=news.get10HotNews();if(!hlist.isEmpty()){for(int news11=0;news11<hlist.size();news11++){List newsList2=(List)hlist.get(news11);%><TR><TD align="left"><A href=<%=basePath %>newsinfo.jsp?id=<%=newsList2.get(0).toString()%> ><%=newsList2.get(1).toString().length()>17?newsList2.get(1).toString().substring(0,17):newsList2.get(1).toString() %></A><BR></TD><TD align="center"><%=newsList2.get(2).toString() %><BR><TD align="center"><%=newsList2.get(4).toString().substring(0,10) %><BR><TD align="center"><%=newsList2.get(5).toString() %><BR><TD align="center"><%=newsList2.get(6).toString() %><BR></TD></TR><%}} %></TBODY></TABLE></TD></TR></TBODY></TABLE><!--*******************************幻灯结束*******************************--></TD><TD class=Side vAlign=top align=left width="49%" height=200><!--*******************************新闻新闻开始*******************************--><TABLE class=dragTable cellSpacing=0 cellPadding=0 width="100%" align=center border=0><TBODY><TR><TD class=head id=tb1_bt1 onmouseover=tb_xs(1,2,1) width="100%" height="30"><SPAN class=TAG>新闻列表</SPAN></TD></TR><TR><TD class=middle align="left" colspan="2"><!--*******************************新闻新闻**********************************--><TABLE class=xsnr id=tb1_nr1 cellSpacing=0 cellPadding=0 width="100%" border=0><TBODY><TR><TD align="center">新闻标题</TD><TD align="center">新闻栏目<BR><TD align="center">发布时间<BR><TD align="center">发布人<BR><TD align="center">点击率<BR></TD></TR><%List pslist=news.getaNews();if(!pslist.isEmpty()){for(int news11=0;news11<pslist.size();news11++){List newsList2=(List)pslist.get(news11);%><TR><TD align="left"><A href=<%=basePath %>newsinfo.jsp?id=<%=newsList2.get(0).toString()%> ><%=newsList2.get(1).toString().length()>17?newsList2.get(1).toString().substring(0,17):newsList2.get(1).toString() %></A><BR></TD><TD align="center"><%=newsList2.get(2).toString() %><BR><TD align="center"><%=newsList2.get(4).toString().substring(0,10) %><BR><TD align="center"><%=newsList2.get(5).toString() %><BR><TD align="center"><%=newsList2.get(6).toString() %><BR></TD></TR><%}} %></TBODY></TABLE></TD></TR></TBODY></TABLE><!--*******************************新闻新闻结束*******************************--></TD></TR></TBODY></TABLE><%@ include file="iframe/foot.jsp"%>