个人博客系统.docx
- 文档编号:30740322
- 上传时间:2023-08-20
- 格式:DOCX
- 页数:19
- 大小:648.01KB
个人博客系统.docx
《个人博客系统.docx》由会员分享,可在线阅读,更多相关《个人博客系统.docx(19页珍藏版)》请在冰豆网上搜索。
个人博客系统
课程设计任务书
一、课程设计目的与任务
JSP程序设计课程设计是《JSP程序设计》课程的后续实践课程,旨在通过一周的实践训练,加深学生对JSP程序设计中的概念,原理和方法的理解,加强学生综合运用JSP网站设计技术进行实际问题处理的能力,进一步提高学生进行分析问题和解决问题的能力,包含系统分析、系统设计、系统实现和系统测试的能力。
学生将在指导老师的指导下,完成从需求分析,系统设计,编码到测试的全过程。
二、课程设计的内容与基本要求
1、课程设计题目
个人博客系统的JSP网站设计
2、课程设计内容
运用JSP技术设计一个个人博客系统,由前台用户操作和后台博主操作模块组成,其规划功能模块如下:
(1)前台用户操作
该模块主要包括查看文章、查看相册、查看好友、查看留言和博主登录等功能。
(2)后台博主操作
该模块主要包括文章管理、文章类别管理、相册管理、好友管理等功能。
具体要求为:
(1)要求使用HTML页面布局、JSP指令标识、JSP动作标识、JSP内置对象、JavaBean技术、JDBC技术、SQLServer2005或MySQL5.0数据库操作技术等。
(2)要求对用户登录信息进行判断,对不同的用户实现不同的访问控制权限,相关表的设计要求与实际应用模块关联,管理员对各个模块信息进行管理。
(3)每个人需要检查设计的网站,设计报告文档,并提交纸质版的课程报告和电子版的网站设计资料,包括:
源程序,网站运行效果截图,电子版的资料以班为单位刻成光盘后由学习委员统一提交。
3、设计报告撰写格式要求
1设计题目2开发环境3需求分析
4系统功能结构图
5数据库设计(包含数据表的设计、表间关系、E-R图)
6模块的算法流程图,图居中显示,图下方要有图编号和图名称
7公共类的编写(包括数据库连接及操作类、字符串处理类)
8、前台主页面设计
9、文章显示模块设计
10、博主登录模块设计
11、相册管理模块设计
12、调试过程和运行结果及结果分析(其中包括网站各个模块的运行结果和结果数据分析)
7自我评价与总结
8附录:
程序清单,注意加注释(包括关键字、方法、变量等),在每个模块前加注释;
三、课程设计步骤及时间进度和场地安排
本课程设计将安排在第19周,教育技术中心。
具体安排如下:
第一天下发任务书,学生查阅资料
第二天系统设计和原型开发
第三,四天系统功能实现,书写课程设计报告
第五天系统调试测试打包和验收
周次
星期一
星期二
星期三
星期四
星期五
第19周
第1-8节
第1-8节
第1-8节
第1-8节
第1-8节
地点
现教222
现教222
现教222
现教222
现教222
四、课程设计考核及评分标准
课程设计考核将综合考虑学生考勤和参与度,系统设计方案正确性,系统设计和开发效果以及课程设计报告书的质量。
具体评分标准如下:
设置六个评分点
(1)设计方案正确,具有可行性、创新性;25分
(2)系统开发效果较好;25分
(3)态度认真、刻苦钻研、遵守纪律;10分
(4)设计报告规范、课程设计报告质量高、参考文献充分20分
(5)课程设计答辩概念清晰,内容正确10分
(6)课程设计期间的课堂考勤、答疑与统筹考虑。
10分
按上述六项分别记分后求和,总分按五级记分法记载最后成绩。
优秀(100~90分),良好(80~89分),中等(70~79分),及格(60~69分),
不及格(0~59分)
1设计目的
个人博客系统的JSP网站设计
2开发环境
操作系统:
Windowsxp
编程环境:
JDK7.0
开发工具:
MyEclipse10
数据库可选用MicrosoftSQLServer
3.需求分析
此次课程设计主要是加深学生对JSP程序设计中的概念,原理和方法的理解,加强学生综合运用JSP网站设计技术进行实际问题处理的能力,进一步提高学生进行分析问题和解决问题的能力,包含系统分析、系统设计、系统实现和系统测试的能力。
(1)在个人博客系统中,博主通过用户名和密码登陆后台进行博客的管理,其中包括文章管理、文章类别管理、相册管理、好友管理和留言管理。
(2)前台首页,游客可以查看博主的基本信息,包括姓名、性别、QQ号码、文章模块、留言模块、相册模块等。
(3)在前台首页,游客在查看博主信息的同时,也可以对文章进行评论,在留言模块进行留言等。
4系统功能结构图
4.1博客网站前台功能结构
图4.1博客网站前台功能结构图
4.2博客网站后台功能结构
图4.2博客网站后台功能结构图
5数据库设计
5.1ER图
在系统功能结构图中基础上,分析得知需要文章信息实体,文章类别信息实体,评论信息实体,相片信息实体,好友信息实体,留言信息实体,博主信息实体这几个实体能够满足用户的需求
5.1.1文章信息实体
图5.1文章信息实体ER图
5.1.2文章类别信息实体
图5.2文章类别信息实体ER图
5.1.3相片信息实体
图5.3相片信息实体ER图
5.1.4博主信息实体
图5.4博主信息实体ER图
5.2主要数据表的结构
表1tb_article
表2tb_articleType
表3tb_friend
表4tb_master
表5tb_photo
表6tb_review
表7tb_word
5.3数据表间关系
图5.5表间关系
6模块算法流程图
图6.1博客总体流程图
图6.2后台相册管理流程图
7公共类编写
在本博客网站中,主要用到了两个公共类。
数据库连接及操作类和字符串处理类。
数据库连接及操作类(DB)主要是对数据的操作,如连接、关闭数据库及执行SQL语句操作数据库,
代码如下:
/*通过构造方法加载数据库驱动*/
publicDB(){
try{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
}catch(Exceptione){
e.printStackTrace();
System.out.println("加载数据库驱动失败!
");
}
}
/*创建数据库连接*/
publicvoidcreateCon(){
try{
con=DriverManager.getConnection(url,userName,password);
}catch(Exceptione){
e.printStackTrace();
System.out.println("获取数据库连接失败!
");
}
}
字符串处理类(MyTool)用来解决程序中经常出现的有关字符串处理的问题,在本系统的字符串处理类中实现了转换字符串中的特殊HTMl字符、将日期型数据转换为字符串、将String型转换为int型以及解决了中文乱码的问题的操作。
代码如下:
/**
*@功能转换字符串值为int型值
*@参数value为要转换的字符串
*@返回值int型值
*/
publicstaticStringchangeHTML(Stringvalue){
value=value.replace("&","&");
value=value.replace(""," ");
value=value.replace("<","<");
value=value.replace(">",">");
value=value.replace("\r\n","
");
returnvalue;
}
8前台主页面设计
博客首页FrontIndex.jsp用来显示一些其它模块的内容,如文章,相册等。
因此我们要先实例化数据处理类ArticleDao和PhotoDao,然后调用实例化对象中的方法从数据库中得到文章和相片,在通过后台封装和前台拆除封装使得文章和相片能在首页上显示。
(1)从tb_article数据表中获取前3篇文章
ListarticleList=articleDao.queryArticle(-1,null);
request.setAttribute("articleList",articleList);
(2)从tb_photo数据表中获取前8张照片
ListphotoList=photoDao.queryPhoto("sub");
request.setAttribute("photoList",photoList);
(3)从tb_word数据表中获取前5条留言
ListwordList=wordDao.queryWord("sub");
session.setAttribute("wordList",wordList);
(4)从tb_article数据表中获取前5章推荐文章
ListartTJList=articleDao.queryArticle(4,"sub");
session.setAttribute("artTJList",artTJList);
(5)从tb_friend数据表中获取前5位好友信息
ListfriendList=friendDao.queryFriend("sub");
session.setAttribute("friendList",friendList);
(6)从tb_articleType数据表中获取文章类别
ListartTypeList=artTypeDao.queryTypeList();
session.setAttribute("artTypeList",artTypeList);
(7)保存博主信息
session.setAttribute("master",masterBean)。
9文章显示模块设计
此模块的主要功能是用户查看发表的文章列表及文章的详细内容,文章显示功能需要显示的信息包括文章标题、发表时间、文章的阅读次数等。
设计步骤为:
①创建封装文章信息的值JavaBean——AtricleBean。
②创建操作数据库的AricleDao类,在该类中实现了对数据库进行各种增、删、改、查的操作。
在该类中,创建一个queryArticle()方法用来获取在首页中进行列表显示的文章,也可用于其它情况下的文章列表显示。
③创建接收并处理访问首页面请求的Servlet——IndexServlet。
在该页面中将调用ArticleDao类中的queryArticle()方法来获取在首页面要显示的文章。
④在FrontIndex.jsp页面中内容显示区中编写列表显示文章的代码。
⑤在web.xml配置文件中配置IndexServlet。
10博主登录模块设计
进入登录界面Logan.jsp,输入用户名和密码,在LoganDao中实例化数据库对象,在LoganXServlet.java中将输入的数据与数据库中的数据进行对比,符合则进入后台管理,不符合则重新登录。
代码如下:
if(!
mark){
request.setAttribute("messages","
rd=request.getRequestDispatcher("/admin/logon.jsp");
rd.forward(request,response);
}
else{
HttpSessionsession=request.getSession();
session.setAttribute("logoner",logoner);
response.sendRedirect("admin/AdminIndex.jsp");
}
}
11相册管理模块设计
进入相册管理的上传照片界面PhotoUpload.jsp,点击浏览从文件中选择图片,点击上传,先要创建数据库对象,然后将图片存入数据库。
进入浏览/删除照片界面PhotoList.jsp,可以对照片进行删除,查看操作。
上传照片的PhotoUpload.jsp页面中,点击“浏览”,会调用PhotoServlet中的addphoto()方法。
实现图片的上传。
浏览照片需要在PhotoServlet.java中创建用来接收“查看照片”请求的singlephoto()方法,代码如下:
publicvoidsinglePhoto(HttpServletRequestrequest,
HttpServletResponseresponse)throwsServletException,IOException{
PhotoDaophotoDao=newPhotoDao();
StringstrId=request.getParameter("id");
intid=MyTools.strToint(strId);
PhotoBeanphotoSingle=photoDao.queryPhoto(id);
request.setAttribute("photoSingle",photoSingle);
RequestDispatcherrd=request.getRequestDispatcher("/front/photo/PhotoSingle.jsp");
rd.forward(request,response);
}
12调试过程和运行结果及结果分析
图12.1首页显示图
图12.2文章模块显示图
图12.3登录模块显示图
图12.4相册管理模块图
图12.5我的相册页面
13自我评价与总结
经过一个多星期的设计和开发,个人博客系统开发完毕。
系统基本符合任务要求。
在整个设计过程中,也出现过很多的问题,在老师和同学的帮助下,在不断学习的过程中我体会到这是一个不断学习的过程,从设计初的模糊认识到最后能够顺利完成,我体会到在实践中学习的重要性。
由于开始时对系统缺乏整体认识,不具备系统开发思想,对系统的功能需求分析的要求认识不够清楚,使得后续的工作不得不经常返回去修改代码。
使我体会到在设计中的每一步的重要性,如果上一个步骤不能很好的完成,在后续的设计将会付出几倍的代价。
同样在设计过程中,遇到很多困难,我学会通过别人的代码理解语言的含义但这并不是抄袭,然后根据自己的设计要求编写代码。
设计过程中,由于要实现某些功能,网上资源解决了我的问题。
总之,通过这次设计,我深刻体会到要做好一个完整的事情,需要有系统的思维方式和方法,对待一个新的问题,要耐心、要善于运用已有的资源来充实自己。
同时我也深刻的认识到,在对待一个新事物时,一定要从整体考虑,完成一步之后再作下一步,这样对于系统而言才能更加有效。
最重要的是摸索出了一套考虑问题和解决问题的方法,这对于我以后的学习受益匪浅。
经过一个多星期的不懈努力,和指导老师的谆谆教导,以及同学的帮助,充分利用所学的专业知识,通过大量阅读与设计相关的专业参考文献,我终于完成了这次任务。
设计过程中质疑(或答辩)记载:
1.数据库的连接方法?
答:
创建数据的连接方法creteCon(),方法中使用了DriverManager类的getConnection()静态方法获取一个Connection类实例,即获取一个数据库连接。
具体代码为:
publicvoidcreateCon(){con=DriverManager.getConnection(ur1,username,password)}.
2.如何实现照片的上传?
答:
应用了jspSmartUpload文件上传组件。
在上传照片的PhotoUpload.jsp页面中,选择上传照片后,提交到PhotoServlet.java进行处理。
首先在doPost()方法中获取用户的请求操作,调用addPost()方法实现照片的上传。
指导教师评语:
签名:
年月日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 个人 博客 系统