该用户从未签到
|
一、 分析需求
- N y& a1 i" ^5 W) ?1. 用户注册:任何访问者都可以注册为博客管理系统的合法用户, J# O z7 O1 ^/ l) Q
2. 用户登陆:登录的用户具有浏览日志,发表日志,修改日志,删除日志,删除日志评论的功能
+ e* I% V1 m3 {% c: ?4 Q3. 浏览日志:登录后的用户可以浏览自己的网络日志和评论! N. B$ M% p) M: N& o
4. 发表日志:登录后的用户可以发表自己的网络日志* v1 @8 s7 K7 A0 S" }) C, o6 j
5. 修改日志:登录后的用户可以修改自己的网络日志+ y* e P' K5 x! M
6. 删除日志:登录后的用户可以删除自己的网络日志
, V, f6 h& |; O! j4 x7. 删除评论:登录后的用户可以删除针对本人的网络日志的评论* a' o: A1 M8 y
8. 博客浏览:任何访问者都可以浏览特定用户博客中的日志(按照博客用户的用户名浏览此用户)
9 {4 g* a/ r ?$ `9. 发布评论:任何访问者都可以针对别人的网络日志发表评论
j8 W( X1 b3 A. M) Q0 T5 n6 d% S: X7 Y2 _% Z b
1 D2 d$ c4 J- O6 W二、 分析建模
; P4 q3 b4 U, A+ u$ B' p1. 实体建模
+ T5 p# S+ V/ V: G! z2. 关系模型 W" T$ u; P, r1 {, k/ N9 O2 V- ?4 x
3. 构建域模型User/Message/Reply+ @& i3 U; R/ u9 ]
: p3 R) N, S7 _. f+ _, S% B* Q+ J6 h
三、 项目初始化
4 ~% i; d9 C6 b$ k9 s) m ^' I1. 添加struts支持8 v; O9 O5 d# H5 ^; c( s7 r
2. 添加hibernate支持
6 H3 o5 a( p$ k% e" `& Y; u3. 添加log4j/dom4j/common-lang.jar/mysql相关类库% E7 U/ @% B9 _! ~2 |
4. 定义系统异常类
8 U0 |9 m _0 X, IA. BlogException.java
) H( o$ P6 w" p5 O6 q9 g8 R4 I0 ?B. BlogDAOException.java
; t' v- l' `. N9 N9 n2 t
1 f3 f7 v' P5 J, c6 y
/ M( e+ x3 p: O9 |, b四、 实现域模型(实体关系建模)1 G* @4 y R+ W/ J) T% U4 d2 G
1. Java实现域模型
. z! H1 X6 a! ~使用Java语言描述于模型:BaseModel.java/User.java/Message.java/Reply.java
' ?/ |* v4 w. E* |2. 数据库实现域模型
& o; L2 x( P0 K- I" [3 c使用数据库语言描述域模型:userinfo表/message表/reply表
5 q% q8 I! K" y) A! W1 }3. 定义映射文件" k5 Y" Z+ k/ K/ e
; s" f& y: @$ W6 Z3 U$ G V* v
# | x% M5 h; N; u" ~: l& H- `五、 基于Hibernate实现DAO
. R% o! ]: D9 K+ Z: D1. HibernateUtil工具类:简化Hibernate操作
& x j2 U# `+ k' [2 i; q) i' S2. HibernateFilter过滤器:事务处理3 h3 T. j. k: y; U
3. HibernateDao基础Dao:简化DAO操作
) Z: k3 Q9 C) {8 w) f( g" z4. 实现DAO
- {/ e7 f6 P- j1 R9 @7 g* A' ?六、 基于dom4j实现DAO与表现层层解耦+ X2 n9 Y. |/ [/ s
, ~3 F* A2 F4 K9 X: e: S+ Q& k
& ]2 ]$ M- j- P3 V# Z七、 DAO单元测试7 e7 M1 H1 R' s4 `) p* l0 e, [, y
: I7 Z8 K( ]" v4 ?: F9 d: l4 M
) b! J: B& E9 ?6 S" E八、 基于Struts实现表现层! g" u8 [# _& ~' F: K
A. 用户管理模块# a& c* C7 E3 |, E1 p3 U6 l
1. 用户注册业务流程
6 ~7 r2 v p: ^1 W, Ia) 配置注册页面跳转Action:registerInput.action
% _ ?! {: g, o& W5 X! y" db) 开发注册页面:register.jsp
& `8 r9 M; t4 x5 H# U2 wc) 开发注册Action:RegisterAction.java/ RegisterAction校验文件0 M7 f7 ~* |6 s- v7 z$ i
i. 获取并保存用户注册信息! w5 A4 @8 x1 u, G
ii. 注册失败:添加注册失败提示信息;返回注册页面:register.jsp2 w6 W$ a2 ^. N& H! s
iii. 注册成功:在Session中添加登录用户信息;返回博客管理主页面:homepage.jsp3 K3 K7 H& F7 C" u: N$ B
2. 用户登陆业务流程
5 J- c3 S( E% y- M2 x8 ra) 开发登录页面:login.jsp. @. o+ D" j2 D$ D
b) 开发登录Action:LoginAction.java/ LoginAction校验文件
/ X2 r# K9 F) t$ Ui. 根据用户名查询用户信息
4 z8 u8 E1 Z: K9 D: e& A% Hii. 如果用户不存在或者密码不匹配则登录失败,否则登录成功
4 K) `/ b; g* ~( Siii. 登录失败:添加登录失败信息;返回登录页面:login.jsp
' v. P7 B& w+ C' V% n+ Viv. 登录成功:在Session中添加登录用户信息;返回博客管理主页面:homepage.jsp- o8 B+ w, w! R* i
B. 博客管理模块
, z6 K! q4 l/ d, U, s& ^1. 浏览日志业务流程$ U3 t$ `; Z' X% M# O
a) 开发浏览日志Action:HomePageAction.java
5 f7 D* j9 \1 B* ii. 得到当前登陆用户的信息
+ Z' H, q! y0 xii. 根据登录用户信息得到User持久化对象- p: D) [/ G; j m% M; a% Z* c4 I# D
iii. 返回到博客管理主页面
( D0 I. b( U, ^* Y2 J9 ?# Rb) 开发博客管理主页面:homepage.jsp- u6 p" L- n. f" f' J
i. 根据用户持久化对象获取用户日志迭代输出- J% B) T* a! ^$ K. |9 M/ e
ii. 根据每条日志对象获取日志评论迭代输出2 V- H/ w! E" q I. @
2. 发表日志业务流程
2 I" k4 V# J* Y/ a) z5 A" ya) 配置发表日志跳转Action:messageAddInput.action. l- L0 o/ _$ J/ F6 W
b) 开发发表日志页面:message_add.jsp2 J# r% q2 K E* r) K0 e' A% b! W
c) 开发发表日志Action:MessageAdd.java/ MessageAdd校验文件* t8 D4 l' U) V( |
i. 保存日志信息
" p& H; Y( ?9 p! [ii. 设置提示信息
/ A. u2 V+ ^ |7 |; c& m& \& s3 }iii. 返回到博客管理主页面
* b3 O C4 x* c: D3 S3 T# f3. 修改日志业务流程
$ e( d& s5 F# s, |a) 开发修改日志跳转Action:MessageUpdateInputAction.java
0 G3 X! Z( k' r$ ^7 i& l9 Oi. 根据日志ID获取日志对象
% I7 x9 D' _0 i/ p& D7 |ii. 返回修改日志页面message_update.jsp
' s& d& d! Q. T: [7 O6 ~! y( p; k# L% p* [b) 开发修改日志页面:message_update.jsp; l7 f( z0 I4 f
i. 根据日志持久化对象获取并展示被修改的日志信息$ }& E/ P4 V1 [( @& Z8 H
c) 开发修改日志Action:MessageUpdateAction.java/ MessageUpdateAction校验文件6 E; ]" S' Q9 `9 k/ D6 g
i. 根据ID得到Message对象9 a: n' S0 \9 B' F9 L
ii. 更新数据6 i" b" ^7 ], w5 b, q- y
iii. 返回博客管理主页面4 ?+ g. F: A: S" j
4. 删除日志业务流程
% r8 `4 |, p' M% a' {% O& j6 ]a) 开发删除日志Action:MessageDeleteAction.java# B" X z+ y- d& M1 e' k7 u
i. 获取当前用户ID1 I+ `$ v! P/ c- o" F4 M- k
ii. 根据用户ID和日志ID删除日志2 n" O4 ]! |; G' S
iii. 添加提示信息( R2 m5 G* b, ?/ G0 u+ X2 w
iv. 返回博客管理主页面
3 t8 X! H5 t2 I7 C- X9 J9 H6 K5. 删除评论业务流程9 Y5 {* z% O: q/ K" C! o
a) 删除评论Action:ReplyDeleteAction.java8 P8 X9 C, h' p. m6 Z, l x
i. 获取当前用户ID
* | Z3 S' {/ `3 [; rii. 根据用户ID和评论ID删除日志
. p4 z) p5 k. j. ]/ Giii. 添加提示信息
/ Q' }( t: F" {5 @ v# {iv. 返回博客管理主页面
! _- s& D% n6 |7 v' \' M% R4 iC. 博客访问模块7 `8 s! H; O8 F
1. 博客浏览业务流程! m. X4 P- `+ b0 o+ |0 v% p# Z5 K
a) 开发博客浏览Action:BlogAction.java
3 j; M/ f8 P J' f0 g9 `i. 根据用户名获取持久化User对象
1 O7 X6 c& C4 a: vii. 返回博客浏览主页面
7 M1 T& Y( A# l6 V0 a. Qb) 开发博客浏览主页面:blog.jsp) t- h+ o+ Y2 e' O7 s" S* z; C N5 e0 K+ n
i. 根据用户持久化对象User获取用户日志迭代输出+ f1 y" B+ T( `% z6 s! t/ V
ii. 根据每条日志对象获取日志评论迭代输出: g" E0 B8 m0 L$ i" t: ]% v
2. 发表评论业务流程. V6 k: g, z9 S
a) 开发配置跳转Action:replyAddInput.action
% }; H* |; v) {i. 根据日志ID获取被评论的日志对象message; _$ D `/ W+ F2 k% p- j
ii. 返回添加日志评论页面* _9 G; T! }* e5 [9 z; v" K( k
b) 开发添加评论页面:reply.jsp
# D% }; @0 N R- ?/ H! ri. 显示持久化的message信息(且使用隐藏表单域保存Message信息); P' H* l. m9 s& O0 ]8 X3 k
ii. 显示评论的表单- I, ^4 Z9 P1 p' t- I
c) 开发添加评论Action:ReplyAddAction.java/ ReplyAddAction验证文件) `8 \0 E/ b/ K! q4 T+ v
i. 获取并保持评论信息6 [: H' |, ~6 u) P
ii. 评论失败:返回添加评论页面reply.jsp(所以Action中应该保存被评论的日志信息)* O0 E: g% S) e F: d
iii. 评论成功:返回博客浏览主页面:blog.jsp
% c+ h7 E7 l. r) B3 [7 _4 N, }4 n+ T% T. [; h
基于Struts +Hibernate开发的博客管理系统源代码& j- z3 v4 x1 t
$ {4 Y- }, z7 b. M$ V4 [- x4 q# [& k3 G3 d2 g; Z
解压码:; h1 p' G! y# J* n- k: X
8 I5 V* |) X' c# ?
7 x5 N3 }2 ?( V- K3 t- u; P( n" Q$ e6 F8 Q" V
|
本帖被以下淘专辑推荐:
- · 项目源码|主题: 28, 订阅: 64
- · 网站|主题: 1, 订阅: 0
|