博客网站系统实训报告Word文档下载推荐.docx

上传人:b****6 文档编号:16270099 上传时间:2022-11-22 格式:DOCX 页数:16 大小:1.09MB
下载 相关 举报
博客网站系统实训报告Word文档下载推荐.docx_第1页
第1页 / 共16页
博客网站系统实训报告Word文档下载推荐.docx_第2页
第2页 / 共16页
博客网站系统实训报告Word文档下载推荐.docx_第3页
第3页 / 共16页
博客网站系统实训报告Word文档下载推荐.docx_第4页
第4页 / 共16页
博客网站系统实训报告Word文档下载推荐.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

博客网站系统实训报告Word文档下载推荐.docx

《博客网站系统实训报告Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《博客网站系统实训报告Word文档下载推荐.docx(16页珍藏版)》请在冰豆网上搜索。

博客网站系统实训报告Word文档下载推荐.docx

对于用户而言,首先要能浏览其他用户发表的文章,并且这项操作是应该不需要登录的。

用户注册并登录后,要能够发表自己的信息,从而能够提供给别人查看。

2.2开发工具与技术介绍

硬件平台:

●CPU:

P41.8GHz;

●内存:

256MB以上。

软件平台:

●操作系统:

Windows7Server;

●数据库:

MySQL;

●开发工具包:

DreamweaverCS4,PhotoshopCS4,Eclipse;

●服务器:

IIS5.1;

●浏览器:

IE5.0及以上版本,推荐使用IE6.0;

分辨率:

最佳效果1024×

768。

3.总体设计

3.1系统项目规划

该博客网站的功能主要是为了博客用户设计开发的,用户进入博客网站后,有三种选择,注册新用户,登录和浏览博客。

通过注册和登录用户可以获取自己博客空间,如果不进行这些操作,用户也可以浏览其他用户的博客内容。

进入自己博客中,用户要能够完成如下功能

●对自己的博客进行个性化设计

●发表日志

●上传图片和对图片进行浏览

在博客首页中,是不区分用户是否登录的,用户用能够完成如下功能:

●浏览博客网站的所有文章

●浏览某一博客用户发表的所有文章

●浏览某一博客用户上传的图片

●对文章进行评论

●查看文章的点击率

●查看文章的评论量

3.2系统功能结构图

本系统首先需要对用户进行身份验证,验证时判断用户是以注册用户还是普通游客。

如果已是注册用户,则跳转到对应的个人博客的页面;

如果是游客,则直接进入到博客网站首页。

下面是博客网站的功能结构图。

是否

图3.1模块结构图

3.3数据库设计

本系统一共设计出5个实体,分别是用户实体、文章实体、个性化实体、评论实体以及点击量实体。

(1)用户表用来存储博客系统中建立自己的博客,并进行博客操作的客户,包括用户名、密码、昵称、密码保护问题和密码保护回答字段。

表3.1用户表

字段名

数据类型

是否主键

描述

username

文本(varchar)

用户名

password

登录密码

nickname

昵称

question

密码保护问题

answer

密码保护回答

(2)个性设置表用来储存用户对个人博客进行个性化设置的基本信息,包括用户名、博客标题和个性签名。

表3.1个性设置表

blogtitle

博客标题

idiograph

个性签名

(3)文章表用来存储博客系统中博客文章的基本信息,包括文章的Id、文章标题、文章内容、发表用户名、发表时间和评论数。

表3.1文章表

Id

整数(int)

文章Id

title

文章标题

content

文本(text)

文章内容

发表用户名

date

日期

发表时间

hasread

评论数

(4)评论表用来存储博客系统中所有评论的基本信息,包括评论Id、评论文章、评论内容和评论用户。

表3.1评论表

评论Id

Aid

所属文章ID

评论内容

评论用户

(5)点击量表用来存储博客系统中点击文章的基本信息,包括ID,文章ID,点击者IP和点击时间。

表3.1点击量表

点击ID

ip

点击者IP

time

点击时间

4.系统实现

4.1博客系统登录界面

如下图所示

图4.1博客系统登录界面

登录界面关键代码如下:

publicStringexecute()throwsException{

Useruser=newUser();

user.setUsername(username);

user.setPassword(password);

//获得request

HttpServletRequestrequest=ServletActionContext.getRequest();

if(userService.loginUser(user)){

request.setAttribute("

url"

"

user/getBlogInfo.action"

);

info"

登陆成功"

//将username保存到session范围中

//HttpSessionsession=request.getSession();

Mapsession=ActionContext.getContext().getSession();

//session.setAttribute("

username"

username);

session.put("

returnSUCCESS;

}else{

login.jsp"

登陆失败"

returnERROR;

}

}

