用户登录模块程序的结构图如下图所示:
    
|    图 1 实例页面流转图 | 
  用户在登录页面中录入密码、验证正确后转向欢迎主页面
,如果输入的密码错误
,导向登录失败页面
。这个模块包含6个JSP文件、3个Java类及两张后台表
。    6个JSP文件分别为用户登录、页面流转控制、错误处理、登录成功和失败、以及退出系统的处理页面,简单介绍如下:  
  表 1 JSP文件    
| JSP页面 | 说明 | 
| login.jsp | 登录JSP页面 | 
| switch.jsp | 进行密码验证和页面流转控制的JSP页面。 | 
| error.jsp | 错误处理JSP页面,以一种友好的方式向客户报告程序的错误。为其他所有JSP页面的错误处理页面。 | 
| welcome.jsp | 登录成功后转向的欢迎页面。我们在该页面中引用了一套第三方的标签库。 | 
| fail.jsp | 登录失败后转向这个错误处理页面。 | 
| quit.jsp | 退出系统后调用的页面,它负责清除session,结束会话。 | 
  JSP文件主要负责页面的展现,而业务逻辑或资源处理等功能可以放到Java类中,表单数据则可以通过Bean来封装,模块中提供了3个类,介绍如下:  
  表 2 3个Java类    
| 类 | 说明 | 
| DBConnection | 获取数据库的连接。 | 
| User | 描述用户对象并负责写登录、退出日志。 | 
| UserList | 获取系统的所有用户并转换为一个网页下拉框。 | 
  用户信息及用户登录信息用数据库表来存放,选择
Oracle 9i作为我们的数据库,当然,你也可以使用其他类型的数据库,只要相应地调整DBConnection类和表
SQL定义语句就可以了,这种移植的代价是很小的,下面介绍这两张表的用途和结构:  
  表 3 2张数据库表    
| 表名 | 说明 | 
| T_USER | 用户信息表,包含用户ID、用户名及密码3个字段。 | 
| T_LOGIN_LOG | 记录用户登录的时间和退出的时间,日志主键利用一个序列SEQ_LOGIN_LOG_ID产生。 | 
  这两张数据库表和序列的结构如下:    
|    图 2 数据表及序列 | 
  数据库用户名/密码是:jbuser/abc。在着手开发我们的登录模块前,必须先在数据库中创建用户,创建生成表和序列。