logo资料库

用户管理系统(基于JSP、JDBC和JavaBean).doc

第1页 / 共23页
第2页 / 共23页
第3页 / 共23页
第4页 / 共23页
第5页 / 共23页
第6页 / 共23页
第7页 / 共23页
第8页 / 共23页
资料共23页,剩余部分请下载后查看
案例:用户管理系统(基于JSP、JDBC和JavaBean)
1.1系统功能
1.2系统概要设计
1.3详细设计和实现
1.3.1创建数据库表
1.3.2创建login.jsp和register.jsp
1.3.3创建JavaBean:User、DAO
1.3.4实现注册流程
1.3.5实现登录流程
1.3.6注册时检查userName是否存在
1.3.7列出所有用户
1.3.8添加删除用户功能
1.3.9添加查询用户功能
1.3.10添加排序功能
1.3.11添加退出系统功能
1.4本讲小结
练习题
案例:用户管理系统(基于 JSP、JDBC 和 JavaBean) 本讲将基于之前介绍的 JSP、MySQL、JDBC 和 JavaBean 等知识,设计和实 现一个综合的用户注册登录及信息管理系统。具体内容如下:  JSP、MySQL、JDBC 和 JavaBean 的基础知识及其运用过程、方法 1.1 系统功能 本系统中,只有一类用户,即注册用户。用户注册到系统中后,可以登录到 系统中,并可以查看个人信息、查询/浏览和删除系统中的其他人员信息。概括 后,我们将主要提供以下功能: 1)用户注册; 2)用户登录; 3)浏览所有用户信息; 4)按条件查询用户信息; 5)删除某个用户; 1.2 系统概要设计 系统设计是新系统的物理设计阶段。根据系统分析阶段所确定的新系统的功 能要求,设计出一个能实施的方案,即建立新系统的物理模型。 这个阶段的任务是:设计软件系统的模块层次结构、设计数据库的结构以及 设计模块的控制流程,其目的是明确软件系统“如何做”。这个阶段又分两个步 骤:概要设计和详细设计。概要设计解决软件系统的模块划分和模块的层次机构 以及数据库设计;详细设计解决每个模块的控制流程、内部算法和数据结构的设 计。 1.系统架构设计 该程序主要由 JSP、JavaBean 和 JDBC 实现。这三种技术中,JSP 主要用于 与用户的交互界面;JavaBean 用于封装数据,即 JSP 中提交的数据或从数据库中 读取的数据都将封装在 JavaBean 中;JDBC 用于实现对数据库的读写操作。图
10- 1 给出了本系统的主要技术架构。 请求 响应 客 户 端 浏 览 器 J S P 调用 返回 J a v a B e a n ( J D B C ) 操作 结果 数据库 Tomcat 系统架构 2.系统页面和类设计 我们针对上述系统需求的功能进行逐个设计。 1)用户注册 为实现用户注册,我们需要设计一个界面以便用户输入其基本信息;用户录 入基本信息后,系统将这些基本信息存到数据库中。因此,我们将设计如图 10- 2 所示页面流程实现该功能。其中,index.jsp 为系统首页;register.jsp 提供一个信 息输入界面,registerProcess.jsp 接收用户所输入的数据,并调用 User 类的 register 方法将数据保存到数据库中。为了向用户及时反馈注册成功/失败信息,register 方法将返回一个逻辑值。 login.jsp register.jsp 提交数据 registerProcess.jsp 调用方法 User.register() 成功 提示结果 失败 用户注册流程 2)用户登录
用户注册后,数据库中将保存用户的登录用户名和密码,因此,要实现该功 能,只需要提供一个登录界面,然后接收用户输入的用户名和密码并与数据库中 保存的信息进行比对即可,其具体页面和流程如图 10- 3 所示。login.jsp 和 loginProcess.jsp 的功能同注册流程;login 方法同样将返回一个逻辑值以反映用户 登录是否成功。 login.jsp register.jsp 提交数据 loginProcess.jsp 调用方法 User.login() 失败 成功 main.jsp 提交数据 registerProcess.jsp 调用方法 User.register() 成功 提示结果 失败 用户登录流程 3)用户信息管理 用户登录成功后,可以查看所有用户信息,可以按一定条件查询用户,在查 看用户信息时,可以删除某个用户。
main.jsp 查询 条件 为空 listUsers.jsp deleteUser.jsp queryUsers.jsp queryProcess.jsp 查 询 条 件 通 过 request 的属性传递 QueryCondition. generateSQLStr() User.query() 用户查询流程 查看所有用户和查询用户的结果形式是一样的,所以可以统一到 listUsers.jsp 页面中去显示,将查看所有用户看作是没有查询条件的查询。查询条件由 queryUsers.jsp 页面输入,输入后由 queryProcess.jsp 页面处理,全部参数由一个 QueryCondition 对象(JavaBean)接收,并传递给 listUsers.jsp 页面。在 listUsers.jsp 页面,调用 QueryCondition 对象的 generateSQLStr()方法生成查询语句。 在查询结果中,以表格的形式将用户信息显示在网页上,每一行为一个用户。 为了增加删除用户的操作,在每一行的后面添加一个删除按钮(实际为超级链 接),调用 deleteUser.jsp,具体删除哪个用户由用户的 id 确定,因为每个用户 的 id 是唯一的,不会出现错删的情况。要删除的用户的 id 通过一个参数传递给 deleteUser.jsp。 1.3 详细设计和实现 基于以上概要设计内容,这里给出系统的详细设计和具体实现步骤。
1.3.1 创建数据库表 首先使用 MySQL-Front 创建一个数据库 login,并指定其编码方式为 gbk, 然后按下列表结构创建相关数据表。 1.用户信息表 为了有效存储用户相关信息,设计用户基本信息表如下: 表 10- 1 user 表结构 字段名 字段类型 宽度 字段说明 id Int 关键字,自增 1 userName Varchar password Varchar trueName Varchar 10 10 10 用户名 密码 真实姓名 sex Int 性别,0 表示男,1 表示女 1.3.2 创建 login.jsp 和 register.jsp 创建 login.jsp 页面,主要代码如下:
用户名:
口令:
注册 创建 register.jsp 页面,代码如下:
用户名:
口令:
真实姓名:
性别:
返回登录页面
1.3.3 创建 JavaBean:User、DAO 创建 beans 包。注意,所有 JavaBean 都必须放到某个包中,在缺省包中的类 在 JSP 页面中无法使用。 在 beans 包中创建 User 类, 添加属性: int id; String userName; String password; String trueName; int sex; 生成 getter/setter 方法:在源代码空白处点右键,选择 Source – generate Getters/Setters。 在 beans 包中创建 DAO 类, 添加静态(static)方法:getConnection,代码如下: public static Connection getConnection() throws ClassNotFoundException, SQLException{ Connection conn = null; Class.forName("com.mysql.jdbc.Driver"); String dburl = "jdbc:mysql://127.0.0.1:3306/login?user=root&password=&characterEncod ing=gbk"; conn = DriverManager.getConnection(dburl); return conn; } 1.3.4 实现注册流程 创建 registerProcess.jsp 页面,代码如下: <% request.setCharacterEncoding("GB18030"); %> 用户名:<%= user.getUserName() %>
口令:<%=user.getPassword() %>
真实姓名:<%=user.getTrueName() %>
性别:<%=user.getSex() %>