4.2博客网站首页

进入登录界面后,可以选择不登录,而是直接单击“博客首页”,从而进入博客系统首页,在博客系统首页中可以查看到该博客的网站中已经发表的博客文章,在博客网站的右半部分还可以看到文章的发表时间、点击量、评论和发表用户。

图4.2博客网站首页

下面是博客网站页面的关键代码:

Pagepage=newPage();

//分页信息

page.setCurrentPage(0);

//设置当前页为第一页

page.setEveryPage(10);

//每页显示10条记录

Resultresult=articleService.

showArticleByPage(page);

//通过调用业务逻辑组件来完成查询

page=result.getPage();

List<

Article>

all=result.getList();

//获得文章结果集

StringfilePath=ServletActionContext.

getServletContext().getRealPath("

/rss.xml"

//设置订阅文件地址

CreateRss.publishRss(all,filePath);

//写入订阅文件

returnthis.SUCCESS;

4.3新博客注册界面

游客可以点击新用户注册来注册属于自己的用户。

点击新用户注册就可以进行新用户注册。

图4.3新博客注册界面

下面是新博客注册页面的关键代码:

//封装一个user对象

user.setNickname(nickname);

user.setQuestion(question);

user.setAnswer(answer);

if(userService.registerUser(user)){

注册成功"

}else{

register.jsp"

注册失败"

4.4个性化设置界面

登陆博客成功后,这是将进入到自己的博客页面,首先是让用户进行个性化设置。

图4.4个性化设置界面

下面是个性化设计界面的关键代码:

////获得request

//HttpServletRequestrequest=ServletActionContext.getRequest();

////获得session

//HttpSessionsession=request.getSession();

////获得username

//Stringusername=(String)session.getAttribute("

Mapsession=ActionContext.getContext().getSession();

Stringusername=(String)session.get("

BlogInfoblogInfo=newBlogInfo();

//设置用户名

blogInfo.setUsername(username);

//设置博客标题

blogInfo.setBlogtitle(blogtitle);

//设置个性签名

blogInfo.setIdiograph(idiograph);

//调用业务逻辑组件来完成设置

blogInfoService.setBlogInfo(blogInfo);

4.5写日志页面

单击“用户首页”超链接,可以查看自己已写完的所有博客文章,这是和游客相同的操作,单击“写日记”超链接,就会进入写日记页面。

图4.5写日志页面

下面是写日记界面的关键代码:

//封装一个PO类的对象

Articlearticle=newArticle();

article.setTitle(title);

article.setContent(content);

article.setUsername(username);

article.setDate(newDate());

article.setHasread(0);

articleService.addArticle(article);

}

4.6相册页面

在个人博客中,单击“相册”超链接,就会进入到相册页面。

图4.6相册页面

下面是相册页面的关键代码:

publicStringexecute()throwsException{//获得username

Mapsession=ServletActionContext.getContext().getSession();

Stringusername=(String)session.get("

//创建一个输入流

InputStreamis=newFileInputStream(myFile);

//设置文件保存目录

Filetofile=newFile(photoPath,filename);

//使用输出流来包装目标文件

OutputStreamos=newFileOutputStream(tofile);

byte[]buffer=newbyte[1024];

intlength=0;

while((length=is.read(buffer))>

0){

os.write(buffer,0,length);

}//关闭输入流

is.close();

//关闭输出流

os.close();

5.开发技巧与实现方法

5.1在Struts中使用拦截器进行用户登录的实现

在网站中有些功能是需要用户必须登录才能操作的,例如博客网站中的发布文章,因为该操作是不定位置的,所以直接在该功能上加上一个控制层是不合适的。

如果要完成该功能,在Struts2中就是采用拦截器的概念,在操作前先经过拦截器,通过拦截器判断用户是否登录。

如果已经登录,则可以通过;

如果没有登录,则返回让用户进行登录。

packagecom.sanqing.interceptor;

importjava.util.Map;

importcom.opensymphony.xwork2.Action;

importcom.opensymphony.xwork2.ActionContext;

importcom.opensymphony.xwork2.ActionInvocation;

importcom.opensymphony.xwork2.interceptor.AbstractInterceptor;

publicclassUserInterceptorextendsAbstractInterceptor{

publicStringintercept(ActionInvocationinvocation)throwsException{

ActionContextcontext=invocation.getInvocationContext();

Mapsession=context.getContext().getSession();

if(username==null||"

"

.equals(username)){

returnAction.LOGIN;

returninvocation.invoke();

5.2在拦截器中进行配置

拦截器开发完成后,还是不能起到效果的,还需要在Struts配置文件struts.xml中进行配置。

<

interceptors>

<

interceptorname="

userInterceptor"

class="

com.sanqing.interceptor.UserInterceptor"

>

/interceptor>

<

/interceptors>

5.3利用Hibernate技术进行个人博客操作

当进行个人博客操作时,是要将用户输入的信息保存到数据库中的。

在本系统项目中,进行数据库操作是通过Hibernate技术完成的,从而使DAO方法应用也更加简单。

importcom.sanqing.po.User;

publicclassUserDAOImplextendsHibernateDaoSupportimplementsUserDAO{

publicvoidadd(Useruser){

this.getHibernateTemplate().save(user);

publicvoiddelete(Useruser){

publicListqueryAll(){

returnnull;

publicUserqueryByID(Stringusername){

Listlist=this.getHibernateTemplate().find("

selectuserfromUseruserwhereuser.username='

+username+"

'

if(list.size()==0){

returnnull;

return(User)list.get(0);

5.4进行个人博客操作后,进行配置修改

因为本项目是采用Spring进行处理,所以需要配置文件中对DAO进行配置。

beanid="

userDAO"

com.sanqing.dao.UserDAOImpl"

propertyname="

hibernateTemplate"

refbean="

/>

/property>

<

/bean>

5.5在Action中进行超链接的调用

在显示所有文章页面中,每一个文章标题都是超链接,单击文章标题就会显示该文章的所有信息,包括内容、评论和点击数。

这些都将在查看文章Action中进行调用。

packagecom.sanqing.dao;

publicclassArticleDAOImplextendsHibernateDaoSupportimplementsArticleDAO{

publicArticlequeryById(intid){

Listfind=this.getHibernateTemplate().find("

selectartfromArticleartwhereart.id=?

id);

return(Article)find.get(0);

6.项目实训总结

通过本次课程设计,我感受颇多,尽管上课时也认真听了老师的讲课,但是已开始面对自己的题目时,还是有些不知所措,都不知道如何下手,后来去图书馆借了几本相关的书籍,心里在感觉有了一些底。

经过这差不多四个星期来的学习与编码,总算还是收获不少,对JavaEE的认识也更加的深刻了。

JSP是一门新技术,他基于JavaServlet以及整个JavaEE框架体系的Web开发技术。

从网上得知JavaEE的中文问题历史悠久,连绵不绝,至今也没有完全解决,但是上有政策下有对策,我们总是有办法搞定它的。

跟JavaEE相关的中文问题主要有两类,一类是编程的问题,涉及到I/O,内码转换等。

第二类是JavaEE运行环境的配置,涉及字体,属性配置等。

觉得很有必要给自己写个备忘录之类的。

学习了JavaEE,感触很深,这一技术是需要有一定基础、而且动手能力强的学科。

书上也强调一点是:

要想真正地掌握JavaEE技术,必须有较好的java语言基础,以及HTML语言方面的知识。

想想的确对啊。

在这个过程中,我感觉就像人生的一个缩影,充满了酸甜苦辣。

当一个问题想了好久也无法解决时,我感到沮丧与无助。

当经过努力解决了一个程序上的难题时,我感到无比的喜悦。

当经过每天为了编写代码一坐就是四五个小时,晚上还要写到凌晨一两点钟的时候,我感到无比的痛苦。

但艰难痛苦已成往事,灿烂的明天向我走来,今天我总算迎接了胜利的果实,以前的辛酸与痛苦化作我坚强的力量,将在我将来的人生历程中,为我的美好明天打下坚实的基础。

通过两周的实习JavaEE,这个实习,使我初步掌握和了解了JavaEE的基本运行原理、各个对象的结构和功能、怎样连接数据库、能自己手动写code开发一些小网页。

并且,自己能够组建一台JavaEE服务器,而且还了解了安装过程中,所要注意的事项。

对于一些简单的小问题,能够自己动手排除。

7.参考文献

[1].明日科技,陈丹丹,朱晓编著:

《JavaWeb典型模块与项目实战大全》[M],电子工业出

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1