我的日常

登录/注册
您现在的位置:论坛 盖世程序员(我猜到了开头 却没有猜到结局) 项目源码 > 基于Struts +Hibernate开发的博客管理系统源代码
总共48087条微博

动态微博

查看: 29550|回复: 195

基于Struts +Hibernate开发的博客管理系统源代码

  [复制链接]

279

主题

41

听众

689

金钱

版主

该用户从未签到

跳转到指定楼层
楼主
发表于 2015-04-30 18:26:20 |只看该作者 |倒序浏览
一、        分析需求( a* f5 }# t* o! E6 d
1.        用户注册:任何访问者都可以注册为博客管理系统的合法用户
0 Y$ U1 s3 y2 s2.        用户登陆:登录的用户具有浏览日志,发表日志,修改日志,删除日志,删除日志评论的功能* W' s8 Y8 c7 r5 ?- W; {
3.        浏览日志:登录后的用户可以浏览自己的网络日志和评论
$ ^% ~5 m  l& h4 Q7 i8 \) ]4.        发表日志:登录后的用户可以发表自己的网络日志, C* ^, e( W+ ~* Z8 g7 I
5.        修改日志:登录后的用户可以修改自己的网络日志
3 g  }' G* t; c" i& Z( Q6.        删除日志:登录后的用户可以删除自己的网络日志: l4 X( h0 E- R5 H0 Z& L
7.        删除评论:登录后的用户可以删除针对本人的网络日志的评论
$ Y  m' p$ k( m/ x5 j8.        博客浏览:任何访问者都可以浏览特定用户博客中的日志(按照博客用户的用户名浏览此用户)
& f! A! U  H4 o7 F. J6 {, |7 V) T5 B9.        发布评论:任何访问者都可以针对别人的网络日志发表评论
9 R$ ^' P! h- X" @
& z8 W! x! J2 n9 \$ T
& O1 G5 i5 M) E+ ]
二、        分析建模6 e+ `2 j. L- p5 P) _+ Z9 E0 c
1.        实体建模# L% Z! D2 b- u. i0 _
2.        关系模型
7 y5 @9 U, Q8 q' N) _3.        构建域模型User/Message/Reply
# N& M' e. I3 v; A( A$ n8 h
$ X+ `% _4 h) f" a1 G; K; Q

