以一个论坛登陆模块来讲解如何使用spring

登陆功能虽然简单,但是模块虽然很小,但是基本包括了一般的web应用的操作。涵盖了持久层数据访问(数据库相关操作)、业务层事务管理(数据库操作回滚等)、展现层MVC等企业操作。

实例功能简介

登陆的基本流程就不细说了,要说的是登陆成功之后,记录用户的成功登陆日志,更新用户的左后登陆时间和IP,并且给用户增加5个积分,然后重定向到欢迎界面,页面流程如下

持久层拥有两个DAO类,分别是UserDao和LoginLogDao,在业务层对应一个业务类UserService,在展现层拥有一个LoginController类和两个JSP页面,分别是登陆页面login.jsp和欢迎就界面main.jsp。
下面看看登陆整个过程的时序图。

1.用户先访问login.jsp,返回带用户名/密码表单的登录页面;
2.用户在登陆页输入用户名和密码,提交表单到服务器,Spring根据配置调用LoginController控制器响应登陆请求;
3.LoginController调用UserService#hasMatchUser()方法,UserService内部通过调用持久层的UserDao完成具体的数据库访问操作;
4.如果不存在匹配用户,重定向到login.jsp页面,并报告错误,否则下一步;
5.LoginController调用UserService#findUserByUserName()方法,加载匹配User对象并更新用户最近一次登陆时间和登陆IP;
6.LoginController调用UserService#loginSuccess()方法,进行登陆成功业务处理:具体为先调用UserDao#updateLoginInfo()为用户添加5个积分,然后创建一个LoginLog对象,并利用LoginLogDao将其插入数据库中;
7.重定向到欢迎界面main.jsp。

在开发前需要准备的开发环境

Linux:Ubun 14.04 64bit
IDE:IntelliJ IDEA 14.03
JDK:1.7.40
MySQL:5.5.44
Tomcat:7.0.47
Maven:3.0.5

最新文章

  1. js中的数据类型
  2. mysql-mmm高可用配置说明
  3. Sqli-labs less 57
  4. intelliJ IDEA中项目以jar包的形式导出
  5. RequireJS进阶(一) 转
  6. android 解析文章,通过JSON格式请求传递 的好文章,这里记录一下
  7. Javascript进阶篇——(DOM—节点---属性、访问节点)—笔记整理
  8. Entity Framework执行Sql语句返回DataTable
  9. Data Lake Analytics + OSS数据文件格式处理大全
  10. [Alpha阶段]第八次Scrum Meeting
  11. 关于K8S证书生成方面的脚本草稿
  12. 500.19 ,错误:4.00x80070005
  13. IAR EWARM : Debugging with CMSIS-DAP
  14. Tim’s iT Blog
  15. 70. Climbing Stairs (Array; DP)
  16. fastdfs5.11+centos7.2 按照部署(二)【转载】
  17. Linux实战教学笔记55:开源虚拟化KVM(三)管理虚拟网络
  18. 「日常训练」Duff in the Army (Codeforces Round #326 Div.2 E)
  19. zookeeper编程入门系列之zookeeper实现分布式进程监控和分布式共享锁(图文详解)
  20. Percona备份mysql全库及指定数据库(完整备份与增量备份)

热门文章

  1. eclipse下编译openfire3.9.1源码
  2. 安全cookie登录状态设计方案
  3. javascript 倒计时代码
  4. Swift—Cocoa Touch设计模式-备
  5. 转:pthread_create()
  6. AdHoc发布时出现重复Provisioning Profile的解决方案
  7. ANTLR
  8. uva 10026 Problem C: Edit Step Ladders
  9. C51的一些误区和注意事项
  10. JS Map 简单实现