`

基于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的JavaWeb项目

    在本项目中,我们探讨的是一个基于Spring MVC框架构建的JavaWeb应用。Spring MVC是Spring框架的一个模块,专为创建Web应用程序提供模型-视图-控制器(MVC)架构支持。这个项目涉及到的功能包括分页显示、单个或批量...

    spring mvc框架依赖全面jar

    Spring MVC 是一个基于 Java 的轻量级Web应用框架,它为构建模型-视图-控制器(MVC)架构的应用程序提供了强大的支持。在本压缩包中包含了一系列与Spring MVC相关的jar文件,这些文件是构建和运行Spring MVC项目所...

    ssm148基于Spring MVC框架的在线电影评价系统设计与实现+jsp.zip

    《基于Spring MVC框架的在线电影评价系统设计与实现》 本项目主要探讨的是如何利用Spring MVC框架构建一个功能完善的在线电影评价系统。Spring MVC作为Java Web开发中的主流框架,以其强大的MVC架构模式,提供了...

    精通Spring MVC 4

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

    基于Spring MVC的web应用

    Spring MVC 是 Spring 框架的一个模块,它为构建 Web 应用程序提供了一种模型-视图-控制器(MVC)架构。这个框架使得开发者可以将业务逻辑、数据处理和用户界面分离,提高了代码的可维护性和可测试性。在基于Spring ...

    Spring Web MVC外文翻译

    与 Spring Web MVC 并行地,Spring Framework 5.0 引入了响应式栈——一个名为 Spring WebFlux 的 Web 框架,该框架的命名也是基于其源模块 `spring-webflux`。本节将重点讨论 Spring Web MVC。 #### 二、...

    Spring+Spring MVC+Spring JDBC+MySql实现简单登录注册

    在本项目中,我们主要利用Spring框架,包括其核心模块Spring、MVC模块Spring MVC以及数据访问/集成模块Spring JDBC,结合MySQL数据库来构建一个基础的登录注册系统。以下是这个项目涉及的关键技术点: 1. **Spring...

    Java Web 案例实践,基于(spring、 spring mvc、 hibernate)框架实现的

    Spring MVC是Spring框架的一部分,专为构建Web应用而设计,它采用模型-视图-控制器(MVC)架构模式,实现了业务逻辑与展示层的分离。Hibernate则是一个强大的对象关系映射(ORM)工具,能够将数据库操作与Java对象...

    Spring MVC框架的各种依赖包下载

    下面我们将深入探讨Spring MVC框架的关键组成部分及其相关知识点。 1. **Spring Framework基础**:Spring是一个开源的Java平台,它提供了全面的编程和配置模型,以简化企业级应用的开发。Spring MVC是Spring框架的...

    84.企业人力资源管理系统的设计与实现-基于 Spring MVC模式+B/S架构+ Oracle数据库+MVC框架 设计与实现

    84.企业人力资源管理系统的设计与实现|基于 Spring MVC模式+B/S架构+ Oracle数据库+MVC框架 设计与实现(非开源可运行源码+数据库+lw)毕业设计管理系统计算机软件工程大数据专业 可运行源码(含数据库脚本)+开发...

    spring mvc 框架示例

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

    spring mvc框架实现添加功能Demo

    在本示例中,我们将深入探讨如何使用Spring MVC框架与Hibernate ORM工具来实现一个基本的添加功能。Spring MVC是Spring框架的一个模块,专门用于构建Web应用程序,而Hibernate则是一个流行的Java对象关系映射(ORM)...

    一个完整的Spring MVC的CRUD操作实例

    Spring MVC 是一个强大的Java web开发框架,用于构建高效、可维护和模块化的Web应用程序。它基于Spring框架,提供了模型-视图-控制器(MVC)架构模式,简化了从前端到后端的数据处理流程。本实例将深入探讨如何实现...

    基于MVC框架的java web开发

    **基于MVC框架的Java Web开发** 在Java Web开发领域,Model-View-Controller(MVC)模式是一种广泛采用的设计模式,它将应用程序分为三个主要组件:模型(Model)、视图(View)和控制器(Controller),以实现业务...

    Spring MVC学习框架

    Spring MVC 是一个强大且灵活的框架,它与 Spring 框架的其他模块(如 Spring JDBC、Spring ORM、Spring Security 等)紧密集成,可以为 web 应用提供全面的解决方案。通过学习和熟练使用 Spring MVC,开发者可以...

    基于Spring MVC的个人博客系统的设计与实现

    **基于Spring MVC的个人博客系统设计与实现** Spring MVC 是一个流行且强大的Java Web开发框架,用于构建高效、模块化和可测试的Web应用程序。在这个个人博客系统的设计中,Spring MVC 框架被用来处理HTTP请求、...

    Java Web 案例实践,基于(spring,spring mvc,hibernate)框架实现的

    在Java Web开发领域,Spring、Spring MVC和Hibernate是三个非常重要的框架,它们分别负责不同的职责,共同构建出高效、灵活的Web应用。本案例实践将深入探讨这三个框架的结合使用,帮助开发者理解如何在实际项目中...

Global site tag (gtag.js) - Google Analytics