科帮网

登录/注册
您现在的位置:论坛 盖世程序员(我猜到了开头 却没有猜到结局) 项目源码 > 达内当当网全套源码测试通过带邮箱验证功能
总共48087条微博

动态微博

查看: 15623|回复: 40

达内当当网全套源码测试通过带邮箱验证功能

[复制链接]
admin    

1244

主题

544

听众

1万

金钱

管理员

  • TA的每日心情

    2021-2-2 11:21
  • 签到天数: 36 天

    [LV.5]常住居民I

    管理员

    跳转到指定楼层
    楼主
    发表于 2014-03-17 20:45:44 |只看该作者 |倒序浏览
    1.项目介绍
    ' |" e) i( b# I, r   典型电子商务系统(在线购物平台)。模拟了当当系统部分功能。
    9 m7 `1 G( w* W3 d. K2.功能需求$ O- b% q- n, y5 M; Q
        1)用户管理模块(3天)user
      H6 _+ a" J3 r1 p  f0 U         实现登录、注册功能
    * `7 o) {- P6 T: y* j- V    2)产品浏览模块(2天)main
    8 S" l" F2 @. S# N* k         实现主界面和类别浏览功能
    9 K; Q9 u  ]0 E8 b+ A    3)购物车模块(1.5天)cart
    , l4 s2 m; ~  U% z2 H7 w         实现购买、变更数量、删除等功能
    . O' Z3 f9 D+ k/ B: a' E    4)生成订单模块(1.5天)order) }; |% d8 k2 _0 w
             订单确认、填写送货地址、生成订单功能* S+ `5 v" @) c) W: y4 X' ~
    3.技术应用+ N8 G! |7 b# S# ^
       1)技术架构, x- U. |. Y4 ]5 j) Y$ h* ?
            struts2,JDBC(连接池),jQuery,Ajax
    1 h! T4 R1 ]+ Z9 S& S0 _' E   2)设计思想! W" g- h, c  x1 R9 C
           MVC和分层设计思想8 x, Q+ F$ v* d+ x/ b' e
           a.显示层:JSP组件(jQuery,Ajax)
    - S8 H5 }# C3 M; Z) W, T( G       b.控制层:Struts2控制器组件、Action组件% Z" G/ W- f9 W4 v) p' M4 S5 U" A
           c.业务层:Bean组件
    $ w5 R4 w. `" e3 f0 u! i. z' n       d.数据访问层:DAO组件(JDBC)4 U+ G) x# a, p5 ~+ y4 Q1 [+ x! H
    4 k: q$ X# w  a: W: \& a
    4.数据库设计
    ; R$ R1 v: K6 ]; F' M( n    1)数据库导入
    9 f# I+ L3 N: @3 A         create database dangdang;      //创建库
    . H) S$ Y: J" @9 H/ P: C) g7 `         use dangdang;       //进入dangdang库
    % G" J# u! q& k         set names utf8;    //设置连接和发送SQL编码
    * X8 d* D( ]2 l. u         source 路径/dangdang.sql; //导入sql文件3 R8 @  C/ J3 n5 o+ l
        2)数据表功能% b2 W* V7 x9 y" ^; Z
             a.d_user(用户信息表)0 v& v' Y# P6 `& }, y( ?
                存储了用户信息,涉及登录和注册功能
    ' x# G( N6 N* A8 X         b.d_receive_address(收货地址信息表)
    7 g0 @7 w' ~/ T, h) ^% w' F" l            存储了收货地址信息,涉及填写送货地址功能
    4 I0 q* i$ a2 J; S! m& i) y         c.d_category(类别信息表)
    , m$ @$ o- x, d. y             存储了图书的类别信息,涉及主界面左侧类别菜单功能
    # |/ J/ d+ h/ w- ^- E  l; |0 i  h; Z. B         d.d_book(图书信息表)' l, T0 Z# e" ^4 g9 v
                 存储了图书的特有信息,涉及产品浏览等功能9 ]  t/ Y5 h, b0 Y5 l
             e.d_product(产品信息表)8 m& R" n: i3 Z5 M) j; Q
                 存储了各类型产品的共通信息字段。4 o  M7 p" d9 F  v: c. \7 o/ k5 d0 J
             f.d_category_product(类别和产品对应关系表)$ c. c( Z: `/ G
                 存储了类别和产品之间包含关系,涉及产品浏览功能
    + F8 _; {9 u7 L$ t/ a         g. d_order(订单信息表), z8 O6 K. s1 t$ l9 k( U8 ~  O
                 存储了订单信息,涉及创建订单功能1 T! j6 a4 w8 \. F
             h. d_item(订单明细表)
    7 I. V6 }* @. [# _3 j7 ?: g             存储了订单中所购买的商品信息,涉及创建订单功能。
    % I1 T, B; a2 |+ j( N( p
    1 F+ k: M! Q1 M* V5 Y5. 搭建工程结构
    ( ]& X: U& l$ D    1)引入需要的开发包+ F, B, ~& E; n+ |( V
              struts2开发包: A( g" k2 G6 p& [. B
              jdbc开发包
    ! Z4 k$ g# ~; V- f% V          dbcp连接池开发包
    9 R6 E& K2 O8 L( _* l" l$ l; A    2)src文件结构4 W# P9 o6 w3 R) r  L/ c
             org.tarena.dang.action  :控制层7 U( Z  R4 F; n( Y5 p: `, W
             org.tarena.dang.action.user :用户模块的action4 `* I$ k6 @: P# r1 r  ^
             org.tarena.dang.action.main  :产品浏览的action0 v. x8 C) F/ |% g( V/ H. D3 F0 z
             org.tarena.dang.action.order :订单的action
    0 [& W0 {5 F& a0 B$ D; i7 v  D         org.tarena.dang.action.cart :购物车的action# W* n$ b" n, ]. ~
             org.tarena.dang.service :业务层
    : s; ~% ^+ I: d4 K0 V! h- A         org.tarena.dang.dao :数据访问层
    ' O. a* O% A0 v7 Z+ D! g7 K- c         org.tarena.dang.entity :实体类
    : M2 C# P% b: H3 i* X0 v         org.tarena.dang.util :工具类2 e" ?+ m# k6 }
             org.tarena.dang.interceptor :拦截器* O! C3 o! v6 F: C7 ?% O
        3)struts配置文件结构
    ) \: t# {& H. V3 u) @         web.xml(配置Filter控制器)* H1 T/ T$ H. {! `
             struts.xml (struts主配置文件)2 m+ C9 o* T# m4 k" Z# G2 Y3 s0 c' c
             struts-user.xml(用户模块配置文件)
    " f3 o4 R: p6 l8 n" _+ x         struts-main.xml(浏览模块配置文件)
    8 A+ g8 H& l6 v) j: y         struts-order.xml(订单模块配置文件)
    7 ]$ a  c7 F3 l" R5 c         struts-cart.xml(购物车模块配置文件)- m% g# l* O  b

    , N; t2 m7 g6 p( _! R: I: j: l    4)WebRoot文件结构
    ; ]3 G2 S" l/ W- p         /user/* :用户管理的JSP  W: s$ [4 O2 F1 h7 V
             /cart/* :购物车的JSP
    ' v: E2 a5 S3 |# L         /order/* :订单的JSP! B" I* w) ~7 l! M# g9 R9 A! b
             /main/* :产品浏览的JSP
    , y, F) N. j( M5 N         /common/* :页眉、页脚等共同JSP9 ?0 s9 C6 ^8 r2 P7 q9 t
             /js/*      : 放置js脚本文件
    . \0 c( i' @; d/ |& |         /css/* :放置css样式文件& _: V9 W! X0 @! f: \
             /images/* :放置页面图片文件
    2 f8 Z: m  v$ j) t. C  u% k         /productImages/* :放置产品图片
    . E" ?; O5 d7 s7 v- Q
    - D+ i2 i  r, V+ e+ Z' v" V-----------------连接池的优点-----------------
    6 h- w4 P, h! J$ k( B  _% O, wa.可以管理Connection对象,并且将Connection数量控制在一个安全范围内。提高数据库的访问安全性。( ?* G/ |: z  j% f; P8 S& D3 o" d
    b.连接池中的Connection对象与数据库保持连接状态,避免频繁的建立和销毁连接。' u' g) X) w) F& `. s1 y+ j

    1 E) ^/ B4 W0 O$ P; h============用户管理模块==============
    % M! [9 b0 l# W5 b7 m$ a" s0 r1.注册需求
    % N0 {5 Y. k& r4 g9 ]   1)表单验证(采用js+Ajax)# {0 Y+ j$ s) L& {3 m
             邮箱:非空、格式、唯一性(ajax)2 ^9 s6 p, ]* Q
             昵称:非空、格式. ^4 s* l% H1 H5 s
             密码:非空、格式
    ( \3 X8 C3 d8 h2 n6 X; K4 r         确认密码:非空、与密码一致/ ?' g: _4 C. _% i( ]2 A' p: k
             验证码:非空、正确性(ajax)% d6 F  i6 d/ e' U# O5 ~

    & o, Z# D3 d0 x2 u; g; K   2)将表单信息写入数据表d_user4 H4 t) p- e5 T
             编写实体类、DAO、Action
    4 q  S( Z  _# k   3)给用户邮箱发送验证码2 \+ d0 h4 {0 b4 W1 E8 R; \
             引入commons-email.jar,email.jar
    ; m% g( g& j4 ?* f8 L         参考EmailUtil工具类代码
    9 ^: V$ d9 y! A4 k* T9 S1 L   4)进入邮箱验证页面verify_form.jsp
    : Z* N  T4 |2 Q& v; d# \; W
    " u4 v! O& j) ?4 M: v2.邮箱验证! O+ j7 L% f2 O
       1)表单验证+ z2 M4 [) ^% {- K
           验证码:非空、正确性(ajax)
    5 r- F" `! I3 _1 U2 E4 z) o      正确后跳转到成功提示界面:window.location = "register_ok.jsp";+ \- N& W  |3 a4 M& m! [. }4 [4 r5 U
       2)Action逻辑
    ) M0 l  Z0 E7 N      a.利用验证码去d_user检查/ E0 n9 R' `+ q3 @& a% k
          b.如果正确,将d_user的is_email_verify字段更新成Y;不正确在verify_form.jsp提示“验证失败”
    . }9 A$ e1 b; W      c.跳转到register_ok.jsp
    8 R  v( k( S0 G6 e5 _5 e$ ]! K3.用户登录  y1 B# k: H9 _; }! k& B
        1)表单验证
    & d$ O; N4 u1 Z& g5 t# `# M' L         邮箱:非空、格式/ `1 Y# Y# C9 s+ _" b) H4 Y
             密码:非空$ Y+ g2 d) w( c/ j5 e
        2)Action逻辑
    , i. J! c* s$ I5 p1 B8 n      a.检测Email和密码是否正确,失败回到login_form.jsp提示4 q" W1 t: R. V+ ?6 m
          b.检测is_email_verify邮箱是否通过验证,未通过进入verify_form.jsp
    . d8 x9 F; ^6 H7 P      c.更新最后一次登录时间last_login_time和IP地址last_login_ip。; w  E5 p; A. M# v* l
          d.将用户信息放入session。# d7 \- n+ z+ a7 [2 X5 \3 ~8 o; p
          e.都正确进入/main/main.jsp+ g( Y, W- D8 z" f4 x; \; b1 f  t
    4.main.jsp页面的页眉部分,显示用户是否登录的状态
    * |8 a4 p9 G1 D9 @   如果用户已登录,显示"欢迎XXX,【登出】"
    4 x3 w3 O) s$ m2 S/ F   如果用户未登录,显示"【登录】【注册】"" o0 k2 f& }; L1 n0 b

    " n4 N/ p  B2 y" s: [2 f9 K数据库 模型 / L3 {  T6 r( V" c; w& I

    . H: I* r# ]9 @5 v; t9 {3 O* T/ [& H: C/ F% M6 Y2 Z: ^4 u
    效果演示图:
    3 f* G- h$ @( v& x5 K: G, k首页演示图:
    4 @; Z8 n5 u7 O9 E. g( O + J) U" w8 G6 _1 M: }$ [9 P/ ?- o

    $ l. y: E4 `/ S9 D注册页面:& h4 }9 t, l% ?  ]' d

    7 S* ~+ Z2 l' X: g, a* w邮箱验证页面:3 j( r! S2 [3 }* d0 S1 V% a

    $ x7 j2 n' j+ [3 l: z/ v! l验证成功:
    * v# [. l! r" {0 @4 _ ) M( X- H; K3 D! _7 P+ L+ ^
    用户在线状态:1 U. e4 V6 i& ?; t4 J& v: u1 h- g
    ! I3 Y* K2 I. X9 @( K
    用户可以购物了:
    ! P& s+ D, H0 o. J5 l + |2 j: ~/ B" S

    - N1 H& e( k/ O. d: x' H源码下载地址:点击下载
    6 \! x: j9 ^2 Y
    1 V8 [- z' E( D  N
    ) q& b; v1 t" |4 g  @* Y- m
    数据库下载地址:点击下载
    * m1 [6 t( q6 D, E2 W' @1 ?# y- d/ O$ f) N7 b

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


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

    3

    主题

    4

    听众

    133

    金钱

    三袋弟子

    该用户从未签到

    80后 推广达人

    沙发
    发表于 2014-05-05 16:58:50 |只看该作者
    很好很强大。想当年还在广州达内实习了几周。
    回复

    使用道具 举报

    admin    

    1244

    主题

    544

    听众

    1万

    金钱

    管理员

  • TA的每日心情

    2021-2-2 11:21
  • 签到天数: 36 天

    [LV.5]常住居民I

    管理员

    板凳
    发表于 2014-05-05 17:03:58 |只看该作者
    昕动2014 发表于 2014-5-5 08:584 U2 t5 P) |8 Y( @& u0 l( w
    很好很强大。想当年还在广州达内实习了几周。

    2 ^2 m2 d3 B; t2 B7 Psamt007@qq.com
    回复

    使用道具 举报

    3

    主题

    4

    听众

    133

    金钱

    三袋弟子

    该用户从未签到

    80后 推广达人

    地板
    发表于 2014-05-05 17:04:38 |只看该作者
    请问楼主,下载的附件找不到dangdang.sql文件哦。
    # O$ S. q: Q) X& {) E0 c--------------* R/ Y$ D. j% [$ V
    数据库导入
    # K% l0 v. V: P4 e2 i7 r: u# Q* U         create database dangdang;      //创建库2 C% p) e4 w4 C
             use dangdang;       //进入dangdang库  c! x9 m( T& f4 O4 W
             set names utf8;    //设置连接和发送SQL编码$ f: A3 S$ i* ?+ [5 a2 g+ k4 s
             source 路径/dangdang.sql; //导入sql文件"
    回复

    使用道具 举报

    3

    主题

    4

    听众

    133

    金钱

    三袋弟子

    该用户从未签到

    80后 推广达人

    5#
    发表于 2014-05-05 17:09:47 |只看该作者

    * X2 s% n, B' d; ^4 x. Q. c9 OWhat?.........
    回复

    使用道具 举报

    admin    

    1244

    主题

    544

    听众

    1万

    金钱

    管理员

  • TA的每日心情

    2021-2-2 11:21
  • 签到天数: 36 天

    [LV.5]常住居民I

    管理员

    6#
    发表于 2014-05-05 17:14:06 |只看该作者
    昕动2014 发表于 2014-5-5 09:04
    8 A! J' t: e* l请问楼主,下载的附件找不到dangdang.sql文件哦。# P, z) t; n  j1 a2 h/ e3 c
    --------------
    ) H/ s! l9 I& @# M数据库导入
    $ b& X& W) M: F- P
    怎么 会呢  数据库文件夹下有好吧
    回复

    使用道具 举报

    3

    主题

    4

    听众

    133

    金钱

    三袋弟子

    该用户从未签到

    80后 推广达人

    7#
    发表于 2014-05-05 17:19:50 |只看该作者
    admin 发表于 2014-5-5 17:14
    6 g& @+ n, L2 v. k! O3 A5 c0 e" Q4 U3 p怎么 会呢  数据库文件夹下有好吧
    . X! A( U+ R9 T8 w- v: `1 X( y( N
    好像只有1个文件夹:dangdang-ssh3 r+ X' `4 ?: h) a5 }
    我整个文件夹都搜索过了,没有sql的脚本文件啊。
    回复

    使用道具 举报

    admin    

    1244

    主题

    544

    听众

    1万

    金钱

    管理员

  • TA的每日心情

    2021-2-2 11:21
  • 签到天数: 36 天

    [LV.5]常住居民I

    管理员

    8#
    发表于 2014-05-05 17:31:01 |只看该作者
    昕动2014 发表于 2014-5-5 09:19, Y. F' P( z7 I$ o  [; S
    好像只有1个文件夹:dangdang-ssh; r# g% [& g" D
    我整个文件夹都搜索过了,没有sql的脚本文件啊。

    / i- {- o3 b' e7 a4 r2 b3 ^http://pan.baidu.com/s/1ntLlGCh
    回复

    使用道具 举报

    3

    主题

    4

    听众

    133

    金钱

    三袋弟子

    该用户从未签到

    80后 推广达人

    9#
    发表于 2014-05-05 18:07:45 |只看该作者
    admin 发表于 2014-5-5 17:318 M% b6 x: c, v7 r3 e0 l
    http://pan.baidu.com/s/1ntLlGCh

    7 w8 w9 M* \6 D' f5 i. O感谢分享~~~
    回复

    使用道具 举报

    1

    主题

    1

    听众

    107

    金钱

    三袋弟子

    该用户从未签到

    10#
    发表于 2014-06-04 16:46:40 |只看该作者
    谢谢了!!!
    回复

    使用道具 举报

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

       

    关闭

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

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