新闻网页设计报告_第1页
新闻网页设计报告_第2页
新闻网页设计报告_第3页
新闻网页设计报告_第4页
新闻网页设计报告_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

./课程设计报告课程名称:JSP开发应用技术课程设计题目:新闻发布系统姓名:XXXX系:信息技术系专业:计算机科学与技术年级:2011学号:XXXX实验地点:1教室、3教室指导教师:XXX完成起止日期:20XX1月17日目录1项目总体计划-3-1.1项目简介-3-1.2项目设计的基本原理和采用的主要方法与技术-3-1.3系统开发平台与软件工具-5-2系统需求分析和总体设计-6-2.1系统功能需求-6-2.2系统角色-7-2.3流程图-7-3数据库设计-8-3.1E-R图-8-3.2数据表的设计-8-4系统详细设计-9-4.1数据库访问模块-9-4.3新闻查看模块-10-4.3新闻发布模块-15-4.4新闻管理模块-17-5个人遇到的困难及解决方法-21-6总结-23-7附录-23-.新闻发布系统1项目总体计划1.1项目简介现阶段,学校与社会上的各种考试大都采用传统的考试方式,在此方式下,组织一次考试至少要经过五个步骤,即人工出卷,考生考试,人工阅卷,成绩评估和试卷分析。显然,随着考试类型的不断增加及考试要求的不断提高,教师的工作量将会越来越大,并且其工作将是一件十分烦琐和非常容易出错的事情,可以说传统的考试方式已经不能适应现代考试的需要。随着计算机应用的迅猛发展,网络应用不断扩大,如远程教育和虚拟大学的出现等等,且这些应用正逐步深入到千家万户。人们迫切要求利用这些技术来进行在线考试,以减轻教师的工作负担及提高工作效率,与此同时也提高了考试的质量,从而使考试更趋于公证、客观、更加激发学生的学习兴趣。例如目前许多国际著名的计算机公司所举办的各种认证考试绝大部分采用这种方式。为了适应新形势的发展,我们推出了这一系统,使其尽快在各类考试中发挥高效,便捷的作用,把老师从繁重的工作中解脱出来。1.2项目设计的基本原理和采用的主要方法与技术该系统基于B/S运行模式,采用JSP的Model1开发模型。Model1是一种最初级的模式,它以JSP文件为中心,在这种模式中JSP页面不仅负责表现逻辑,也负责控制逻辑,而是用JavaBean处理业务逻辑。这种模式的优点有如下:纯净的JSP页面,因为业务逻辑和数据库操作已经从JSP页面中剥离出来,JSP页面中只需嵌入少量的Java代码甚至不使用Java代码;方便进行调试;可重用的组件;易维护易扩展。在Model1体系中,如图1所示,JSP页面独自响应请求并将处理结果返回客户。这里仍然存在表达与容的分离,因为所以的数据存取都是由bean来完成的。Model1体系十分适合简单应用的需要,非常适合小型系统的开发。图SEQ图\*ARABIC1JSP技术JSP<JavaServerPages>是由SunMicrosystems公司倡导、许多公司参与一起建立的一种动态网页技术标准,类似于其他技术标准,如ASP,PHP等,主要用于开发动态网页容。JSP是新一代的动态容编程技术,它继承了Java技术的"一次编写,随处运行"的特性,允许Web开发人员开发和维护与平台无关,信息丰富动态的Web页面,包括HTML,DHTML,XHTML和XML,它能使Web开发人员轻易搭建网络平台,建立起功能强大的Web。JSP可以把用户界面从容层次中分离出来,使得Web开发人员不必修改在底层的动态容,就可以修改整体的页面布局。JavaBeanJavaBeans事实上有三层含义。首先,JavaBeans是一种规,一种在Java〔包括JSP中使用可重复使用的Java组件的技术规。其次,JavaBeans是一个Java的类,一般来说,这样的Java类将对应于一个独立的.java文件,在绝大多数情况下,这应该是一个public类型的类。最后,当JavaBeans这样的一个Java类在我们的具体的Java程序中被示例之后,我们有时也会将这样的一个JavaBeans的实例称之为JavaBeans。使用JSP技术,Web页面开发人员可以使用HTML和XML标识来设计和格式化最终页面。使用JSP标识或者小脚本生成页面上的动态容。生成容的逻辑被封装在JSP标识和JavaBeans组件中,并且捆绑在小脚本中,所有的脚本在服务器端运行。核心逻辑封装在标识和Beans中,可以方便页面设计者编辑和使用JSP页面。在服务器端,JSP引擎解释JSP标识和小脚本生成所请求的容<例如,通过访问JavaBeans组件,使用JDBC技术访问数据库>,并且将结果以HTML<或XML>页面的形式发送回浏览器。绝大多数JSP页面依赖于可重用的跨平台的足见<JavaBeans或者EnterpriseJavaBeans组件>来执行应用程序所要求的复杂的处理。这样的好处是开发人员能够共享和交换执行普通操作的组件,加速了总体开发过程。因此,基于Web的较为复杂的应用程序<如JSP开发或网上MIS>,JSP的复杂架构必须由JavaBeans达成。JDBCJDBC是一种用于执行SQL语句的JavaAPI〔有意思的是,JDBC本身是个商标名而不是一个缩写字;然而,JDBC常被认为是代表"Java数据库连接<JavaDatabaseConnectivity>"。它由一组用Java编程语言编写的类和接口组成。JDBC为工具/数据库开发人员提供了一个标准的API,使他们能够用纯JavaAPI来编写数据库应用程序。有了JDBC,向各种关系数据库发送SQL语句就是一件很容易的事。换言之,有了JDBCAPI,就不必为访问Sybase数据库专门写一个程序,为访问Oracle数据库又专门写一个程序,为访问Informix数据库又写另一个程序,等等。您只需用JDBCAPI写一个程序就够了,它可向相应数据库发送SQL语句。而且,使用Java编程语言编写的应用程序,就无须去忧虑要为不同的平台编写不同的应用程序。将Java和JDBC结合起来将使程序员只须写一遍程序就可让它在任何平台上运行。Java具有坚固、安全、易于使用、易于理解和可从网络上自动下载等特性,是编写数据库应用程序的杰出语言。所需要的只是Java应用程序与各种不同数据库之间进行对话的方法。而JDBC正是作为此种用途的机制。JDBC扩展了Java的功能。例如,用Java和JDBCAPI可以发布含有applet的网页,而该applet使用的信息可能来自远程数据库。企业也可以用JDBC通过Intranet将所有职员连到一个或多个部数据库中〔即使这些职员所用的计算机有Windows、Macintosh和UNIX等各种不同的操作系统。随着越来越多的程序员开始使用Java编程语言,对从Java中便捷地访问数据库的要求也在日益增加。1.3系统开发平台与软件工具平台用途版本要求是否具备Dreamweaver网页设计工具,设计web静态界面8.0是MySQL5.0关系型数据库管理系统5.0是Navicat8.0MySQL数据库客户端8.0是MyEclipse6.5项目开发工具6.5是Tomcat服务器程序6.0是InternetExplorer6.0网页浏览器6.0是2系统需求分析和总体设计2.1系统功能需求随着网络的飞速发展和普及,越来越多的用户习惯上网浏览新闻。本系统的主要目的就是为用户提供一个方便的,及时的网上新闻发布,浏览平台。利用本系统,用户可以直接在网上发布新闻信息并根据自己的需要对新闻进行检索。本系统遵循软件工程标准,并按照软件工程规定的流程进行项目的开发。如图2所示,在本系统中主要阐述新闻访问模块、新闻查看模块、新闻发布模块以及新闻管理模块四个模块。〔1数据访问模块:利用JavaBean封装对数据的操作,主要包括连接数据库,添加,修改,删除,查询数据表,关闭连接等。当JSP页面需要访问数据库时直接调用这个JavaBean即可。〔2新闻查看模块:提供分页显示全部新闻的列表,还可查看新闻详细容的功能。〔3新闻发布模块:实现新闻发布功能。〔4新闻管理模块:实现修改新闻,删除新闻的功能,管理员登录进入管理模块对新闻管理。2.2系统角色<1>普通用户<2>管理员2.3流程图3数据库设计3.1E-R图该系统数据库表的E-R图如图3所示:图SEQ图\*ARABIC23.2数据表的设计下面列出了设计过程中所用到的news数据库中的数据库表news和数据库表admin及其结构:news表用来存储现有的新闻信息,如表3-1:表STYLEREF1\s0SEQ表\*ARABIC\s11news表结构字段中文描述类型是否为空备注ID新闻ID号Int是主键、自动递增Title新闻标题varchar是Content新闻详细容Text是Author新闻作者varchar是Pubdate日期/时间Datetime是admin表用来保存管理员信息,如表3-2:表STYLEREF1\s0SEQ表\*ARABIC\s12admin表结构字段中文描述类型是否为空备注ID管理员IDint是主键、自动递增name管理员名字varchar是PWD管理员密码varchar是4系统详细设计4.1数据库访问模块数据库使用一个JavaBean来专门完成多个JSP页面对数据库的连接,访问等操作。即每次访问数据库时只需实例化一个封装数据库的类,并利用类里的各种公有方法来完成对应功能。下列是类中的几个方法:方法DBBean〔publicDBBean<> {try{ Class.forName<driverStr>; }catch<ClassNotFoundExceptionex>{ System.out.println<ex.getMessage<>>; } }执行SQL语句的方法1executeQuery<Stringsql>publicResultSetexecuteQuery<Stringsql> { ResultSetrs=null;try{conn=DriverManager.getConnection<connStr,userName,userPassword>;stmt=conn.createStatement<>; rs=stmt.executeQuery<sql>; }catch<SQLExceptionex>{ System.out.println<ex.getMessage<>>; }returnrs; }执行SQL语句的方法2executeUpdate<Stringsql>publicintexecuteUpdate<Stringsql> {intresult=0;try{conn=DriverManager.getConnection<connStr,userName,userPassword>;stmt=conn.createStatement<>; result=stmt.executeUpdate<sql>; }catch<SQLExceptionex>{ System.out.println<ex.getMessage<>>; }returnresult; }关闭语句对象方法close〔publicvoidclose<> {try{stmt.close<>;conn.close<>; }catch<SQLExceptionex>{ System.out.println<ex.getMessage<>>; }4.3新闻查看模块新闻查看模块全部新闻分页显示,显示新闻容,新闻搜索方式等功能。完成新闻显示,搜索等操作。新闻发布系统首页其功能有:新闻查看页面,如下图所示:关键代码如下:functiondatail<id>{window.open<'detail.jsp?id='+id,'infoWin','height=400,width=600,scrollbars=yes,resizable=yes'>;}</script><%request.setCharacterEncoding<"gb2312">;if<request.getParameter<"stype">!=null>{ type=request.getParameter<"stype">; session.setAttribute<"stype",type>;}if<request.getParameter<"skey">!=null>{ key=request.getParameter<"skey">; session.setAttribute<"skey",key>;}ResultSetrs=null;ResultSettemp=null;Stringsql1="select*fromnews";Stringsql2="selectcount<*>fromnews";if<session.getAttribute<"stype">!=null> type=<String>session.getAttribute<"stype">;if<session.getAttribute<"skey">!=null> type=<String>session.getAttribute<"skey">;if<type!=null&&key!=null&&!type.equals<"">&&key.equals<"">>{ sql1+="where"+type+"like'%"+key+"%'"; sql2+="where"+type+"like'%"+key+"%'";}sql1+="orderbypubdatedesc";%><center><p><fontsize="4"color="red"><Strong>欢迎您访问新闻发布系统!</Strong></font><p><fontsize="2"><formmethod="post"action="index.jsp">请选择查询类别:<selectname="stype"><optionvalue="title"<%if<type!=null>if<type.equals<"title">> out.print<"selected">;%>>按标题查询</option><optionvalue="content"<%if<type!=null>if<type.equals<"content">> out.print<"selected">;%>>按容查询</option><optionvalue="author"<%if<type!=null>if<type.equals<"author">> out.print<"selected">;%>>按作者查询</option><optionvalue="pubdate"<%if<type!=null>if<type.equals<"pubdate">> out.print<"selected">;%>>按日期查询</option></select> 请输入查询关键字:<inputtype="text"name="skey"><inputtype="submit"value="查询"></form></font><tableborder="1"borderColor="#ffffec"borderColor="#5e5e00"width="95%"><trbgcolor="#FFFCC99"align="center"><thwidth="30%">标题</th><thwidth="20%">作者</th><thwidth="10%">日期</th><% temp=conn.executeQuery<sql2>;inttotalrecord=0;if<temp.next<>> totalrecord=temp.getInt<1>;if<totalrecord%size==0>totalPage=totalrecord/size;elsetotalPage=totalrecord/size+1;if<totalPage==0>totalPage=1; temp.close<>;try {if<request.getParameter<"p">==null||request.getParameter<"p">.equals<"">> p=1;else p=Integer.parseInt<request.getParameter<"p">>; }catch<NumberFormatExceptione>{p=1;}if<p<1>p=1;if<p>totalPage>p=totalPage; rs=conn.executeQuery<sql1>;if<rs.next<>> out.println<printPage<rs,p,size>>;%></table><formaction="index.jsp"method="GET"><%for<inti=1;i<=totalPage;i++>{ out.println<"<ahref=index.jsp?p="+i+">"+i+"</a>  ">; }%><p>输入页数:<inputtype="text"name="p"size="3"> 页数:<fontcolor="red"><%=p%>/<%=totalPage%></font><ahref="add.jsp"target="buttomFrame">继续发布</a>   <inputtype="button"name="goback"value="返回"onClick="javascript:window.history.go<-1>"><formmethod="post"action="index.jsp">请选择查询类别:<selectname="stype"><optionvalue="title"<%if<type!=null>if<type.equals<"title">> out.print<"selected">;%>>按标题查询</option><optionvalue="content"<%if<type!=null>if<type.equals<"content">> out.print<"selected">;%>>按容查询</option><optionvalue="author"<%if<type!=null>if<type.equals<"author">> out.print<"selected">;%>>按作者查询</option><optionvalue="pubdate"<%if<type!=null>if<type.equals<"pubdate">> out.print<"selected">;%>>按日期查询</option></select> 请输入查询关键字:<inputtype="text"name="skey"><inputtype="submit"value="查询"></form></font><tableborder="1"borderColor="#ffffec"borderColor="#5e5e00"width="95%"><trbgcolor="#FFFCC99"align="center"><thwidth="30%">标题</th><thwidth="20%">作者</th><thwidth="10%">日期</th><% temp=conn.executeQuery<sql2>;inttotalrecord=0;if<temp.next<>> totalrecord=temp.getInt<1>;if<totalrecord%size==0>totalPage=totalrecord/size;elsetotalPage=totalrecord/size+1;if<totalPage==0>totalPage=1; temp.close<>;try {if<request.getParameter<"p">==null||request.getParameter<"p">.equals<"">> p=1;else p=Integer.parseInt<request.getParameter<"p">>; }catch<NumberFormatExceptione>{p=1;}if<p<1>p=1;if<p>totalPage>p=totalPage; rs=conn.executeQuery<sql1>;if<rs.next<>> out.println<printPage<rs,p,size>>;%></table><formaction="index.jsp"method="GET"><%for<inti=1;i<=totalPage;i++>{ out.println<"<ahref=index.jsp?p="+i+">"+i+"</a>  ">; }%><p>输入页数:<inputtype="text"name="p"size="3"> 页数:<fontcolor="red"><%=p%>/<%=totalPage%></font><ahref="add.jsp"target="buttomFrame">继续发布</a>   <inputtype="button"name="goback"value="返回"onClick="javascript:window.history.go<-1>"></p></form>系统导航栏页面4.3新闻发布模块此模块提供新闻发布功能,包括新闻发布首页,及新闻发布处理页面。.新闻发布首页:提供输入新闻信息表单,如下图:相关代码如下:新闻发布处理页面:<center><fontcolor="red"><h2>编辑新闻</h2></font><divalign="right"><fontsize="2"><ahref="manage.jsp">返回管理页面</a></font></div><hr><% Stringeditid=""; Stringtitle=""; Stringcontent=""; Stringauthor=""; Stringpubdate="";if<request.getParameter<"editid">!=null> editid=request.getParameter<"editid">;//生成查询SQL语句,查找id为变量editid的记录 Stringsql="select*fromnewswhereid="+editid; ResultSetrs=null; rs=conn.executeQuery<sql>;if<rs.next<>>{//读取当前记录的各字段值 title=rs.getString<"title">; content=rs.getString<"content">; author=rs.getString<"author">; pubdate=rs.getString<"time">;%><formname="myform"method="post"action="update.jsp"onSubmit="returncheck<>"><inputtype="hidden"name="editid"value="<%=editid%>"><tableborder="1"borderColor="#ffffec"borderColor="#5e5e00"width="70%"><trbgcolor="#f7f7f7"><tdwidth=10%>标题:</td><td><inputtype="text"name="title"size="65%"value="<%=title%>"></td><trbgcolor="#f7f7f7"><td>容:</td><td><textareaname="content"cols="63%"rows="13%"><%=content%></textarea></td><trbgcolor="#f7f7f7"><td>作者:</td><td><textareaname="author"cols="63"rows="13%"><%=author%></td><trbgcolor="#f7f7f7"><tdcolspan="2"align="center"><inputtype="submit"value="修改">   <inputtype="reset"value="清空"></td></table></form><%}else{%><h2>对不起,没有相关的新闻!</h2>4.4新闻管理模块管理员登录对现有新闻进行编辑,删除,发布等操作。主要有:管理员登录表单,登陆处理页面,新闻管理页面,编辑页面,管理员退出页面等。1.管理员注册登录表单:用户注册登录的关键代码如下:<bodybackground="images/tuu.jpg"><divstyle="height:20%"></div><br><divalign="center"><h1>管理员登录</h1><divalign="right"><ahref="register.html"><h3>注册</h3></a></div><formmethod="post"action="verify.jsp"><tablebackground=images/fff.jpgheight="117"width="317"><tr><tdwidth=40%>管 理 员:</td><td><inputtype="text"name="user"></td></tr><tr><tdwidth=40%>管理员密码:</td><td><inputtype="password"name="pw"></td></tr><tr><td><inputtype="submit"value="登录"><inputtype="reset"value="重置"></td></tr></table></from><% Stringwarning=request.getParameter<"warning">;if<warning!=null>{ warning=newString<warning.getBytes<"8859_1">>; out.println<"<h3>"+warning+",请重新登录或<ahref='index.jsp'>返回首页</a></h3>">; }%>4.4-1.1登录表单4.4-1.2注册表单2.登陆处理页面关键代码如下:<%Stringuser=request.getParameter<"userName">;Stringpassword=request.getParameter<"password">;//生成SQL语句,查找admin表中有无匹配的记录Stringsql="select*fromadminwhereuserName='"+user+"'andpassword='"+password+"'";ResultSetrs=conn.executeQuery<sql>;if<rs.next<>>{rs.close<>;conn.close<>;session.setAttribute<"admin","ok">;%><jsp:forwardpage="manage.jsp"/><%}else{ rs.close<>;conn.close<>;%><jsp:forwardpage="error.jsp"><jsp:paramvalue="对不起,你的用户名或密码不正确"name="warning"/></jsp:forward><%}%>3退出系统关键代码如下:<%session.invalidate<>;response.sendRedirect<"index.jsp">;%><center><inputtype="button"name="goback"value="返回"onClick="javascript:window.history.go<-1>" ></center>4>.新闻管理页面关键代码如下:<formmethod="post"action="manage.jsp">请选择查询类别:<selectname="stype"><optionvalue="title"<%if<type!=null>if<type.equals<"title">>out.print<"selected">;%>>按标题查询</option><optionvalue="content"<%if<type!=null>if<type.equals<"content">>out.print<"selected">;%>>按容查询</option><optionvalue="author"<%if<type!=null>if<type.equals<"author">>out.print<"selected">;%>>按作者查询</option><optionvalue="pubdate"<%if<type!=null>if<type.equals<"pubdate">>out.print<"selected">;%>>按日期查询</option></select>  请输入查询关

温馨提示

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

评论

0/150

提交评论