`

基于Spring MVC框架的Web登录模块的设计与实现

 
阅读更多

摘要:用户登录模块是管理系统中非常重要的部分,该文在详细介绍Spring MVC框架的基础上,灵活运用Spring MVC框架进行Web登录模块的设计,完成了用户登录,出错处理,超时检查等功能,使得系统的易用性、安全性、稳定性和可扩展性都得到了极大的提升。
  1 概述
  随着世界经济的繁荣和科技的迅猛发展,信息化的程度越来越高,各种软件相继出现。大批量种类繁多的软件虽然提高了信息处理的效率,但是安全方面的隐患也日益突出。用户想要进入到不同的应用软件和服务系统时都必须进行登录认证,随之而来的遗忘密码、黑客攻击、密码泄露等问题,都将严重干扰到业务运作。在这种情况下,一种安全可靠的用户登录模块就显得必不可少。
  基于这种情况,该文研究了如何利用Spring MVC框架开发一款安全、灵活的Web登录模块。系统的任何用户操作界面都可以提供登录入口,提示用户进行登录,通过认证后,合法用户就可以使用他相应的权限功能。
  2 Spring MVC框架概述
  Spring是分层的Java SE/EE应用一站式的轻量级开源框架,是为了解决企业应用程序开发复杂性而创建的。Spring框架提供了构建Web应用程序的全功能 MVC 模块。在Spring的MVC中,支持各种视图技术,例如JSP、Velocity、Tiles等。Spring MVC分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。
  Spring MVC的角色划分非常清晰,各组件的功能单一,很好地达到了高内聚低耦合的效果。Spring MVC相当灵活,且可以扩展,其MVC框架是围绕 DispatcherServlet这个核心展开的。核心控制器的作用就是截获请求,并将其分发到相应的业务控制器中,由业务控制器调用业务处理方法处理业务逻辑,返回一个模型和视图对象,核心控制器再根据此对象找到视图显示出处理结果。
  3 登录模块的设计与实现
  本登录模块采用B/S的三层结构模式,分为服务器、用户和数据库三个部分。客户端与服务器之间采用HTTP协议进行通信,Web服务器采用Tomcat6.0,数据库服务器采用Oracle10.0.2。在用户登录模块的开发过程中,提供对身份认证、权限分配等有效的安全策略,来实现用户的验证与登录,在没有得到系统授权的前提下是无权对文档进行浏览和管理的。
  3.1 总体设计
  用户登录模块按照不同的人员职责,提供不同的登录界面,具体包括系统管理员、管理员、游客等登录界面。有游客,管理员,身份证,电话号码+密码等多种登录方式。
  登录模块采用基于角色的身份认证技术,根据不同的用户角色,提供不同的登录选项,分配不同的使用权限。根据实际情况定义了三种角色:超级管理员、管理员、注册用户,通过登录界面确认用户的身份,再根据不同的用户类型确定其相应的操作权限。
  其中,超级管理员具有对角色、权限、菜单等进行增删改查操作以及角色的赋权。管理员具有对用户账号管理,信息的修改、统计等处理权限。注册用户具有修改个人资料,信息浏览等权限。
  3.2 数据库配置
  public UserInfo getUserByUserName(String userName){
  UserInfo userInfo=null;
  try{
  userInfo=(UserInfo)
  getSqlMapClientTemplate().queryForObject("USERINFO.getUserByUserName", userName);
  }catch(Exception e){
  logger.error(e);}
  return userInfo;}
  3.3登录模块的实现
  本模块登录时没有区分用户角色,当进入系统后根据角色权限加载菜单项。用户通过输入用户名和密码,然后单击登陆按钮实现以上信息的提交并验证,若正确无误进入系统。
  3.3.1错误锁定
  登陆模块根据用户身份进入系统,显示拥有权限的操作菜单。如果用户不存在,则找不到数据;如果用户存在,密码错误,同样找不到数据,均提示用户名密码错误;如果用户名和密码同时存在,则获取用户信息,并进入相应的界面。为系统安全考虑,若用户连续而且超过三次输入密码错误,则需要输入验证码。errorTime为输入错误次数,当验证码输入为空,或输入错误,就返回-1,此时对该账号锁定, 登录失败,必须经过超级管理员解锁才能重新使用。部分代码分析如下:
  if(errorTime>=3){
  if(entryVlidateCode==null||(!entryVlidateCode.equals(realValidateCode))){
  map.put("errorMsg","验证码错误");
  map.put("userInfo",null);
  map.put("errorCode",-1);
  return map;
  }}
  3.3.2在线提示
  用户在登录时,会创建一个session,用于保存用户信息。如果在线用户列表中查找到该用户已经在线,同时又在其他机器登录,那么首先提示用户已经在线,然后给出选择挤下或者取消登录。如果挤下,那么被挤机器就无法继续前后台的数据交互,自动退出,登录失败。也就是限制用户重复登录,每个时刻只允许在一台机器上登录。   先从ServletContext中取出存放用户登录的session相关信息,检查这个列表,若已经存在相同的登录信息,则说明用户之前已经登录过,移除前面一条记录。再把此次登录的信息加入到ServletContext中。监听实现SessionListener类,当session失效的时候,从ServletContext中移除相应记录。过滤所有页面,sesison失效后转向登录页面。但是要实现用户二次登录后强制先前的登录失效,需要在这里控制。登录时存入的是session值和session ID,用户二次登录时移除了前次记录,存入的session值是相同的,但是ID却不同。 当第一次登录页面请求的时候,在这里检查ServletContext中是否存在当前的session值与ID,如果没有就销毁这个session。
  3.3.3非法退出
  对于WEB系统来说,均遵循HTTP协议的请求/应答模型。所以网站本身是不能保存数据的,用户正确登录后,系统更改当前用户的状态为在线。如果用户在使用系统时,不通过退出按钮来执行退出操作,而是非法退出,包括网络断线、系统瘫痪、突然断电等情况。这些都使系统没有给用户记录一个退出系统的操作机会,这种情况下用户的在线状态会一直保留,从而影响下次登录。因此,系统应该设置一个定时器,定时清理并且还原用户的初始状态。
  当用户以登陆身份请求服务器资源时,记录用户的最后活跃时间。接着拟定一个失效时间,假设某个用户的最后活跃时间和当前时间的差值大于这个失效时间,也就是说该用户这一段时间都没有和服务器交互了,那么就认为该用户已下线,否则认为他是在线的。
  3.3.4超时管理
  Session对象是由服务器自动创建的与用户请求相关的对象。服务器为每个用户都生成一个session对象,用于保存该用户的信息,跟踪用户的操作状态。应用session对象时要注意它的生命周期,当用户首次访问时将产生一个新的会话,从用户打开网站生成,关闭浏览器删除,以后服务器就会记住这个会话状态,在这一段时间内,用户都可以访问到会话对象中保存的信息。当会话生命周期超时,或者服务器端强制使会话失效时,这个session就不能使用了,需要用户重新登录。
  通过setMaxInactiveInterval()方法可以设置Session的生命周期,通过getMaxInactiveInterval()方法可获得Session的生命周期,如果超过这个时间则失效。
  4 结束语
  信息的规范化、高效化管理在很大程度上体现了一个组织的工作效率,而登陆功能在其中起到了关键性作用,同时也为系统提供了安全性保障。该文对Web登录模块进行了分析,使用Spring MVC框架进行设计,提出了解决方案,实现了系统用户的登录、出错处理、超时检查等功能,使系统的重用性和扩展性更好,用户界面简洁统一,功能灵活,提高了系统的易用性、安全性及稳定性。
本文摘自中国论文网,原文地址:http://www.xzbu.com/8/view-4814992.htm

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    精通Spring MVC 4

    Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。Spring MVC4是当前zuixin的版本,在众多特性上有了进一步的提升。, 在精通Spring MVC4中,我们将会从头开始构建一个有用的Web应用。本书共计10章,分别介绍了...

    spring mvc 框架示例

    Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,可以选择是使用内置的 Spring Web 框架还可以是 Struts 这样的 Web 框架。通过策略接口,Spring 框架是高度可配置的,而且...

    spring框架的MVC

    Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,可以选择是使用内置的 Spring Web 框架还可以是 Struts 这样的 Web 框架。通过策略接口,Spring 框架是高度可配置的,而且...

    Spring MVC学习框架

    spring MVC框架用于web应用快速开发的一个模块。作为当今最主流的web开发框架,开发技能相当热门,值得大家掌握应用。

    [免费]Spring MVC学习指南(高清)

    Spring MVC是Spring框架中用于Web应用快速开发的一个模块,其中的MVC是Model-View-Controller的缩写。作为当今业界最主流的Web开发框架,Spring MVC已经成为当前最热门的开发技能,同时也广泛用于桌面开发领域。 ...

    大优惠 Spring MVC学习指南(第2版)2017.pdf

    Spring MVC是Spring框架中用于Web应用快速开发的一个模块,其中的MVC是Model-View-Controller的缩写。作为当今业界最主流的Web开发框架,Spring MVC已经成为当前最热门的开发技能,同时也广泛用于桌面开发领域。 ...

    SSM(spring+spring MVC+mybatis)开发学生信息后台管理系统

    SSM(spring+spring MVC+mybatis)开发学生信息后台管理系统,实现学生增删改查功能设计一个简单的学生信息管理系统,要求使用SSM框架技术整合实现,用户登录后能够通过Web页面添加、删除、修改和查询学生信息 ...

    基于spring框架 java web技术实现在线考试管理系统附项目源码+数据库文件+文档说明

    例如,Spring MVC框架可以帮助开发人员构建Web应用程序的控制器、视图和模型,简化了Web应用程序的开发过程。 2. 提高可维护性:Spring框架的设计思想是基于面向对象的编程,它鼓励开发人员编写松耦合的代码,提高...

    基于spring框架 java web技术实现员工工作日志管理系统附项目源码+数据库文件+文档说明

    例如,Spring MVC框架可以帮助开发人员构建Web应用程序的控制器、视图和模型,简化了Web应用程序的开发过程。 2. 提高可维护性:Spring框架的设计思想是基于面向对象的编程,它鼓励开发人员编写松耦合的代码,提高...

    Spring.MVC-A.Tutorial-Spring.MVC学习指南

    Spring MVC是Spring框架中用于Web应用快速开发的一个模块,其中的MVC是Model-View-Controller的缩写。作为当今业界主流的Web开发框架,Spring MVC已经成为当前热门的开发技能,同时也广泛用于桌面开发领域。  ...

    互联网轻量级SSM框架解密:Spring、Spring MVC、MyBatis源码深度剖析

    Spring、Spring MVC、MyBatis源码深度剖析》以SSM 的核心代码剖析为基础,突破Java Web 研发瓶颈的束缚,选取Spring、SpringMVC 和MyBatis 框架中易于理解的版本,深入剖析了其中各个模块的实现,从代码中挖掘常用的...

    Spring MVC学习指南

    Spring MVC是Spring框架中用于Web应用快速开发的一个模块,其中的MVC是Model-View-Controller的缩写。作为当今业界最主流的Web开发框架,Spring MVC已经成为当前最热门的开发技能,同时也广泛用于桌面开发领域。, ...

    使用Spring MVC和JSP构建的全栈RSS阅读器Web应用程序(95分以上课程大作业).zip

    2. Spring MVC框架:Spring MVC是基于Spring框架的Web框架,用于开发Web应用程序。它采用MVC(Model-View-Controller,模型-视图-控制器)的架构模式,将应用程序分为模型层、视图层和控制器层,提供了处理请求、...

    Spring MVC

    Spring MVC 是Spring框架最重要的的模块之一。它以强大的Spring IoC容器为基础,并充分利用容器的特性来简化它的配置。 commons-logging-1.2.jar jackson-annotations-2.6.6.jar jackson-core-2.6.6.jar jackson-...

    Spring mvc

    Spring MVC 框架配置。SpringMVC属于SpringFrameWork的后续产品,...Spring框架提供了构建Web应用程序的全功能MVC模块。使用Spring可插入的MVC架构,可以选择是使用内置的SpringWeb框架还可以是Struts这样的Web框架。

Global site tag (gtag.js) - Google Analytics