该用户从未签到
|
一、 分析需求
) I6 d; f2 v3 H3 r! l* {+ J1. 用户注册:任何访问者都可以注册为博客管理系统的合法用户+ N b7 g+ i' ^' f/ y
2. 用户登陆:登录的用户具有浏览日志,发表日志,修改日志,删除日志,删除日志评论的功能
" |6 y# Z$ u$ G3. 浏览日志:登录后的用户可以浏览自己的网络日志和评论
8 D3 S$ Y9 r$ i4 w4. 发表日志:登录后的用户可以发表自己的网络日志
8 O0 L! P( O0 M4 y5. 修改日志:登录后的用户可以修改自己的网络日志- k2 _, w( F& a
6. 删除日志:登录后的用户可以删除自己的网络日志; [+ ^* c/ B0 H( T
7. 删除评论:登录后的用户可以删除针对本人的网络日志的评论- |6 t& v% b* h9 B0 N: ^5 X$ E
8. 博客浏览:任何访问者都可以浏览特定用户博客中的日志(按照博客用户的用户名浏览此用户)! f. {: {! A. J8 U7 R
9. 发布评论:任何访问者都可以针对别人的网络日志发表评论
7 _8 O2 a+ f' {' X& p3 S
: V3 k: o8 k9 i- T$ l0 h2 p
0 L' s/ [, {' n! [二、 分析建模; v. E8 R& R# ` t4 i; b$ {
1. 实体建模- l+ X) H" `/ `, S/ ]# F9 R
2. 关系模型
0 P4 s& q7 k1 S. V1 }5 c3. 构建域模型User/Message/Reply( T. X* ]7 [) x, e+ g
7 Q1 U% A! H( b$ H2 i* }
6 E# \5 z5 T5 o( M三、 项目初始化
9 p8 z+ u6 e+ Z0 [% U* O% f1. 添加struts支持
j" ^8 m/ y/ m& E) s; E( j2 U2. 添加hibernate支持3 t& \' Z8 F# g7 p) u8 e
3. 添加log4j/dom4j/common-lang.jar/mysql相关类库; Q) E* X8 ], a9 @0 q9 @
4. 定义系统异常类# q1 e U: B& J1 W
A. BlogException.java
8 i: M! z2 r5 \! ~" a: _3 O5 e3 p0 i% k; e# PB. BlogDAOException.java
: ]( \+ L8 i3 H* \" j
8 h" a7 P9 W& X: M. O& ^5 V6 ]1 g" c( e* J
四、 实现域模型(实体关系建模)
3 \% k/ g4 ]% W( \& D1. Java实现域模型! Q$ Y) H' Q1 q% Y) P5 J
使用Java语言描述于模型:BaseModel.java/User.java/Message.java/Reply.java
6 G6 j o5 }- n, C; {6 r2. 数据库实现域模型
) H0 f& ~2 }$ k7 b. I* x1 A+ n使用数据库语言描述域模型:userinfo表/message表/reply表
+ E4 ]- r1 [; S8 Z/ O; a3. 定义映射文件
. Y5 G8 j+ o* \( G
0 x( y3 Q5 ^0 f4 S& G
8 t: G7 i: |. ?! E! b五、 基于Hibernate实现DAO! }# @: M$ ]+ E$ T
1. HibernateUtil工具类:简化Hibernate操作
* T* J9 a& G' X8 c/ @! J, ^* P2. HibernateFilter过滤器:事务处理
9 w# S2 i% s0 Y {- J. B& A# ?$ a3. HibernateDao基础Dao:简化DAO操作5 b8 H* H% X4 M0 [& |& H, C
4. 实现DAO
, z" Y1 K s: ?. ~) d六、 基于dom4j实现DAO与表现层层解耦! A: o1 |& D+ \& i
# o) `% X. f2 ?& x! V
2 }6 d g: |3 l七、 DAO单元测试
9 c0 ]* `1 V% F# P( q- J3 n- {2 l `) j0 j
$ O! [! j3 ~0 A- B: |0 ?八、 基于Struts实现表现层7 g* i" ` x: r% e
A. 用户管理模块
" n* H, y' |8 r. ]6 i8 X, g4 B1. 用户注册业务流程9 l$ U6 s) V- m
a) 配置注册页面跳转Action:registerInput.action3 ^) i& R! ]* ~8 C+ R% I
b) 开发注册页面:register.jsp4 {0 K) E# E, x1 T$ E
c) 开发注册Action:RegisterAction.java/ RegisterAction校验文件& Y0 o9 f+ M" I5 j
i. 获取并保存用户注册信息, _+ p5 L. A5 Y* A, ^# C; x
ii. 注册失败:添加注册失败提示信息;返回注册页面:register.jsp3 F- T9 T4 D- K0 l
iii. 注册成功:在Session中添加登录用户信息;返回博客管理主页面:homepage.jsp& L$ k% u6 S& G. }2 V
2. 用户登陆业务流程
1 ~& J9 {- j p) {* x; C+ u7 _ m# Ca) 开发登录页面:login.jsp3 V: V3 c; g8 f( z# }* }% j
b) 开发登录Action:LoginAction.java/ LoginAction校验文件
* V3 z5 n$ ~8 ai. 根据用户名查询用户信息
& b5 d& E) Y) z8 |7 j! R8 i" ]ii. 如果用户不存在或者密码不匹配则登录失败,否则登录成功
9 z: T9 a5 m( j7 _iii. 登录失败:添加登录失败信息;返回登录页面:login.jsp' ]# ]' u0 r O' N$ @
iv. 登录成功:在Session中添加登录用户信息;返回博客管理主页面:homepage.jsp `- d0 Q# K! n7 ~ R
B. 博客管理模块$ X" `. e: k' w1 h
1. 浏览日志业务流程
. ]% V. G$ k! e% m4 Ka) 开发浏览日志Action:HomePageAction.java
7 w1 d. ?- T; B' @$ G. o! Gi. 得到当前登陆用户的信息2 s, u4 K% C) V1 n( O
ii. 根据登录用户信息得到User持久化对象
% g3 q" D( Z2 Aiii. 返回到博客管理主页面4 Y% @7 p- P. j; p6 ^1 R- x
b) 开发博客管理主页面:homepage.jsp
& Z- D! A `- `$ M9 J% } ?( di. 根据用户持久化对象获取用户日志迭代输出/ U5 | }- V! R/ A: ]6 m: _4 S
ii. 根据每条日志对象获取日志评论迭代输出
2 K; W) a; P/ ~* x$ U2. 发表日志业务流程
/ q4 A9 [* c1 C; V# Fa) 配置发表日志跳转Action:messageAddInput.action
. Y; @4 ^ w: q. tb) 开发发表日志页面:message_add.jsp a' `9 p1 \5 }
c) 开发发表日志Action:MessageAdd.java/ MessageAdd校验文件8 R( l7 F" o( G5 s4 w
i. 保存日志信息
9 ]" N) C& O- q& f4 lii. 设置提示信息
' V4 G% W2 r( ]6 f! Ziii. 返回到博客管理主页面1 l9 `, w5 ^3 k g, ^, ~
3. 修改日志业务流程
" T1 l/ _& o6 F, N; P: Ea) 开发修改日志跳转Action:MessageUpdateInputAction.java
. y& m* k) I4 {, k( ^/ u1 C' Fi. 根据日志ID获取日志对象
; s% b3 B5 U. u7 |ii. 返回修改日志页面message_update.jsp: \ m* R: W9 l5 d! C6 k
b) 开发修改日志页面:message_update.jsp
* i8 y* c. J2 F Y1 ~9 Wi. 根据日志持久化对象获取并展示被修改的日志信息9 h9 ?* H: C* n( h
c) 开发修改日志Action:MessageUpdateAction.java/ MessageUpdateAction校验文件
5 L) f" ]' M$ m' e" ti. 根据ID得到Message对象
, X7 H+ A4 r; Y* Jii. 更新数据
) w5 M+ B+ x, |" J6 g$ Q9 z" u. Q" ~iii. 返回博客管理主页面- Q- ?1 b( H7 o3 i7 `& J- Z( A6 N
4. 删除日志业务流程" y: }6 H, y+ D$ A% D
a) 开发删除日志Action:MessageDeleteAction.java5 z4 n! W6 j# s
i. 获取当前用户ID
^4 k! E. n2 O/ P L& wii. 根据用户ID和日志ID删除日志
- d* y: V' q0 r3 @iii. 添加提示信息
, Q" M$ e9 G4 g, D; Giv. 返回博客管理主页面
2 v2 F' V5 S* P! B5. 删除评论业务流程
$ M" `) P! s$ S( B& i Na) 删除评论Action:ReplyDeleteAction.java# u* `* a0 P$ X* k3 e5 L
i. 获取当前用户ID' x' v- p4 o* D6 C
ii. 根据用户ID和评论ID删除日志; s7 N5 M7 }+ _9 b
iii. 添加提示信息( {% E" F* {. A, s9 {( w) H: i
iv. 返回博客管理主页面0 |( Y- ^8 r1 U; P( y( A* A7 k
C. 博客访问模块" F/ E q! o8 c& C+ b
1. 博客浏览业务流程+ ^: w U9 D2 ?% W6 n2 C& b
a) 开发博客浏览Action:BlogAction.java0 s/ D: ?' T7 v9 }) d
i. 根据用户名获取持久化User对象
, A, M1 j1 ]+ r% V/ b, c' v- \ii. 返回博客浏览主页面0 F* P; j$ [& M
b) 开发博客浏览主页面:blog.jsp
0 ]5 G) m" ^, D* N) C) Xi. 根据用户持久化对象User获取用户日志迭代输出& F3 U# C0 z3 F4 y# y" L
ii. 根据每条日志对象获取日志评论迭代输出6 ]/ h2 Y+ ^! S3 z+ H# c
2. 发表评论业务流程5 U7 P2 n+ G9 \3 D7 f* Z+ t
a) 开发配置跳转Action:replyAddInput.action! o6 I. s8 A% |* t3 [+ Y) E4 C- @4 {
i. 根据日志ID获取被评论的日志对象message
6 {& v# W5 W: L5 Kii. 返回添加日志评论页面0 F, P0 U: J8 k
b) 开发添加评论页面:reply.jsp0 d8 I% ]: |7 f
i. 显示持久化的message信息(且使用隐藏表单域保存Message信息)
* d+ j ? p, aii. 显示评论的表单( @6 f$ @5 I, s# O* C1 Y0 E8 @
c) 开发添加评论Action:ReplyAddAction.java/ ReplyAddAction验证文件9 ]' Q8 u! b% M; q6 L$ ^
i. 获取并保持评论信息
: @* j) }) z ~& Tii. 评论失败:返回添加评论页面reply.jsp(所以Action中应该保存被评论的日志信息)
& \' w C5 _4 M/ U0 j* e4 `iii. 评论成功:返回博客浏览主页面:blog.jsp6 v* f. p6 `. ~) i P. C6 ~8 j
3 w! A3 e2 u$ \+ ]基于Struts +Hibernate开发的博客管理系统源代码5 A F8 w n/ B# M( r# ?
* ?6 T: e# H/ t& S, f
$ ]/ z5 ~( Q/ ^+ E7 M9 J0 p. J: a9 x. |解压码:
) P6 }( j# |2 ^3 z) y7 v
- b5 B; j( [) E6 j8 r
" Q, ]' F3 u$ J" x1 w! l- R0 E1 N& o- R! a* F3 j/ r
|
本帖被以下淘专辑推荐:
- · 项目源码|主题: 28, 订阅: 64
- · 网站|主题: 1, 订阅: 0
|