0 {* Y, g* o* o% `三、        项目初始化
( H! j6 u' T, |# `; ?1.        添加struts支持
4 J3 {9 k3 {1 X! {( L9 p, t* e2.        添加hibernate支持
9 b+ k9 M# A5 M1 S- k* [0 }3.        添加log4j/dom4j/common-lang.jar/mysql相关类库
2 v' J* H9 A) f5 w. c4.        定义系统异常类% K4 Z# u% p. `2 V6 b% H
A.        BlogException.java% K" l# \8 Q/ \1 b! n
B.        BlogDAOException.java
0 _# W; P/ D0 c" M! @' G/ n& _3 J8 |7 W  |. L& k
1 k: I+ C7 a( H+ f" x) j
四、        实现域模型(实体关系建模)
4 P* ?  u0 }- v8 f+ V1.        Java实现域模型; k- [/ k8 x) k# t$ l* n
使用Java语言描述于模型:BaseModel.java/User.java/Message.java/Reply.java
& v4 y0 {+ |, I0 }; _& a# |8 C2.        数据库实现域模型) R% N0 d4 ]* Q+ X
使用数据库语言描述域模型:userinfo表/message表/reply表( D! `: s) v* ]$ s5 x- ^
3.        定义映射文件! b, M2 d/ y6 u7 X8 n" K- s

9 }: l# s* j8 \' @3 A1 Z3 a- S
# J. b  a9 |- H3 v
五、        基于Hibernate实现DAO
. O5 |% X+ E( T% S& O* V1.        HibernateUtil工具类:简化Hibernate操作; B9 O6 u# Z0 E& t. n& @; |/ ?
2.        HibernateFilter过滤器:事务处理& O- I5 a: K5 p( y$ l. V2 T
3.        HibernateDao基础Dao:简化DAO操作
7 I2 ?) E. ~- `- u- d4.        实现DAO, J# I6 w/ n+ N
六、        基于dom4j实现DAO与表现层层解耦
5 c8 x( V0 W8 j9 N
) O8 m9 n$ e) Z" T
( l9 l( W& Z% ]  o- y
七、        DAO单元测试: `  G+ X+ e# k  y$ {/ O  a# s
/ n0 u( ^# y4 a/ l5 l" P
5 M/ d" i$ i, `5 H2 {0 u  t
八、        基于Struts实现表现层
9 B/ {/ t! z3 F3 k0 E$ q- w7 f1 gA.        用户管理模块! f: n7 a" ], j' Q' b8 @1 }
1.        用户注册业务流程4 O2 `% Z$ U8 }* j! |: Q
a)        配置注册页面跳转Action:registerInput.action
9 C: K; ?- X  d7 l; V( xb)        开发注册页面:register.jsp4 Z( U# N. S: d  h' Z4 G
c)        开发注册Action:RegisterAction.java/ RegisterAction校验文件
" I3 d% t$ M% f7 y7 xi.        获取并保存用户注册信息
8 @# o* y! b, C. S3 G' s7 |! K1 b; yii.        注册失败:添加注册失败提示信息;返回注册页面:register.jsp
/ ^; E$ U" w/ G, h7 Q! iiii.        注册成功:在Session中添加登录用户信息;返回博客管理主页面:homepage.jsp
6 L6 j" ~2 ~0 o5 F: i2.        用户登陆业务流程( k4 V/ f+ T4 b8 K! q% _5 r+ {/ q
a)        开发登录页面:login.jsp
; |! b$ ^# s3 D# u  ^0 }- ?b)        开发登录Action:LoginAction.java/ LoginAction校验文件
3 S* u9 ^* Q2 D3 Xi.        根据用户名查询用户信息4 r% D) y" v' }8 G
ii.        如果用户不存在或者密码不匹配则登录失败,否则登录成功
  \, P) o# V- ?) @) m4 i: y( b4 Giii.        登录失败:添加登录失败信息;返回登录页面:login.jsp
# K" _) f$ l$ I8 t% Z+ K" ]iv.        登录成功:在Session中添加登录用户信息;返回博客管理主页面:homepage.jsp5 F8 W; j8 d. d
B.        博客管理模块
5 Y# |  L. C! T1.        浏览日志业务流程
9 Z! O2 c* Y$ O- i6 h, O/ aa)        开发浏览日志Action:HomePageAction.java$ }8 |' t" f! v" ?9 S
i.        得到当前登陆用户的信息& \: A1 g) I. L  z; k5 Y) j7 \
ii.        根据登录用户信息得到User持久化对象
( i2 A3 L3 b9 P: u% kiii.        返回到博客管理主页面
2 L1 [$ r* q2 b  u0 Ib)        开发博客管理主页面:homepage.jsp
7 y) _' M% d, G+ J( y+ f3 W. vi.        根据用户持久化对象获取用户日志迭代输出
& E8 {( @. B( C$ |; bii.        根据每条日志对象获取日志评论迭代输出
5 u0 [' U# R8 e# o) L2.        发表日志业务流程3 Q3 V5 U) W1 ~* T$ E# @7 ~
a)        配置发表日志跳转Action:messageAddInput.action, O/ j( q! f- h) @; d5 _
b)        开发发表日志页面:message_add.jsp& i1 v- d/ E/ x+ @
c)        开发发表日志Action:MessageAdd.java/ MessageAdd校验文件
" z( ^5 Q3 @$ x; ?2 w0 Pi.        保存日志信息# a2 R! `/ T4 }. G
ii.        设置提示信息
0 B4 i/ D  i$ i4 diii.        返回到博客管理主页面  R9 r1 M6 j. L5 V% E. v
3.        修改日志业务流程0 B5 t+ w2 Z. }3 f& m) r" R
a)        开发修改日志跳转Action:MessageUpdateInputAction.java
4 Z: r( }$ k1 p0 Ui.        根据日志ID获取日志对象
$ r' b  l2 V4 D+ I, S. h& y6 s- qii.        返回修改日志页面message_update.jsp
: T: q0 t( i% T4 k  p1 fb)        开发修改日志页面:message_update.jsp- b8 |4 T# ~* Y) |+ a4 L0 a
i.        根据日志持久化对象获取并展示被修改的日志信息
, e8 T/ B: U" F; F  ^8 Ac)        开发修改日志Action:MessageUpdateAction.java/ MessageUpdateAction校验文件
- _0 {  r4 V$ `i.        根据ID得到Message对象% k* r" w4 @9 ]5 {# M% n& H
ii.        更新数据
/ S" B% E' [* o# \- Viii.        返回博客管理主页面
, M/ U  b& K6 W" {/ F/ t8 i8 @' v4.        删除日志业务流程* I2 w7 a) L1 z0 K+ J+ f4 R
a)        开发删除日志Action:MessageDeleteAction.java. x% C  k5 c# S( U! l
i.        获取当前用户ID
* q6 ~( z6 l  w, Sii.        根据用户ID和日志ID删除日志
6 R2 f/ W* j. g3 biii.        添加提示信息
3 L* f% y- {: G: e5 |' Q! yiv.        返回博客管理主页面
3 S( [- u) O! a8 B3 r5.        删除评论业务流程
* e( s% k5 p9 N( |- G6 K! j: v, ia)        删除评论Action:ReplyDeleteAction.java
+ X6 w, S9 d1 Si.        获取当前用户ID
) n5 H- v+ M% m& `ii.        根据用户ID和评论ID删除日志4 X- Q# f9 z1 R+ R' m
iii.        添加提示信息
! ?- p- [5 h6 s' P9 eiv.        返回博客管理主页面. M- W4 v6 L/ q/ u9 ^- {4 ~1 |- l
C.        博客访问模块( j- e9 `! D  P. [% h; _
1.        博客浏览业务流程
4 n8 f. H% @9 j' t9 \7 }% ia)        开发博客浏览Action:BlogAction.java
; b. H9 b+ o- g$ k) Bi.        根据用户名获取持久化User对象
5 g9 g: j* S  T3 ~6 Zii.        返回博客浏览主页面
; J, V# D: c1 l0 \5 R( qb)        开发博客浏览主页面:blog.jsp# [$ i4 ^# D) v7 G; _( O0 j
i.        根据用户持久化对象User获取用户日志迭代输出
% l% S* D4 O5 I2 N" hii.        根据每条日志对象获取日志评论迭代输出
$ u( `2 k1 T5 N2.        发表评论业务流程; R: W0 t8 v! S( e- A1 \" m; Y
a)        开发配置跳转Action:replyAddInput.action; }  x8 j% H7 u) e( T
i.        根据日志ID获取被评论的日志对象message" y+ y6 @' `7 U/ W% H
ii.        返回添加日志评论页面/ M. A( @% z5 [
b)        开发添加评论页面:reply.jsp8 b) [2 Y6 Q4 ]; w/ c+ R
i.        显示持久化的message信息(且使用隐藏表单域保存Message信息)
* H" `' B' g2 S0 h( C8 q- tii.        显示评论的表单
" {+ y1 P, `$ t8 sc)        开发添加评论Action:ReplyAddAction.java/ ReplyAddAction验证文件
/ A  [! i9 n6 e( a5 Pi.        获取并保持评论信息9 T" G% Y) f% m% z, \+ Q
ii.        评论失败:返回添加评论页面reply.jsp(所以Action中应该保存被评论的日志信息)% b# v  Q, Y$ x  {/ k
iii.        评论成功:返回博客浏览主页面:blog.jsp
5 P( s8 G4 `1 a" S5 m2 n4 u" n

$ {0 k4 E, x, w0 V# V. B, Q$ o& |基于Struts +Hibernate开发的博客管理系统源代码
4 O" O  A: M% l' H( I; n* `0 c  c( n2 V8 ~1 c" [
) S6 F7 \6 \& G1 x* L
解压码:
游客,如果您要查看本帖隐藏内容请回复
6 B0 S" }2 [9 v. I0 N) h$ ?) J
% M+ Y1 V% |0 q5 L% A7 P# B- {7 B* K2 C
8 e. K/ R9 L2 X% U( e
! F- W0 U" }8 ^  {3 d, X9 B: i

科帮网 1、本主题所有言论和图片纯属会员个人意见,与本社区立场无关
2、本站所有主题由该帖子作者发表,该帖子作者与科帮网享有帖子相关版权
3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和科帮网的同意
4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
7、科帮网管理员和版主有权不事先通知发贴者而删除本文


JAVA爱好者①群:JAVA爱好者① JAVA爱好者②群:JAVA爱好者② JAVA爱好者③ : JAVA爱好者③

本帖被以下淘专辑推荐:

76

主题

2

听众

1104

金钱

五袋长老

该用户从未签到

沙发
发表于 2015-05-01 17:06:29 |只看该作者
这个东西有bug
回复

使用道具 举报

96

主题

7

听众

406

金钱

四袋长老

该用户从未签到

板凳
发表于 2015-05-02 16:22:46 |只看该作者
不错  挺好的            
回复

使用道具 举报

72

主题

0

听众

1034

金钱

五袋长老

该用户从未签到

90后

地板
发表于 2015-05-04 13:35:07 |只看该作者
看上去很不错的样子,下载下来看看
回复

使用道具 举报

13

主题

0

听众

160

金钱

四袋长老

该用户从未签到

5#
发表于 2015-05-04 21:46:50 |只看该作者
下下来看看,谢谢楼主啦
回复

使用道具 举报

2

主题

0

听众

128

金钱

三袋弟子

该用户从未签到

6#
发表于 2015-05-04 21:57:11 |只看该作者
这个必须支持一下啊
回复

使用道具 举报

8

主题

2

听众

161

金钱

四袋长老

该用户从未签到

7#
发表于 2015-05-06 11:25:03 |只看该作者
不错 顶顶顶顶顶顶
回复

使用道具 举报

3

主题

0

听众

157

金钱

三袋弟子

该用户从未签到

8#
发表于 2015-05-06 14:57:10 |只看该作者
终于有了权限加油啊
回复

使用道具 举报

3

主题

0

听众

92

金钱

三袋弟子

该用户从未签到

9#
发表于 2015-05-07 09:34:13 |只看该作者
学习学习,正在学框架,正好合适用
回复

使用道具 举报

3

主题

1

听众

96

金钱

三袋弟子

该用户从未签到

10#
发表于 2015-05-08 11:20:48 |只看该作者
D(づ ̄3 ̄)づ╭❤~
回复

使用道具 举报

快速回复
您需要登录后才可以回帖 登录 | 立即注册

   

关闭

站长推荐上一条 /1 下一条

发布主题 快速回复 返回列表 联系我们 官方QQ群 科帮网手机客户端
快速回复 返回顶部 返回列表