该用户从未签到
|
一、 分析需求5 ]$ B3 n! ~4 ?2 L
1. 用户注册:任何访问者都可以注册为博客管理系统的合法用户
5 q5 U$ o* |2 q5 l7 S6 R" {1 Y2. 用户登陆:登录的用户具有浏览日志,发表日志,修改日志,删除日志,删除日志评论的功能! P( {) u4 q1 ~+ ]; N- q
3. 浏览日志:登录后的用户可以浏览自己的网络日志和评论
2 k7 `( L8 c3 j4. 发表日志:登录后的用户可以发表自己的网络日志
4 B$ h! D$ N* H5 e! L5. 修改日志:登录后的用户可以修改自己的网络日志/ J, z- Y; q B+ s
6. 删除日志:登录后的用户可以删除自己的网络日志
. y( P! G/ {, e7. 删除评论:登录后的用户可以删除针对本人的网络日志的评论. p9 e% k7 A" r: X7 Q
8. 博客浏览:任何访问者都可以浏览特定用户博客中的日志(按照博客用户的用户名浏览此用户)4 K) ]2 M' y2 O3 N# `) K7 c
9. 发布评论:任何访问者都可以针对别人的网络日志发表评论9 t4 k X I- x: T
( p7 A- }% i8 M) a
4 e' K; G+ O5 b F7 R p8 x
二、 分析建模6 S- }! z6 f6 F' n% f1 r1 H
1. 实体建模
9 m, w6 Q4 Q, N2. 关系模型
" m2 k& b: V+ }1 z3. 构建域模型User/Message/Reply
9 I9 L$ j' P( d3 c: y1 v' a$ d
* P' q6 _8 e( k0 Y
& v) E ~* b7 R! Q三、 项目初始化
9 c3 u% i0 F' \1. 添加struts支持
2 ?, k. D1 C' p, G2. 添加hibernate支持
% m6 q7 v V) p4 z" K6 \3. 添加log4j/dom4j/common-lang.jar/mysql相关类库
4 D; [' o" p+ q4. 定义系统异常类4 p* m U9 C. i; _- u
A. BlogException.java F8 N. K0 U* p# |, N, g6 Q
B. BlogDAOException.java
, G( g) \9 V! v% P) m8 a/ k* a5 E$ L/ n- k0 j
D D4 o h( G$ [4 `) J+ L四、 实现域模型(实体关系建模)* P6 Y* E( w9 q6 y" F f; v
1. Java实现域模型6 _2 }; i! A% Q; Z& p2 I6 ?
使用Java语言描述于模型:BaseModel.java/User.java/Message.java/Reply.java
) C) K0 u. Q+ [2. 数据库实现域模型
6 u( a4 a9 i/ c+ X0 g使用数据库语言描述域模型:userinfo表/message表/reply表
- P) Y. P% q% m9 Z( R: K. G3 G5 y3. 定义映射文件6 }7 V7 m. {! n- X! `
' I* {5 p9 `; z5 p+ |! ]) R! d
五、 基于Hibernate实现DAO3 N& @0 ` x# P' O
1. HibernateUtil工具类:简化Hibernate操作3 P5 x3 b/ k& u, y7 B$ D
2. HibernateFilter过滤器:事务处理
- g, M( u" L* O' {; ?- @3. HibernateDao基础Dao:简化DAO操作! x4 q* W5 t2 T$ q) [) c
4. 实现DAO# L* L( M: X3 H2 y% p
六、 基于dom4j实现DAO与表现层层解耦
1 S/ r+ v) g6 o5 G, H( o: A! N) U: Z8 t6 z
1 N0 B) E% C& E0 Y5 w) }; j( G; m
七、 DAO单元测试% E7 d+ P( s; m" j
, F# v% l1 o' M% y
" F' B) |8 B& [, K4 \
八、 基于Struts实现表现层
7 v2 l! ~2 m! I# j6 SA. 用户管理模块# R% Z0 c1 W7 V7 b" b; }0 E
1. 用户注册业务流程$ b' i! x- Z" Y7 ^+ K* J: H
a) 配置注册页面跳转Action:registerInput.action. O1 ^# _0 h/ f0 A/ \9 Y
b) 开发注册页面:register.jsp
8 d I. g6 W1 D! B! ]! f) ec) 开发注册Action:RegisterAction.java/ RegisterAction校验文件
) E. p9 e" W8 s5 mi. 获取并保存用户注册信息( @# J9 T4 D4 ]. D# ~3 q
ii. 注册失败:添加注册失败提示信息;返回注册页面:register.jsp
$ `4 O* e0 k" w- r miii. 注册成功:在Session中添加登录用户信息;返回博客管理主页面:homepage.jsp7 J6 n) j* l2 B- ^& w6 Y9 N+ Z
2. 用户登陆业务流程
; r3 l0 A; t- ra) 开发登录页面:login.jsp
, o4 R) D6 G j4 ^0 \* L) \b) 开发登录Action:LoginAction.java/ LoginAction校验文件
# `4 u; X! t2 r# f& yi. 根据用户名查询用户信息7 ^. y6 Q! Y% U) ?" Z5 F
ii. 如果用户不存在或者密码不匹配则登录失败,否则登录成功
4 b" \% K6 c6 d3 W( Diii. 登录失败:添加登录失败信息;返回登录页面:login.jsp( H# H4 V7 Q7 }+ s# |" f
iv. 登录成功:在Session中添加登录用户信息;返回博客管理主页面:homepage.jsp$ b1 ~ f, Z5 F
B. 博客管理模块
* E3 o' E y1 p2 ]4 N" y) j1. 浏览日志业务流程; |) q# \. s$ B0 l2 v+ Y H2 V
a) 开发浏览日志Action:HomePageAction.java
- q5 Y; S# R6 s$ hi. 得到当前登陆用户的信息8 ^4 i8 B2 P1 R* J" Y3 z) t% F
ii. 根据登录用户信息得到User持久化对象
/ s" x5 Y8 Y0 y6 K% e# A" uiii. 返回到博客管理主页面) u: Q& H7 Q- b; h9 t/ N I& y
b) 开发博客管理主页面:homepage.jsp
0 G4 X: R' v; Ci. 根据用户持久化对象获取用户日志迭代输出( v8 z8 E/ ~8 d5 _: i
ii. 根据每条日志对象获取日志评论迭代输出
. H9 e$ Z$ k+ D H3 U. l0 V+ W* ^2. 发表日志业务流程2 Y8 k6 t8 |/ R2 i6 {# G' Q
a) 配置发表日志跳转Action:messageAddInput.action
1 Q+ R# w- k: d& Ub) 开发发表日志页面:message_add.jsp
% k) j: H/ X) i% o9 ~c) 开发发表日志Action:MessageAdd.java/ MessageAdd校验文件$ D7 j( w, @+ v. n
i. 保存日志信息
' i# R6 @5 z$ C( yii. 设置提示信息 m* p$ T3 F/ J: ^- O; P
iii. 返回到博客管理主页面" S! O: r9 c- v) d4 K
3. 修改日志业务流程) ~6 X0 t* M* c
a) 开发修改日志跳转Action:MessageUpdateInputAction.java
& v3 I' X$ F+ N' n8 \0 Q' i5 k7 f+ vi. 根据日志ID获取日志对象3 u7 I. z/ ?( Z5 z2 _6 ?9 m) O
ii. 返回修改日志页面message_update.jsp1 V0 u) @$ D1 t2 b$ E1 ^* G4 ~: Y# R
b) 开发修改日志页面:message_update.jsp
$ ?* c/ @- Y, g7 G$ k9 @& Q4 ji. 根据日志持久化对象获取并展示被修改的日志信息
; |( e# A" \/ h1 Mc) 开发修改日志Action:MessageUpdateAction.java/ MessageUpdateAction校验文件' x& }4 Y2 [9 J N: U* _ r H' c0 U
i. 根据ID得到Message对象
1 \9 r0 u( Y; o/ d Jii. 更新数据" T5 ^% ~9 }, u) j0 d
iii. 返回博客管理主页面6 V5 P1 s5 x7 n e2 j% [5 {: g. r
4. 删除日志业务流程
( h7 j. N, j; `* ba) 开发删除日志Action:MessageDeleteAction.java
# P( \5 g3 ?) w! U; B- |, z5 ni. 获取当前用户ID: s a" B( r7 W# `7 s& e
ii. 根据用户ID和日志ID删除日志4 d4 o6 C) c1 k8 V$ A; y( u
iii. 添加提示信息
7 K1 H% Y' K- }8 d7 R- D1 Q3 qiv. 返回博客管理主页面. I2 d7 w% q& `) X
5. 删除评论业务流程$ {9 |! h' U3 F3 m
a) 删除评论Action:ReplyDeleteAction.java
) [* U* I3 ~% }5 k+ F a, A( Bi. 获取当前用户ID* v. W# R) O/ A) g% A
ii. 根据用户ID和评论ID删除日志/ w& }7 K4 X1 x
iii. 添加提示信息
4 h2 n$ \+ L5 X4 M" e* R; Aiv. 返回博客管理主页面
% V9 N: O$ V$ s+ MC. 博客访问模块) X* F4 S$ M7 @- ?) n
1. 博客浏览业务流程
# G, I2 @1 P+ G0 Ya) 开发博客浏览Action:BlogAction.java
+ H1 F' t, A, Y( L2 Li. 根据用户名获取持久化User对象
$ B' W) l+ e! [ii. 返回博客浏览主页面
8 l1 X% w8 c% l0 p3 B6 i: zb) 开发博客浏览主页面:blog.jsp+ D) [) R( v5 K0 s) j. p
i. 根据用户持久化对象User获取用户日志迭代输出
3 {* }9 a3 h& M& eii. 根据每条日志对象获取日志评论迭代输出
" V0 \) n: M& ~7 M( a2. 发表评论业务流程$ k) S+ `8 T1 h! M
a) 开发配置跳转Action:replyAddInput.action
9 L, s6 n% R7 |6 x. O/ Di. 根据日志ID获取被评论的日志对象message+ x+ T7 P% a! A: {6 {# ?6 _
ii. 返回添加日志评论页面' ] r7 Z) a2 \2 G
b) 开发添加评论页面:reply.jsp
$ m8 W7 M# Z3 q1 z. ]5 c4 `i. 显示持久化的message信息(且使用隐藏表单域保存Message信息)
7 r% V4 j0 A- h- ?4 O+ u. j' ^+ F6 Pii. 显示评论的表单
. W; o# ]# G6 u. P( s" C" \3 Nc) 开发添加评论Action:ReplyAddAction.java/ ReplyAddAction验证文件
8 r* W1 b1 m1 t. |+ m' G) Ri. 获取并保持评论信息
, R$ u& {2 z) b$ ?' Z9 _: H% Wii. 评论失败:返回添加评论页面reply.jsp(所以Action中应该保存被评论的日志信息)( q+ `$ q' k, D; B! u" N0 [+ E$ B
iii. 评论成功:返回博客浏览主页面:blog.jsp2 ^. ^1 g/ |! k% T- S
7 r/ h7 D" w' ?) O f# d) h基于Struts +Hibernate开发的博客管理系统源代码4 V8 k% z2 ^, w. r- R
; m7 ^) B h" B; n
+ @+ s6 C$ N6 `( ^: {
解压码:
i K v' F! O: M. c- M4 z |- F O( V& ?
$ E6 i q9 E4 L, X1 U: |" ^7 D/ h6 I* |
|
本帖被以下淘专辑推荐:
- · 项目源码|主题: 28, 订阅: 64
- · 网站|主题: 1, 订阅: 0
|