报告正文
简单身份验证 JAVABEAN 的设计
摘要:用户名密码输入在 html 文件中,接收和文件调用在服务器 JSP 页面中,用户名密码验证写在 JavaBean
里面,在调用 JavaBean 完成验证。
关键字:(小五号粗)JavaBean, html, JSP 页面
1. 课程设计介绍
本设计使用 JavaBean 作为业务逻辑,使用 jsp+html 作为显示设计,设计简
单的 J2EE 系统实现对学生姓名和学号进行验证,身份确任代码与身份验证代码
分别在两个 JavaBean 中,通过表单提交学生学号和姓名,设计一 JSP 文件接收
学生信息,调用第一个 Bean 实现对学生身份的初始化,调用第二个 Bean 对学生
身份的验证,如验证成功则登录 wellcome 页面,如不成功而重新登录。
2. 基本原理或方法
JavaBean 的一个显著特点就是它可以在支持 Java 的任何平台下工作,而
不需要重新编译。传统意义上的 JavaBean 支持的组件有两种,分别为可视化组
件和非可视化组件。对于可视化组件,开发人员可以在运行结果中观察到,如
Swing 下的应用等;而本设计是基于非可视化组件,它不可以在运行结果中观察
到,它一般用来处理一些复杂的事件,主要用在服务器端。对于 JSP 来说,只支
持非可视化 JavaBean 组件。 虽然可以在不同的代码文件中放入一大块相同的程
序代码,但是大多数的 Java 程序代码是属于可以重复使用的,即这段代码可以
被当作 JavaBean 组件来使用。JavaBean 所起到的作用跟 ActiveX 一样:它们向
用户提供一些能实现特定功能的方法接口,而具体的实现代码则是封装在组件内
部(一般的用户也并不关心其实现过程),并且是为了可随时重复使用的目的而
设计的,不同的用户可以根据具体的情况来使用该组件的部分或者是全部功能。
在 Java Web 开发中常使用 JavaBean 来封装数据、封装业务方法、封装事
务逻辑,进行数据库的操作等,以实现业务逻辑和数据展示(JSP 文件)的分离,
使系统更健壮和灵活。JavaBean 的操作 跟反射差不多 ,只它的操作比反射简单,
但是原理都一样, 学会了 JavaBean 的操作 那么对于 JavaBean 在 web 中的应用
就会有很好的理解,但是有一点必须要清楚就是用户通过浏览器来发送网页的请
求,此请求到达服务器后在服务器端查找对应的网页,如果是首次请求(第二次
就不用解释执行了),对于 JSP 来说要生成 Servlet,然后通过 Servlet 引擎来
执行 Servlet,把调用 JavaBean 的结果嵌入到页面中返回给用户的浏览器。
3. 结果和结果分析
第一:启动 tomcat,从浏览器调用 lonin.htm 文件,显示登录页面内容,在
登录页面中输入学生姓名,学号按密码输入,见下图:
第二:内容提交给 loginchk.jsp,
文件通过:
将结果提交给 UserBean.java.进行注册,再建立 UserCheckBean 的对象对提
交的数据进行封装、验证。
<%
UserCheckBean uc=new UserCheckBean(user);
if(uc.validate())
{
%>
<%
}
else
{
登录");
}
%>
out.println("用户名或密码错误,请
重新
第三:如成功而进入 wellcome.jsp 页面,如下图:
如不成功则要求重新输入:如下图:
完成用户名学号验证。
4.带注释的程序清单
本设计共使用了一个 html 文件,两个 jsp 文件,实现了程序的视部分设计,设计了两
个 JavaBean 文件,实现了用户名和学号封装验证逻辑设计。
(1) login.htm 文件清单
登录页面
(2) loginchk.jsp 文件清单
request.setCharacterEncoding("GB2312");头%>
<%@ page contentType="text/html;charset=GBK" %>
<%@ page import="test.cn.usebean.UserCheckBean" %>
<%
<%
UserCheckBean uc=new UserCheckBean(user);
if(uc.validate())
{
%>
<%
}
else
{
out.println("用户名或密码错误,请
重新登录");
}
%>
(3) welcome.jsp 文件清单
<%@ page contentType="text/html;charset=GB2312" %>
登录成功!
!
学 号:
class="style1"> 欢 迎 你 :
!
(4) UserBean.java Bean 原码
package test.cn.usebean;
import java.io.Serializable;
public class UserBean implements Serializable
{
private String name; //用户名
private String password; //密码
}
return name;
public String getName()
{
public void setName(String name)
{
public String getPassword()
{
public void setPassword(String password)
{
this.password=password;
return password;
this.name=name;
}
}
}
}
}
(5) UserBeanchk.java Bean 原码
package test.cn.usebean;
public class UserCheckBean
{
private UserBean user;
public UserCheckBean()
{
public UserCheckBean(UserBean user)
{
this.user=user;
public UserBean getUser()
{
}
public void setUser(UserBean user)
{
}
public boolean validate()
{
this.user=user;
return user;
}
String name=user.getName();
String password=user.getPassword();
//此处为了简化而直接对用户名和密码进行了判断
if("徐成志".equals(name) && "123456".equals(password))
{
else
{
}
}
return true;
return false;
}
}
5.使用说明
(1) 本设计使用前首先对 jsp 文件和 JavaBean 进行布署。
(2) 将三个 html 和 jsp 文件发布到 tomcat\webapps\root 目录下。
(3) 将二个 JavaBean 原码文件考贝到 tomcat\webapps\root\web-inf\classes 目录下.
(4) 运行 cmd 进入 tomcat\webapps\root\web-inf\classes 目录。
(5) 通过以下两个命令完成两个 JavaBean 的编译、安装。
Javac –d . UserBean.java
Javac –d . UserBeanchk.java
6. 参考文献和站点
[1]林巧民主编. JSP 动态网页程序设计[M]清华大学出版社,2009.117-196
[2] 耿祥义张跃平主编.JSP 实用教程 [M]清华大学出版社,2009.117-196
[3] 印 * 主 编 .JAVA 语 言 与 面 向 对 象 程 序 设 计 [M] 清 华 大 学 出 版 社 ,2009.117-196
[4]http://www.stcsm.gov.cn/learning/lesson/xinxi/20030401/lesson.jsp