一、实验目的
1 理解 JavaBean 的作用;
2 能够定义 JavaBean;
3 能在 JSP 页面中使用 JavaBean。
二、实验内容与要求
实验内容:
1.实现功能说明:以用户注册信息页面为例,定义一个用户信息 JavaBean 并在JSP页面中通过jsp中通过直接访问或标签两种形式进行调用。实现下列功能:
(a)创建一个用户注册信息输入页面,用户输入信息包括:姓名、学号、登录密码、性别、年龄、籍贯、选修课程以及个人简介,其中性别为布尔值、选修课程为多选;
(b)定义用户信息JavaBean,其内容与用户注册表单相一致;
(c)创建一个用户信息保持页面,在JSP中使用标签形式,根据前一个页面提交的注册信息构造用户信息JavaBean对象,注意设置其作用范围;
(d)创建一个用户登录以及验证页面,用户通过输入姓名和密码来进行系统登录,当用户名和密码与JavaBean中的信息一致时允许登录,否则输出错误信息或转向错误页面。
2.实验所涉及的基本概念及原理:
(a)JavaBean是符合某种规范的Java组件,也就是Java类。
它必须满足如下规范:
- JavaBean是一个public的类;
- JavaBean有一个无参数的构造方法;
③JavaBean的每个属性最好是private的,每个属性有一对get和set方法,通过get和set方法来读取和设置属性。
④JavaBean中可以增加业务方法,来进行数据库的访问操作
(b) 基于JavaBean,在JSP页面中访问其的方法有2种: 直接访问和JSP标签访问:
①直接访问,具体方法:首先声明bean,然后在页面顶部导入JavaBean类: <%@ page import="mytrain.formbean.userBean" %>,并在JSP段实例化类: <% userBean user = new userBean(); %>;访问bean的具体代码:
<% user.setXXX(aa); %>
<%=user.getXXX();%>
②标签访问,具体方法:首先声明bean,然后使用userBean标签:
<jsp:useBean id="user" class="mytrain.formbean.userBean"/>,具体访问则通过setProperty标签来设置:
<jsp:setProperty name="user" property="name" param="mUserName"/>
通过getProperty标签来取得:
<jsp:getProperty name="user" property="name"/
3、实验要求:设计代码验证上述方法并调试程序是否正常运行
三、实验步骤(含参考的核心代码与配置文件)
(1)以基于用户名和密码的JavaBean应用为例,实现将用户名和密码存放在JavaBean中的功能:
设JavaBean为UserBean.java,
代码如下:
package mytrain.formbean;
public class userBean {
private String name;
private String password;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
(2)直接访问JavaBean,在一个页面完成注册信息、输出Javaben信息功能,参考代码:
<%@ page language="java" pageEncoding="GBK"%>
<%@ page import="mytrain.formbean.userBean" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>表单Bean例子3</title>
<link rel="StyleSheet" href="../../CSS/style.css" type="text/css" />
</head>
<body>
<form action="" method="post">
<span class="blue10">用户名:</span>
<input type="text" name="mUserName" size="20"><br>
<span class="blue10">密 码:</span>
<input type="password" name="mPassword" size="20"><br>
<input type=submit value="submit"/>
</form>
<%
userBean user = new userBean();
user.setName(request.getParameter("mUserName"));
user.setPassword(request.getParameter("mPassword"));
%>
<hr/>
用户名:<%=user.getName()%>
<br>
密 码:<%=user.getPassword()%>
</body>
</html>
实验截图:
(3)使用标签访问,功能与(2)类似,页面参考代码
<%@ page language="java" pageEncoding="GBK"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>表单Bean例子2</title>
<link rel="StyleSheet" href="../../CSS/style.css" type="text/css" />
</head>
<body>
<form action="" method="post">
<span class="blue10">用户名:</span>
<input type="text" name="mUserName" size="20"><br>
<span class="blue10">密 码:</span>
<input type="password" name="mPassword" size="20"><br>
<input type=submit value="submit"/>
</form>
<jsp:useBean id="user" class="mytrain.formbean.userBean"/>
<jsp:setProperty name="user" property="name" param="mUserName"/>
<jsp:setProperty name="user" property="password" param="mPassword"/>
用户名:<jsp:getProperty name="user" property="name"/>
<br>
密 码:<jsp:getProperty name="user" property="password"/>
</body>
</html>
实验截图:
思考题
在JSP页面中使用JavaBean的动作有哪几个?
动作:jsp:useBean,jsp:setProperty,jsp:getProperty
四、知识扩展
假设所有用户信息存储在List对象中,对用户管理子系统中的所有用户,用标签结合JavaBean,在视图上展示出来。