




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、java与web数据库课程设计淮阴工学院 java与web数据库课程设计报告课题名称: 基于web的新闻发布系统 专业: 计算机科学与技术 班级: 网络1091 姓名: 姚建国 学号: 1091304125 指导老师: 张永军 邵鹤帅 2012年01月03日19设计任务书课题名称基于web的新闻发布系统设计目的 本课程设计的目的是通过实践使学生经历一个java与数据库系统开发的全过程并受到一次综合的训练,以便能较全面地理解、掌握和综合运用所学的知识去分析、解决实际问题。实验环境1、操作系统为windows xp2、数据库管理系统为access 20033、高级程序设计语言为jsp任务要求任务:
2、完成基于web的新闻发布系统的分析设计工作,并选用适当的开发工具完成系统的开发。要求:1、完成需求分析;2、进行数据库的概念设计;3、进行数据库的逻辑设计;4、进行数据库的物理设计;5、进行应用程序设计;6、编程实现。工作进度计划序号起止日期工 作 内 容12012-1-32012-1-3查询资料、选择课题22012-1-42012-1-4需求分析、总体设计32012-1-52012-1-5系统整体设计、编写程序代码、调试程序42012-1-62012-1-6撰写课程设计报告指导教师(签章): 年 月 日 摘要: 随着internet的迅速发展,社会已近进入了网络时代,人们越来越倾向于从int
3、ernet获取信息。而网站则是internet网上进行信息传播的主要载体,又为了使网站的管理员方便的更新发布信息,将杂乱的信息进行合理的处理有条理的呈现给用户。本系统基于web的新闻发布系统,就是实现这些功能。本系统利用了jsp动态网页和access数据库,采用b/s开发模式,实现新闻的动态发布。系统分为前台用户界面和后台管理员界面,前台用户的功能包括:用户的登录与注册、新闻的发布、新闻的修改及新闻的查询;后台管理员包括:管理员的登录、新闻信息查询、删除新闻信息等。该系统可移植性强,虽然系统功能还不完善,但其良好的可继承性,可以随着网站业务的发展不断升级。关键词:jsp;access数据库;新
4、闻发布系统;b/s模式; 目 录1 需求分析11.1 功能需求11.2 安全需求11.3 性能需求22 系统分析22.1 系统开发技术22.11 jsp特点22.2 uml活动关系图32.3 系统模块43 数据库设计与实现53.1 数据库的需求分析53.2 数据库的逻辑设计53.3 数据库的物理设计54 代码编写65 系统运行与测试8总结与体会12致 谢13参考文献141 需求分析随着网络的飞速发展和普及,越来越多的用户习惯上网浏览新闻。本系统基于web的新闻发布系统主要目的是为用户提供一个方便、及时的网上新闻发布、浏览平台。利用本系统,用户可以直接上网发布新闻信息并根据自己的需要对需要的新闻
5、进行浏览、检索、增加和修改。管理员可以对新闻信息进行相关的处理,根据网站的标准删除部分信息。1.1 功能需求本系统将实现以下的几个功能:l 查看新闻功能:任何用户均可以使用查看新闻的功能。查看新闻功能在首页显示最新的新闻,用户可以查看新闻的详细内容;l 站内新闻查询功能:普通用户可以使用新闻查询功能,用户登陆后可以根据提供的查询选项进行查找相关的新闻,查找中可以使用按编号查询、按新闻标题查询及按更新日期查询,当查询到相关的新闻会将其显示出来;l 新闻发布功能:普通用户具有此权限,当登录成功后,可以选择新闻发布功能,发布新闻是必须填写标号,新闻标题等;l 管理员登陆:当用户需要处理新闻时,需要以
6、管理员的身份登录,待验证信息通过后即可登录成功;l 普通用户登录与注册:普通用户登录可以增加其权限,比如:可以发布新闻、修改新闻等,当用户没有用户账号时,可以选择注册一个账号;l 新闻管理功能:管理员登陆后可以对信息进行处理,比如:删除新闻、查询新闻等功能。1.2 安全需求 由于使用jsp编写的程序代码本身比较隐蔽性较强,在客户端仅可以看到jsp输出的动态html文件,因此只要在编写代码时注意严谨性,控制好自己客户端的cookie信息即可得到很好的安全保障。管理员登录信息采用了数据库方式,存储与服务器端,不易给其他人获知。使用tomcat6.0为系统发布平台,发布方便,安全可靠性比较高。1.3
7、 性能需求 tomcat安装体积小,运行效率高,能很方便的在各种操作系统中运行,同时使用access数据库,兼容性高,建立数据库简单方便,免费使用。还有jsp开发工具众多可以使用eclipse,也可以使用dreamweaver编辑,甚至是记事本也可以,因此对系统的运行环境的要求非常低,服务器代价较小。2 系统分析2.1 系统开发技术2.1.1 jsp特点jsp技术使用java编程语言编写类xml的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。jsp将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设
8、计,使基于web的应用程序的开发变得迅速和容易。web服务器在遇到访问jsp网页的请求时,首先执行其中的程序段,然后将执行结果连同jsp文件中的html代码一起返回给客户。插入的java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。jsp与java servlet一样,是在服务器端执行的,通常返回给客户端的就是一个html文本,因此客户端只要有浏览器就能浏览。jsp页面由html代码和嵌入其中的java代码所组成。服务器在页面被客户端请求以后对这些java代码进行处理,然后将生成的html页面返回给客户端的浏览器。java servlet 是jsp的技术基础,而且大型的
9、web应用程序的开发需要java servlet和jsp配合才能完成。jsp具备了java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。2.1.2 access数据库 存储方式单一:access管理的对象有表、查询、窗体、报表、页、宏和模块,以上对象都存放在后缀为(.mdb)的数据库文件种,便于用户的操作和管理。面向对象:access是一个面向对象的开发工具,利用面向对象的方式将数据库系统中的各种功能对象化,将数据库管理的各种功能封装在各类对象中。它将一个应用系统当作是由一系列对象组成的,对每个对象它都定义一组方法和属性,以定义该对象的行为和外国,用户还可
10、以按需要给对象扩展方法和属性。通过对象的方法、属性完成数据库的操作和管理,极大地简化了用户的开发工作。同时,这种基于面向对象的开发方式,使得开发应用程序更为简便。界面友好、易操作:access是一个可视化工具,是风格与windows完全一样,用户想要生成对象并应用,只要使用鼠标进行拖放即可,非常直观方便。系统还提供了表生成器、查询生成器、报表设计器以及数据库向导、表向导、查询向导、窗体向导、报表向导等工具,使得操作简便,容易使用和掌握。集成环境、处理多种数据信息:access基于windows操作系统下的集成开发环境,该环境集成了各种向导和生成器工具,极大地提高了开发人员的工作效率,使得建立数
11、据库、创建表、设计用户界面、设计数据查询、报表打印等可以方便有序地进行。access支持odbc(开发数据库互连,open data base connectivity),利用access强大的dde(动态数据交换)和ole(对象的联接和嵌入)特性,可以在一个数据表中嵌入位图、声音、excel表格、word文档,还可以建立动态的数据库报表和窗体等。access还可以将程序应用于网络,并与网络上的动态数据相联接。利用数据库访问页对象生成html文件,轻松构建internet/intranet的应用。2.2 uml活动关系图用户打开新闻管理与发布系统的主页,分为用户登录、用户注册、管理员登录和信息
12、显示等模块。用户单击用户登录,通过登录页面,可以进入用户权限界面,进行相关的操作,操作完成可以使用返回按钮,再进行其他操作。图2.1用户活动关系图管理员进入首页,通过管理员登录,经过验证进入管理员权限界面,能够进行新闻的管理,比如删除新闻等。图2.2管理员关系图2.3 系统模块根据上面的分析,可以得出系统应该包括:主页面模块、用户登录模块、管理员登录模块以及用户注册。用户登录模块包括:发布新闻、修改新闻和查询新闻;管理员登录模块包括:删除新闻和查询新闻。图2.3系统模块图整个系统均采用b/s结构进行设计,后台管理部分也是通过页面进行操作,系统后台数据库使用access。3 数据库设计与实现3.
13、1 数据库的需求分析根据系统需求,可以列出以下的数据项和数据结构。管理员信息表:管理员编号、管理员名字和管理员密码;新闻信息表:新闻编号、新闻标题、新闻类别、新闻内容和新闻更新时间;用户信息表:用户编号、用户姓名、用户性别、用户年龄和注册时间。3.2 数据库的逻辑设计根据以上的需求分析,可以得出各表的关系。建立表的主键约束,可以避免处理数据库时产生严重的问题,保证各表数据库的完整性。各表之间达到了3nf,表之间基本没有什么影响,彼此之间相互独立。3.3 数据库的物理设计 管理员信息表(manage)用于存储管理员所有基本信息:表3.1管理员信息表编号字段名称数据结构说明1id文本 管理员编号2
14、pswd文本密码 新闻信息表(info)用于存储新闻信息:表3.2新闻信息表编号字段名称数据结构说明1id文本 新闻编号2auther文本作者3title文本新闻标题4lb文本新闻类别5nr文本新闻内容6time文本发布时间7udtime文本更新时间 用户信息表(userinfo)用于存储用户信息:表3.3用户信息表编号字段名称数据结构说明1userid文本 用户编号2name文本用户姓名3sex文本用户性别4userpasswd文本用户密码5rgdate文本用户注册时间 4 代码编写 首先是首页的设计,使用表格table进行布局,使用html代码插入使用背景图片,使界面美观。加上基本模块的链
15、接方便用户的使用,其中代码设计如下:<body background='images/bg.jpg' ><table border=2 align="center" cellpadding="0" cellspacing="0" width=700 ><tr><td background='images/banner.jpg' width=700 height=71></td></tr><tr><td><
16、;table> <tr> <td width=20%><a href='user.jsp'>普通用户</a></td> <td width=20%><a href='register.jsp'>用户注册</a></td> <td width=20%><a href='manage.jsp'>管理员</a></td> <td width=80%><marquee>欢
17、迎来到本网站</marquee></td> </tr></table></td></tr>链接数据课的相关代码,由于使用的是access代码的数据库,链接时不需要使用测试链接,只需要在代码内部直接写出连接语句,但必须将数据库放在相同的目录之下,设计部分代码如下:string spath = "user.mdb"/access 数据库路径string dbpath = application.getrealpath(spath);/转化成物理路径string dbname = "" /
18、acvess 数据库用户名,没有则为空string user = "" /access 数据库密码,没有则为空/数据库连接字符串 string url ="jdbc:odbc:driver=microsoft access driver (*.mdb);dbq="+dbpath; /加载驱动程序class.forname("sun.jdbc.odbc.jdbcodbcdriver");/建立连接connection conn= drivermanager.getconnection(url); /创建语句对象statementsql=
19、conn.createstatement(resultset.type_scroll_sensitive,resultset.concur_updatable);string condition="select * from info"resultset rs=sql.executequery(condition);表格形式的显示,代码如下:out.print("<table border align='center' >"); out.print("<tr>"); out.print(&quo
20、t;<th width=20>"+"编号"); out.print("<th width=50>"+"新闻发布者"); out.print("<th width=100>"+"新闻标题"); out.print("<th width=50>"+"新闻类别"); out.print("<th width=180>"+"新闻内容"); out.prin
21、t("<th width=160>"+"发表时间"); out.print("<th width=160>"+"更新时间"); out.print("</tr>"); while(rs.next() out.print("<tr>"); string str=rs.getstring(1); out.print("<td >"+str+"</td>"); out.p
22、rint("<td >"+rs.getstring(2)+"</td>"); out.print("<td >"+rs.getstring(3)+"</td>"); out.print("<td >"+rs.getstring(4)+"</td>"); out.print("<td >"+rs.getstring(5)+"</td>"); o
23、ut.print("<td >"+rs.getstring(6)+"</td>"); out.print("<td >"+rs.getstring(7)+"</td>"); out.print("</tr>") ; out.print("</table></p>");新闻发布的相关的代码,主要是insert的代码,代码如下:stringcondition3="insertintoin
24、fo(id,auther,title,lb,nr,time,udtime)values('"+id+"','"+auther+"','"+title+"','"+lb+"','"+nr+"','"+time+"','"+udtime+"')" 在列名上我们需要添加一对原因在于access数据库产生的一些问题,对于其他数据库则可以不使用,
25、运行时也能成功。新闻修改的相关代码,主要是update的代码,代码如下:stringcondition5="updateinfosetauther='"+auther+"',title='"+title+"',lb='"+lb+"',nr='"+nr+"',time='"+time+"',udtime='"+udtime+"' where id='"+i
26、d+"'" 根据id查询并显示代码,代码如下: string condition="select * from info where id = "+"'"+id+"'" resultset rs=sql.executequery(condition);out.print("<table border align='center' >"); out.print("<tr>"); out.print("&l
27、t;th width=20>"+"编号"); out.print("<th width=50>"+"新闻发布者"); out.print("<th width=100>"+"新闻标题"); out.print("<th width=50>"+"新闻类别"); out.print("<th width=180>"+"新闻内容"); out.print(&q
28、uot;<th width=160>"+"发表时间"); out.print("<th width=160>"+"更新时间"); out.print("</tr>"); while(rs.next() out.print("<tr>"); string str=rs.getstring(1); out.print("<td >"+str+"</td>"); out.print
29、("<td >"+rs.getstring(2)+"</td>"); out.print("<td >"+rs.getstring(3)+"</td>"); out.print("<td >"+rs.getstring(4)+"</td>"); out.print("<td >"+rs.getstring(5)+"</td>"); out.p
30、rint("<td >"+rs.getstring(6)+"</td>"); out.print("<td >"+rs.getstring(7)+"</td>"); out.print("</tr>") ; out.print("</table></p>"); 根据新闻题目查询及根据新闻更新时间查询方法基本类似,在此就不再累赘了。关于滚动字幕的代码编写,代码如下:<marquee>
31、欢迎来到本网站</marquee> <marquee>还具有相关的属性,可以选择从上到下滚动还是从下到上,也可以从左往右和从右往左等。5 系统运行与测试首先进入首页,对首页界面进行测试:图5.1运行出错 出现这样一个原因在于没有启动tomcat,我们这个系统的发布是基于tomcat发布环境的,发现这个问题,则启动tomcat并刷新,得到这样的效果:图5.2系统首页首页正确显示,下面进入用户登录界面图5.3用户登录 当你输入用户名和密码正确时就进入用户特权模式,能够进行出了查看新闻以外的其他功能,比如可以发布新闻、查询新闻和修改新闻,相应的界面如下:图5.4用户功能选择
32、用户可以选择任意一项进行操作,如用户进入发布新闻,则可以进入发布新闻的界面,如果发现没有新闻可发布,可以选择返回,界面如下:图5.5新闻发布其他的功能测试的方法基本和发布新闻一致。 通过测试发现本系统最大的问题在于,输入条件的控制,没有相关的信息的判断。比如对于一个日期来说,其实应该使输入的时间为日期类型,否则应该认为无效。但由于本人技术水平有限,本学期主要只学习jsp相关,对于javascript脚本相关的控制代码不是很熟悉,刚开始也尝试使用,但在初期的调试中发现产生了非常多的错误,这些错误在这一阶段已经超出我的解决问题的能力范围,所以本次在开发这个系统时,没有考虑相关的限制条件。希望通过之后的学习,将这个系统进行完善。总结与体会我这次做的是基于web的新闻发布系统,主要采用的方法是jsp和access 数据库的建立。严格按照软件
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025劳动合同范本打印版劳动合同7篇
- 碳素石墨企业县域市场拓展与下沉战略研究报告
- 银行卡服务企业县域市场拓展与下沉战略研究报告
- 钻戒企业数字化转型与智慧升级战略研究报告
- 图书批发企业县域市场拓展与下沉战略研究报告
- 金属印刷品企业县域市场拓展与下沉战略研究报告
- 草种批发企业ESG实践与创新战略研究报告
- 二手汽车电商企业ESG实践与创新战略研究报告
- 硫铁矿石企业数字化转型与智慧升级战略研究报告
- DB3205-T 1094-2023 医疗护理员职业能力建设要求
- 认识常用电子元件图解课件
- 2025年铁岭卫生职业学院单招职业技能测试题库1套
- 2025年黑龙江商业职业学院单招职业技能测试题库及参考答案
- 部编版小学(2024版)小学道德与法治一年级下册《有个新目标》-第一课时教学课件
- 税法(第5版) 课件 第13章 印花税
- 建加油站申请书
- 2024-2025学年广州市高二语文上学期期末考试卷附答案解析
- 少年商学院《DeepSeek中小学生使用手册》
- 2025年山东铝业职业学院高职单招职业技能测试近5年常考版参考题库含答案解析
- 2025年上半年天津中煤进出口限公司招聘电力及新能源专业人才易考易错模拟试题(共500题)试卷后附参考答案
- 2024年教育公共基础知识笔记
评论
0/150
提交评论