<% if(user.register()){ out.print("注册成功
"); out.print("登录"); out.print("注册失败
"); out.print("返回注册页面"); 为 User 类编写 register()方法 public boolean register() throws ClassNotFoundException, boolean ret = false; String sql = "INSERT INTO user (userName, password, trueName, sex) + userName + "','" + password + "','" + trueName + "'," + ret = DAO.executeUpdate(sql); return ret; } else { } %> SQLException{ VALUES('" sex + ")"; } } 为 DAO 类编写 executeUpdate()方法 public static boolean executeUpdate(String sql) throws ClassNotFoundException, SQLException{ boolean ret = false; Connection conn = getConnection(); Statement stat = conn.createStatement(); if(stat.executeUpdate(sql)>0)ret=true; stat.close(); conn.close(); return ret; 测 试 运 行 , 此 时 会 出 现 找 不 到 jdbc 驱 动 的 异 常 , 解 决 方 法 是 将 mysql-connector-java-5.1.18-bin.jar 加入项目的库中,并设置为发布时也使用,具 体方法如下:
1) 选择 Project – Properties,在项目属性对话框左边的选项中选择 Java Build Path,在右边选择 Libraries 分页,从右边的按钮中选择 Add External JARs ; 在 文 件 选 择 对 话 框 中 选 中 mysql-connector-java-5.1.18-bin.jar 文件,选打开。 2) 在项目属性对话框左边的选项中选择 J2EE Module Dependencies,在 右边的表格中将 mysql-connector-java-5.1.18-bin.jar 前面选中,然后 点右下角的应用。 1.3.5 实现登录流程 创建 loginProcess.jsp 页面,代码如下: <% request.setCharacterEncoding("GB18030"); %> <% if(user.login()){ out.print("登录成功
"); out.print("进入主页面"); } else {
分享到:
收藏