欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > DOC文档下载  

    学生个人博客_毕业论文.doc

    • 资源ID:3926780       资源大小:1.96MB        全文页数:44页
    • 资源格式: DOC        下载积分:6
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要6
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    学生个人博客_毕业论文.doc

    1 学生个人博客学生个人博客 摘要摘要:随着科学的发展,技术的进步,计算机在人们生活学习中扮演着越来越重要的角色。 人们开始利用计算机交流沟通也变得越来越频繁,而博客作为交流的工具,已经成为了 人们深度交流沟通的网络新方式。 学生个人博客主要是为了方便学生在线交流,沟通,可以交流学习心得,展示个人才能, 聊天交友,还可以作为网络个人日记,发表自己的心情。 本博客主要由三个功能模块组成:注册登录,发表文章照片,评论及浏览组成。采用 JavaEE 三大核心框架(Struts2,Hibernate,Spring)的设计模式,利用 Hibernate 与 MySql 数据库无缝对接,后台数据库是 MySql5.5,该数据库具有是开源的数据库系统, 该数据库具有较高的完整性,一致性,安全性,博客网站本身运行在 Tomcat6.0 服务器 上。 关键词关键词:博客,核心框架,学子博客,MySql 数据库 目录目录 摘要摘要 1 ABSTRACTABSTRACT 1 第一章第一章 绪绪 论论 4 1.11.1 选题背景选题背景.4 1.21.2 课题研究意义课题研究意义.4 1.31.3 论文的组织结构和具体安排论文的组织结构和具体安排.4 第二章第二章 个人博客需求分析个人博客需求分析 5 2.12.1 可行性分析可行性分析5 2.1.12.1.1 技术可行性技术可行性 5 2.1.2.2.1.2.经济可行性经济可行性 5 2.22.2 个人博客需求概述个人博客需求概述.5 2.2.12.2.1 网站目标网站目标.5 2.32.3 个人博客网站需求模型个人博客网站需求模型.5 2.3.12.3.1 功能描述功能描述.5 2.3.22.3.2 详细功能描述详细功能描述.6 2 2.3.32.3.3 主要功能模块处理流程的描述主要功能模块处理流程的描述.6 第三章第三章 整体设计整体设计 .10 3.13.1 数据库设计数据库设计10 3.1.13.1.1 数据库设计概述数据库设计概述10 3.1.23.1.2 用户信息表结构设计用户信息表结构设计 .11 3.1.33.1.3 个性化设置表表结构设计个性化设置表表结构设计11 3.1.43.1.4 文章列表表结构设计文章列表表结构设计11 3.1.53.1.5 评论列表表结构设计评论列表表结构设计12 3.1.63.1.6 点击量列表表结构设计点击量列表表结构设计12 3.1.73.1.7 留言板列表表结构设计留言板列表表结构设计12 第四章第四章 程序设计与编码程序设计与编码 13 4.14.1 开发平台与工具开发平台与工具13 4.1.14.1.1 MyEclipse8.6MyEclipse8.6 平台平台.13 4.1.24.1.2 服务器和数据库服务器和数据库 .13 4.24.2 程序设计程序设计13 4.2.14.2.1 程序设计概述程序设计概述13 4.2.24.2.2 三大框架之间的连接和配置三大框架之间的连接和配置 .14 4.2.34.2.3 注册登录模块的程序设计注册登录模块的程序设计20 4.2.44.2.4 个性化设置模块功能的实现个性化设置模块功能的实现24 4.2.54.2.5 发表查看文章模块功能的实现发表查看文章模块功能的实现 .24 4.2.64.2.6 评论模块功能的实现评论模块功能的实现 .27 4.2.74.2.7 相册模块功能的实现相册模块功能的实现 .29 4.2.84.2.8 组件化分页模块组件化分页模块 .31 4.2.94.2.9 个人信个人信息息模块模块 .33 4.2.104.2.10 留言板模块功能的实现留言板模块功能的实现 35 第五章第五章 测试博客测试博客 39 5.15.1 软件测试分析软件测试分析.39 5.1.15.1.1 测试的目的和重要性测试的目的和重要性 .39 5.1.25.1.2 测试的方法与步骤测试的方法与步骤 .39 5.25.2 设计测试用例设计测试用例39 5.2.15.2.1 单元测试单元测试39 5.2.25.2.2 集成测试集成测试41 5.2.35.2.3 验收测试验收测试 .41 3 第第 六六 章章 结束语结束语 42 6.16.1 完成效果完成效果42 6.26.2 改进意见改进意见42 6.36.3 收获体会收获体会42 参考文献参考文献: .43 致致 谢谢 44 第一章第一章 绪绪 论论 1.11.1 选题背景选题背景 在科技飞速发展的今天,互联网正成为人们快速获取、发布和传递信息的最为便捷的 渠道,它在人们日常的生活和学习中发挥着重要的作用。而近年来博客和博客文化正在 成为互联网的热点,并被视为是 e-mail,bbs,icq 之后的第四种网络交流方式,由于博 客的沟通方式比电子邮件、讨论群组等更为简单容易,现在已经成为了家庭、公司、部 门、团队之间越来越盛行的沟通工具了。博客正在改变着当今社会的交流方式,越来越 多的人选择加入到博客的阵营。 我之所以选择做个人博客,首先是因为可以从中学到很多的网络和编程方面的知识, 其次通过这个毕业设计可以很好的锻炼自己的动手能力,并提高自己的个人能力。最后 个人博客是当前互联网上的热点,它既可以作为一个聊天工具又能作为一个交流的平台, 对大多数人而言都是非常实用的。 1.21.2 课题研究意义课题研究意义 随着知识经济的到来,人们已经开始向信息化社会迈进。信息增长的速度越来越快, 人们希望能够用一种便捷有效的工具来处理这些信息,并从中获取对自己有用的信息, 以提高自己的工作效率。在这个信息化的时代,网络技术的运用和发展不仅能够造福于 人们,还能够促进社会的进步,经济的发展。因此,作为一种交流和沟通的工具,对博 客的研究是非常有必要有意义的。 1.31.3 论文的组织结构和具体安排论文的组织结构和具体安排 4 本次设计的目标是,开发一个个人博客网站。借助该网站,不同年级不同学院的学 生可以通过查看文章学习到自己需要的知识,并能够自己发表文章,发表个人的心得体 会等。还可以上传自己的照片,聊天交友等等。 论文分为五个部分: 第一章即本章绪论,简述开发个人博客的背景,以及研究博客的意义。 第二章为需求分析,本章中明确了博客需要实现的功能,分析了博客的开发流程,并介 绍根据需求选择相应的开发工具和技术。 第三章是总体设计,详细描述了博客需要的数据库的设计情况,并给出了总体界面的设 计方案。 第四章为博客的程序设计和具体的编码,包括各个模块的实现方法及其关键的代码,并 截取了一些图片作为参考,以便能够更加直观的了解博客的实现情况。 第五章是对博客进行整体的测试,测试功能实现并对测试结果进行记录分析。 第六章是结束语,总结本次设计中的难点和亮点以及自己在这次毕业设计中学到的知识。 第二章第二章 个人博客需求分析个人博客需求分析 2.12.1 可行性分析可行性分析 个人博客作为一种新的交流沟通的工具和平台,能够有效地促进交流,解决学生的 实际问题,方便学生的学习生活,开发本网站的可行性研究如下: 2.1.12.1.1 技术可行性技术可行性 技术上的可行性分析主要分析技术条件能否顺利完成开发工作,能否满足实际的需 求。本网站使用 java 语言开发,利用开源的 Tomcat 作为运行服务器,用户界面简洁, 易操作。网站的数据库采用开源的 MySql 存储数据,Mysql 能够处理较大的数据,同时保 持数据的完整性和安全性。因此开发本网站的平台是成熟可行的。 2.1.2.2.1.2.经济可行性经济可行性 随着经济的发展,计算机的普及程度已经非常的高了,而开发本网站的配置和技术 均可行,因此开发这样的一个网站成本是可以控制的,并且网站的运行可以加强学生之 间的交流和沟通,方便学生的学习生活,还可以有一定的经济回报,因此该网站在经济 上是可行的。 2.22.2 个人博客需求概述个人博客需求概述 2.2.12.2.1 网站目标网站目标 本网站的核心架构是 JavaEE 中的三大框架,在网站中主要有两种类型的用户。即注 册用户和非注册用户。注册并登陆的用户可以在网站中查看自己活着他人发表的文章, 5 可 以 上传自己的照片,还可以对自己感兴趣的文章加以标注和评论。而对于非注册的用户, 只能以浏览者的身份进入,可以查看网站中其他人发表的文章,也可以匿名的发表评论, 但是不能写文章,也不能上传自己的图片等。 2.32.3 个人博客网站需求模型个人博客网站需求模型 2.3.12.3.1 功能描述功能描述 个人博客网站的主要目标是作为一个交流的工具和一个沟通的平台,让不同年级不同 专业的学生可以在这里交流学习的经验,可以发表自己的想法,还可以上传自己的图片 来聊天交友,本网站的基本功能如下: 1 1注册登录注册登录 凡是要发表文章显示个人信息的用户均必须先注册账号,再通过登录验证才能够进行各 种功能的操作,不注册登录的用户在网站中权限较低。 2 2网站设置网站设置 网站制作者可以修改网页的基本页面,更改系统时间。 3.3.用户功能用户功能 用户可以查看,删除,评论相应的文章,可以通过问题回自己的账户密码。 4.4.其他的功能其他的功能 网站制作者可以管理网站,并拥有起亚用户所拥有的所有的权限和功能。 2.3.22.3.2 详细功能描述详细功能描述 学生通过浏览器访问到本网站,可以使用一下功能: 1)注册用户 按照规定注册一个正确的账号。 2)用户登录 输入注册过的用户名和密码登录。 3)修改登录密码 可以修改自己的登录密码 4)查看文章 可以查看其它人发表的文章,也可以查看自己已经发表过的文章。 5)修改个性化设置 可以更改个人的设置 6)评论文章 可以对好的文章进行评论,还可以查看别人的评论。 7)上传相册 对登录用户,可以上传自己的照片。 6 8)链接 本网站提供了对一些知名博客的链接,可以点击链接进入其他博客网站。 8)留言 本网站提供了留言板,所有登陆用户都可以进行留言或者查看别人的留言。 2.3.32.3.3 主要功能模块处理流程的描述主要功能模块处理流程的描述 个人博客网站主要可以分为几个个大的模块,第一个模块是用户注册登录模块,即进入 网站模块。第二个模块是用户的个性化设置,第三个模块是发表文章,查看文章内容, 第四个模块是相册模块开发与 RSS 订阅。 用户注册登录模块:用户注册登录模块: (1)功能描述 完成注册登录,填写基本信息 查看并修改个人信息。 (2)具体流程图 个性化设置模块个性化设置模块 (1)功能描述 可以设置个性化页面,用于显示在网站上方。 7 可 以 修改个性化语句。 (2)具体流程图 发表,管理文章模块发表,管理文章模块 (1)功能描述 登陆成功后发表自己的文章。 查看管理自己的文章,还可以查看他人的文章。 (2)具体的流程图: 8 相册模块开发与相册模块开发与 RSSRSS 订阅:订阅: (1)功能描述 可以点击上传图片到服务器。 通过 RSS 订阅能够快速查找到文章和显示新添加的文章 (2)流程图 9 第三章第三章 整体设计整体设计 10 3.13.1 数据库设计数据库设计 3.1.13.1.1 数据库设计概述数据库设计概述 数据库是整个系统最核心的部分,数据库设计的好坏直接影响到整个系统的设计成败,因 此本节专门来讨论有关数据库的设计。 数据库作为管理数据的最新技术。近年来随着计算机的大力发展数据库管理系统已 从专用的应用程序发展成为通用的系统软件。由于现在的数据库都具有数据结构化,最 低冗余度,较高的程序与数据独立性,易于扩充,易于编制应用程序等优点,较大的信 息系统都是建立在数据库设计之上的。 数据库的出现改变了人们存储数据的方式,极大地提高了存储数据的能力,方便了 人们对数据的管理和利用,并提高了人们的决策的可靠性。目前,数据库已经成为现代 信息系统不可分割的重要组成部分。数据库技术也已经成为计算机领域中发展最快的技 术之一。 数据库设计是将现实世界的实体模型与需求转换成数据库的模型的过程,它是建立 数据库应用系统的核心问题。数据库及其应用的性能都建立在良好的数据库设计的基础 之上,数据库的数据是一切操作的基础,如果数据库设计不好,那么其它一切用于提高 数据库性能的方法收效都是有限的。数据库设计的关键是如何使设计的数据库能合理地 存储用户的数据,方便用户进行数据处理。 数据库的设计都必须遵循一定的规则,每一个数据库都有自己不同的规则,在关系 型数据库中,这种规则就是范式,范式是符合某一种级别的关系模式的集合。一般人们 设计数据库都遵循第三范式。即:数据库表中不包含已在其他表中包含的非主关键字信 息。采用范式减少了数据冗余,节约了存储空间,同时加快了操作数据库的速度。 整个博客网站所包括的信息表有 1:用户信息表:(B_User) 2:个性化设置表:(B_blog) 3:文章列表:(B_Article) 4:评论列表:(B_Criticle) 5:点击量列表:(B_Clickrate) 5:留言板列表:(guestbook)等相应信息表。可将这些信息抽象为所需要的数据项和数 据结构 1) 用户信息表(用户 ID,用户姓名,昵称,邮箱,密码,验证码,是否验证,密保问题, 密保答案) 2) 个性化设置表(个性化 ID,用户 ID,个性化题目,个性化内容) 3) 文章列表(文章 ID,文章标题,文章内容,用户姓名,发表日期,是否已读) 11 4) 评 论列表(评论 ID,文章 ID,评论内容,用户姓名) 5) 点击量列表(点击量 ID,文章 ID,点击 IP 地址,点击时间) 6) 留言板列表(留言 ID,作者,标题,内容,留言时间) 注:带方框的表示表的主键 3.1.23.1.2 用户信息表结构设计用户信息表结构设计 用户信息表主要保存博客网站已经注册过的用户基本信息,主要包括用户的登录账 户和密码以及一些基本的验证。表的具体结构如下所示: 用户信息表 B_User 字段名称数据类型 字段长度 是否为空说明 userIdInt 10 NoKey usernamevarchar 50 No用户名 nicknamevarchar20No昵称 passwordvarchar20No密码 emailvarchar50No邮箱 emailValidateCodevarchar50No邮箱验证码 isValidateEmailchar1Yes邮箱是否已验证 questionvarchar20No密保问题 answervarchar50No密保答案 3.1.33.1.3 个性化设置表表结构设计个性化设置表表结构设计 该表的设计主要是用于存储登录用户的个性化设置,主要设置其页面,包括个性化标 题和个性化内容,当用户进入时其个性化语句会显示在上方页面的中央,表的具体结构 设计如下所示: 个性化设置表 B_Blog 字段名称数据类型 字段长度 是否为空说明 blogIdInt 10 NoKey userIdInt 10 Yse 用户 Id 号 blogTitlevarchar20No 个性化标题 Idiographvarchar20No个性化内容 3.1.43.1.4 文章列表表结构设计文章列表表结构设计 文章列表主要用来存储用户发表的文章,包括文章的标题,内容,该用户是否已阅读, 查看的日期以及用户名。用过该表可以读取当前博客网站的所有文章信息,还可以根据 登录用户名查看用户个人发表的文章信息,表的具体结构设计如下所示: 文章列表 B_Article 字段名称数据类型 字段长度 是否为空说明 articleIdInt 10 NoKey 12 titlevarchar 255 No 文章标题 contentvarchar255No 文章内容 usernamevarchar255No 用户名 datedateTime19Yes查看文章日期 hasreadInt10No用户是否已查看 3.1.53.1.5 评论列表表结构设计评论列表表结构设计 此表的设计主要用于存储用户对文章的评论信息,主要有两种用户:未登录的用户和登 录用户,登录用户在评论后会显示其用户名,未登录用户只能以匿名的方式发表评论,表 的具体结构设计如下所示: 评论列表 B_Criticle 字段名称数据类型 字段长度 是否为空说明 critiqueIdInt 10 NoKey articleIdInt 10 No 文章 ID 号 CritiqueContentvarchar500No评论内容 usernamevarvhar255No用户名 3.1.63.1.6 点击量列表表结构设计点击量列表表结构设计 该表的设计主要用于记录文章的点击数量,这里要根据用户的 IP 地址来判断不同的用户, 因此该表存储文章的 ID 号,用户的 IP 地址以及点击的时间。表的具体结构设计如下所 示: 点击量列表 B_Clicrate 字段名称数据类型 字段长度 是否为空说明 clickRateId int 10 NoKey articleIdInt 10 No 文章 ID 号 Ipvarchar255No 访问 IP 地址 clickTimeDate10Yes点击的时间 3.1.73.1.7 留言板列表表结构设计留言板列表表结构设计 该表的设计主要用于记录文章的点击数量,这里要根据用户的 IP 地址来判断不同的用户, 因此该表存储文章的 ID 号,用户的 IP 地址以及点击的时间。表的具体结构设计如下所 示: 留言列表 guestbook 字段名称数据类型 字段长度 是否为空说明 Id int 10 NoKey authorvarther 20 Yes作者 titlevarchar20Yes 标题 contentvarthar500Yes评论内容 intimevarchar20Yes留言时间 13 第第 四章四章 程序设计与编码程序设计与编码 4.14.1 开发平台与工具开发平台与工具 4.1.14.1.1 MyEclipse8.6MyEclipse8.6 平台平台 本博客采用 MyEclipse 工作平台,MyEclipse 企业级工作平台(MyEclipse Enterprise Workbench ,简称 MyEclipse)是对 Eclipse IDE 的扩展,利用它我们可以在数据库和 J2EE 的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰 富的 J2EE 集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持 HTML, Struts, JSF, CSS, Javascript, SQL, Hibernate。在结构上 MyEclipse 的特征可以分为七类: 1、J2EE 模型;2、WEB 开发工具;3、EJB 开发工具;3、应用程序服务器的连接; 4、J2EE 项目部署服务;6、数据库服务;7、MyEclipse 整合帮助。 在个人博客的开发过程中,应用的是 MyEclipse8.6 这个版本,作为 MyEclipse 较 新的版本,MyEclipse8.6 中的关键特性有:支持最新版本的 Apache Tomcat,支持 Spring 项目,Spring 安全向导,Spring 服务从 WSDL,Spring 代码辅助管理,完整的 Java 探测,支持 Ajax 工具,支持 Web 服务工具。因此个人博客运行的服务器我选择 的是新版本的 Apache Tomcat 6.0.35 版本。 4.1.24.1.2 服务器和数据库服务器和数据库 在系统的开发过程中使用的服务器是 Tomcat,Tomcat 来源于 Apache 软件基金会 (Apache Software Foundation)的 Jakarta 项目中的一个核心项目, ,由 Apache、Sun 和 其他一些公司及个人共同开发而成。由于有了前 Sun 公司的参与和支持,最新的 Servlet 和 JSP 规范总是能在 Tomcat 中得到体现。并且因为 Tomcat 技术先进、性能稳定,而且 免费,成为目前比较流行的 Web 应用服务器。因此本博客选择了 Tomcat 作为其服务器。 开发用的系统工具如下表所示: 个人博客开发平台和工具 工具名称用途 MyEclipse8.6 Tomcat6.0 MySql5.5 博客的开发平台 WEB 服务器 数据的存储 4.24.2 程序设计程序设计 4.2.14.2.1 程序设计概述程序设计概述 本博客在设计的过程中运用了当今非常流行的编程模式-三层架构的思想,即将界 面层,业务逻辑层,数据操作层相分离,使用 JavaEE 中非常著名的三大框架 14 ( Struts2,Spring,Hibernate)来分别实现,其中界面层使用 Struts2,业务逻辑层使用 Spring,数据操作层使用 Hibernate。 Struts2 是用于 Web 项目中 UI 层的开源的框架,是经典的 MVC 模式实现的案例。作为 一款开源的框架,Struts2 具有非常明显的优势和特点:1.Struts2 中将业务数据,显示页面, 动作处理等进行分离,极大地方便了代码的维护。2.Struts2 采用的是 Front Controller 模 式来实现对各种触发动作的处理,要求所有的请求都经过统一的入口,再进行转发,方 便了我们对代码的统一控制和管理。3.Struts2 中通过 Action 类实现各种逻辑,并且利用 Struts2 的核心标签来完成对数据的呈现。4.struts2 在 servlet 容器中运行,通过配置文件 web.xml 来完成到相应的 Action 的跳转。 Spring 主要运用于业务逻辑层,在功能上有润滑剂的美称。Spring 主要通过控制反转, AOP 应用,面向接口编程来降低组件之间的耦合度,增加系统的扩展性。Spring 作为一 个分层框架,由七个定义良好的模块组成,其中最重要的模块是核心容器。核心容器定 义了创建、配置和管理 bean 的方式,并且提供了 Spring 框架的基本功能。Beanfactory 作 为核心容器的组件,是工厂模式的实现。其利用控制反转将应用程序的配置和应用分开, 减少了代码的耦合。 Hibernate 主要作用于数据层,主要用于封装数据访问层的组件。在应用程序中的数据 用对象来体现,而数据库中,数据用表的形式保存。Hibernate 利用对象- 关系映射,将 应用程序中的对象(Object)与表中的数据(Relationship)之间的映射(Mapping) 。利用 Hibernate 可以直接从数据库中取出 java 对象,并将 java 对象直接保存在数据库中,中间 的 sql 等语句都被封装了。 4.2.24.2.2 三大框架之间的连接和配置三大框架之间的连接和配置 org.springframework.web.context.ContextLoaderListener contextConfigLocation classpath:config/spring/applicationContext.xml 根据需求将 Spring 分配置文件分类: 15 基 本 的配置信息(db.properties),主要用于连接数据库: 在 Spring 的配置文件 applicationContext.xml 中加载外部配置文件信息: classpath:config/props/db.properties 16 $dialect $format_sql $show_sql config/hibernate/hbm/User.hbm.xml config/hibernate/hbm/Blog.hbm.xml config/hibernate/hbm/Article.hbm.xml config/hibernate/hbm/ClickRate.hbm.xml config/hibernate/hbm/Critique.hbm.xml 在 Hibernate 的配置文件里加载数据库表信息 17 Hbm 配置文件主要放置表的信息:(如 Article.hbm.xml 文件) Struts2 的配置文件放在自定义的文件夹下: 在 web.xml 中添加 struts2 监视器: struts2 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter 18 config struts-default.xml,struts-plugin.xml,config/struts/struts.xml struts2 *.action struts2 *.jsp 声明 Spring 对 Struts2 管理: 其中 applicationContext-web.xml 主要用于声明 Struts2 中的 Action:(部分代码) 19 其中 applicationContext-biz.xml 主要加载业务逻辑层的 Action:(部分代码) applicationContext-dao.xml 主要加载 dao 层的 Action: 20 4.2.34.2.3 注册登录模块的程序设计注册登录模块的程序设计 本模块主要用于用户第一次进入时注册和登录,用户注册时根据提示正确的填写基本 信息,成功后即完成。登录时必须输入正确的用户名和密码,否者会提示错误,并禁止 用户发表文章。 注册界面 登录界面 21 没 有 账号的用户首先选择注册账户,在成功注册后既可以开始登录了。在正确输入了用户名, 密码和验证码后用户登录成功。这里注册界面我用了两种校验,第一种是在客户端 jsp 页 面进行校验,第二层校验是在服务器端校验,利用 struts2 提供的方法进行。 注册模块代码: public class DoRegistAction extends BaseAction private User user; private String validateCode; private String getErrorInfo; private IUserService userService; /这里要利用 spring 的配置获取器对象 public void validate() /用户名检验 if(null = user.getUsername() |“.equals(user.getUsername().trim() this.addFieldError(“user.username“, “用户名不能为空“); return; if(user.getUsername().length()20) this.addFieldError(“user.username“, “用户名长度应为 520 位“); return; /密码检验 if(null = user.getPassword() |“.equals(user.getPassword().trim() this.addFieldError(“user.password“, “密码不能为空“); return; if(user.getPassword().length() 20) this.addFieldError(“user.password“, “密码长度应为 520 位“); return; /确认密码检验 if(null = user.getRepassword() |“.equals(user.getRepassword().trim() this.addFieldError(“user.repassword“, “重复密码不能为空“); return; if(!user.getRepassword().equals(user.getPassword() this.addFieldError(“user.repassword“, “两次输入密码不一致“); 22 return; /昵称检验 if(null = user.getNickname() |“.equals(user.getNickname().trim() this.addFieldError(“user.nickname“, “昵称不能为空“); return; if(user.getNickname().length()20) this.addFieldError(“user.nickname“, “昵称长度应为 220 位“); return; /邮箱验证 /昵称检验 if(null = user.getEmail() |“.equals(user.getEmail().trim() this.addFieldError(“user.email“, “邮箱不能为空“); return; if(user.getEmail().length()20) this.addFieldError(“user.email“, “邮箱长度应为 220 位“); return; /密码保护答案检验 if(null = user.getAnswer() |“.equals(user.getAnswer().trim() this.addFieldError(“user.answer“, “密码保护答案不能为空“); return; if(user.getAnswer().length()50) this.addFieldError(“user.answer“, “问题长度应为 250 位“); return; /检验验证码是否正确 if(null = validateCode | “.equals(validateCode) this.addFieldError(“validateCode“, “验证码不能为空“); return; /获取生成的验证码 23 String code = (String) this.session.get(“imageCode“); if(!code .equals( validateCode) this.addFieldError(“validateCode“, “验证码不正确“); return; public String execute() try /模拟生成邮箱验证码 String emailCode = EmailCode.emailValidateCode().toString(); user.setEmailValidateCode(emailCode); user.setIsValidateEmail(false); /保存用户信息到数据库 if(userService.registUser(user) /将用户信息放在 session 中保存 this.session.put(“userRegistInfo“, user); return SUCCESS; else /用户名被占用 getErrorInfo = “用户名已被占用“; return “input“; catch (Exception e) e.printStackTrace(); return ERROR; 用户登录代码: public String execute() throws Exception /1 验证验证码是否正确 if(! validateCode .equals(String) this.session.get(“imageCode“) validateCodeErrorInfo = “验证码错误“; return “toLogin“; /2 验证输入的用户名和密码 if(!userService.isRightUser(user) userNameOrPasswordErrorInfo = “用户名或者密码错误“; return “toLogin“; /将用户信息保存在 session 中 24 this.session.put(“userLoginInfo“,userService.getUser(user); return SUCCESS; 4.2.44.2.4 个性化设置模块功能的实现个性化设置模块功能的实现 本模块的功能是用户对自己的页面进行个性化的设置,可以设置个性化标题和内容, 成功后会显示在用户页面的上方,其中个性化设置的界面如下: 个性化设置代码:个性化设置代码: / 获取个性化内容 public Blog getBlogInfo(User user) List list = this.getHibernateTemplate().find(“from Blog blog where blog.user = “ + user.getUserId() ); int size = list.size(); if(list.size() = 0) return null; else return list.get(size -1); /保存个性化内容,更新个性化内容 public void save(Blog blog) this.getHibernateTemplate().saveOrUpdate(blog); 4.2.5 发表查看文章模块功能的实现发表查看文章模块功能的实现 该模块主要有两个大的部分:用户发表文章和查看自己的文章或者其他人的文章。 用户要发表文章必须先登录,否者不允许发表,文章的发表的界面如下: 25 用户在发表文章时还可以添加图片和表情等信息如: 插入表情: 显示文章: 26 显 示 文章内容: 发表,显示文章代码发表,显示文章代码: /保存文章代码 public void saveArticle(Article article) this.getHibernateTemplate().saveOrUpdate(article); /显示文章代码,这里要用到分页显示 public List findAllArticle(User user) return this.getHibernateTemplate().find(“from Article art where art.username=?“, user.getUsername(); 分页查询代码: /分页查询核心 public List findByPage(final User user, final Page page) return this.getHibernateTemplate().executeFind(new HibernateCallback() public Object doInHibernate(Session session) throws HibernateException,SQLException Query query = session.createQuery(“from Article art where art.username = ?“); /设置参数 query.setParameter(0, user.getUsername(); /设置每页显示多少个,设置多大结果。 query.setMaxResults(page.getEveryPage(); /设置起点 query.setFirstResult(page.getBeginIndex(); return query.list(); ); / 查询文章总数 public int findAllArticleCount() return (Long) (this.getHibe

    注意事项

    本文(学生个人博客_毕业论文.doc)为本站会员(韩长文)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开