JAVA Web课程设计--注册登录系统-- 用SSH框架整合实现注册登录系统

JAVA Web课程设计--注册登录系统-- 用SSH框架整合实现注册登录系统
JAVA Web课程设计--注册登录系统-- 用SSH框架整合实现注册登录系统

用SSH框架整合实现注册登录系统

注册登录系统几乎是每一个web程序必须拥有的功能,因此,在本次课程设计中将其单独提取出来,并使用SSH框架的整合来实现这个系统。虽然注册和登录系统并不复杂,但这两个子系统却拥有一个完整系统的必要功能,如验证客户端输入、数据库访问等。因此,通过本次课程设计的练习,大家可以基本上了解使用SSH框架整合开发一个完整系统的一般步骤。

本次课程设计的主要内容有:

●系统概述

●设计数据库

●SSH三大框架的整合

●MD5加密的实现(选做)

●注册系统的实现

●登录系统的实现

1、系统概述

本次课程设计练习了一个简单的Web系统,该系统实现了用户注册、用户登录两个功能。本系统的实现是基于SSH框架整合技术的。本系统功能单一,业务逻辑简单。主要用于大家练习如何使用SSH框架整合技术开发一个完整的Web 系统。

1.1系统功能简介

本系统分为两个功能:注册和登录,当用户注册一个新用户时(可以使用英文和中文用户名),就是向数据库的user表中添加一条记录。

当用户输入注册信息时,本系统提供了基本的客户端验证,来判断用户输入的合法性,只有当用户的输入满足系统的要求时,才会将用户输入的数据提交到服务器端负责处理注册信息的Action。在注册Action成功处理完用户提交的注册信息后,客户端仍然会回到注册页面。如果用户想使用已经注册的用户名来登录,可以通过单击“登录”超链接转到登录页面进行登录。

当用户在登录页面正确输入在数据库中已经存在的用户名和密码时,就可以成功登录了。在用户登录页面也拥有和用户注册页面类似的客户端验证机制。也就是说,只有当用户名和密码都输入时,系统才会向服务器端负责登录的Action 提交信息。通过验证用户名和密码都正确,系统才允许登录。

1.2系统总体结构

本系统的注册系统和登录系统是相互独立的,但可以通过使用注册和登录系统的相应超链接导航到另一个系统中。每一个系统分别由一个处理业务逻辑的Action、DAO层代码和若干个JSP页面组成。其中注册系统的Action是RegisterAction类,另外还有一个用于显示用户注册页面的register.jsp文件和一个负责显示处理结果的result.jsp文件。登录系统的Action是LoginAction类,另外还有一个login.jsp文件和一个表示用户已经成功登录的success.jsp文件。用户注册登录系统的工作流程图如下图所示:

图1:注册登录系统工作流程图

从图1可以看出,当RegisterAction处理完用户提交的注册信息后,会向result.jsp提交一个结果信息,在result.jsp中会显示注册成功提示信息,然后如果注册不成功,都会返回到register.jsp页面,以便用户重新输入注册信息。

2、设计数据库

在注册登录系统中只涉及一个user表,这个表对于注册系统来说,每处理一个正确的注册信息后,就会向这个表添加一条记录。对于登录系统来说,每当用户输入正确的登录信息和验证码后,系统就会在user表中查找相关的记录,以确定当前登录用户和密码是否合法。下面将给出这个表的表结构。如表1所示:

表1:user表的结构

3、实现系统的基础类

在这一部分内容中将实现在注册登录系统中使用的一些重要的类,如用于操作数据库的UserDAO接口及其实现类。这些类在整个系统中都起着举足轻重的作用。

3.1实现访问数据库的UserDAO类

UserDAO实际上是一个接口,由于注册系统和登录系统都需要访问和操作数据库,因此,将这些功能都封装在UserDAO接口中,然后UserDAOImpl类对该接口进行实现,这样,在LoginAction类和RegisterAction类的类体中添加UserDAO类型的属性,这两个Action就都可以访问和操作数据库了。UserDAO 接口及其实现类有以下功能:

通过HibernateTemplate对数据库进行连接和操作

对数据库进行增删查改操作。

执行hql。

UserDAO接口和UserDAOImpl类的实现代码请查看UserDAO.java和UserDAOImpl.java文件。

3.2实现MD5加密(选做)

本系统保存在数据库中的密码是通过MD5算法加密的。在JDK中提供了实现MD5算法的类。通过java.security.MessageDigest类的getInstance方法可以获得支持MD5算法的MessageDigest对象实例。关于MD5加密,详见关于MD5加密.doc文档。

由于被MD5算法加密后的字符串中可能含有非可视的字符,这些字符可能无法保存在数据库中,因此,需要将被加密后的字符串再次使用Base64格式进行编码。实现MD5加密的完整代码见 Encrypter.java

4、实现注册系统

在这个系统中,有一个处理用户提交的注册信息的RegisterAction类,除此之外,还有一个register.jsp,这个页面负责显示注册页面。当Register类处理完注册信息后,如果注册成功,会转向result.jsp页面,如果注册不成功,则直接返回register.jsp,可以重新注册。

1.实现注册RegisterAction类

RegisterAction类负责处理用户提交的注册信息。如果注册信息正确,就向user表中添加一条记录,否则,会通过消息对话框显示出现消息。

在开始处理用户注册信息之前,需要先在RegisterAction类中添加userDAO 属性,这样通过该属性就可以对数据库进行操作。然后向user表中插入记录之前,需要先判断一下用户输入的用户名或者密码是否有效,如果用户名和密码输入都合法,就调用userDAO属性的save方法向user表中根据用户输入的信息插入一条记录。如果无法成功插入记录,说明该用户名在user表中已经存在了。为了更稳妥,我们可以先使用select语句来查询用户名是否存在,然后再向user 表中插入记录。

RegisterAction类的完整代码见RegisterAction.java。

2.实现注册系统的主页面

Register.jsp页面是显示了用户输入注册信息的页面。在register.jsp中使用

向Register类提交注册信息。

register.jsp页面的代码见register.jsp。

3.实现结果JSP页面

在Register类处理完注册信息后,如果注册成功,就会转向到result.jsp 页面。这个页面显示了注册成功的结果,并且可以直接通过超链,转向到登录页面login.jsp。结果页面代码详见result.jsp

5、实现登录系统

在这个系统中有一个处理用户提交的登录信息的LoginAction类。除此之外,还有一个login.jsp页面,该页面负责采集用户登录信息。当LoginAction 类处理完登录信息后,如果登录成功,系统就会转到success.jsp页面,否则会返回到登录页面login.jsp,要求用户输入信息,重新登录。

1.实现登录处理LoginAction类

LoginAction类负责处理用户提交的登录信息。这个类和RegisterAction 类的工作流程类似。它的实现代码详见LoginAction.java。

在开始处理用户注册信息之前,需要先在LoginAction类中添加userDAO 属性,这样通过该属性就可以对数据库进行操作。在代码中使用该属性的hql 语句查询从user表中查找登录用户是否存在,如果存在,就将加密后的登录密码和从user表中查找的密码进行比较,如果匹配,就表示登录成功,并转入success.jsp页面。在这里,success.jsp页面只是一个表示登录成功的页面,里面并没有什么实质性的东西,只是显示了登录成功的信息。

注意:在开发的时候,不能直接把success.jsp页面放在WebRoot目录中,因为这样,用户就可以通过地址栏直接访问这个页面,而绕过了身份验证。所以,我们把success.jsp页面可以放在WebRoot\WEB-INF\pages下面,其中pages 是自己新建的文件夹,WEB-INF中的文件在客户端浏览器是无法直接访问的,一般需要验证才能访问的页面都应该放在WEB-INF目录及其子目录中。

2.实现登录系统主页面

login.jsp显示了用户登录页面。在login.jsp页面中使用标签向Login提交登录信息。它的代码详见login.jsp。

6、小结

本系统演示了如何使用SSH框架整合技术来开发一个基于MySql数据库的Web程序。在该系统中实现了4个关键类:操作数据库的UserDAO接口和实现类、RegisterAction类、LoginAction类。

在实现了这四个关键类之后,分别完成了注册系统和登录系统的设计和实现。这两个系统的实现原理类似,只要完成一个,另外一个也就水到渠成了。

相关主题
相关文档
最新文档