一、实验目的
1、理解 JavaBean 的作用;
2、能够定义 JavaBean;
3、能在 JSP 页面中使用 JavaBean。
二、实验内容
1、实现功能说明:以用户注册信息页面为例,定义一个用户信息 JavaBean 并在JSP页面中通过jsp中通过直接访问或标签两种形式进行调用。实现下列功能:
(a)创建一个用户注册信息输入页面,用户输入信息包括:姓名、学号、登录密码、性别、年龄、籍贯、选修课程以及个人简介,其中性别为布尔值、选修课程为多选;
(b)定义用户信息JavaBean,其内容与用户注册表单相一致;
(c)创建一个用户信息保持页面,在JSP中使用标签形式,根据前一个页面提交的注册信息构造用户信息JavaBean对象,注意设置其作用范围;
(d)创建一个用户登录以及验证页面,用户通过输入姓名和密码来进行系统登录,当用户名和密码与JavaBean中的信息一致时允许登录,否则输出错误信息或转向错误页面。
2、实验要求:设计代码验证上述方法并调试程序是否正常运行
三、实验步骤及实验结果记
1、功能(a)实验结果截图
2、功能(b)实验结果截图
3、功能(c)实验结果截图
4、功能(d)实验结果截图
四、实验总结
用jspbean调用java时如果出现乱码就在jsp文件下重构编码方式或者检查编码方式是否和项目编码方式一致:
五、核心源代码(详细代码见电子文档)
1、功能(a)核心代码
package com.icss.action;
public class a {
private String name;
private String studentId;
private String password;
private boolean gender;
private int age;
private String hometown;
private String[] courses;
private String bio;
// Getters and Setters for all the properties
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getStudentId() {
return studentId;
}
public void setStudentId(String studentId) {
this.studentId = studentId;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public boolean isGender() {
return gender;
}
public void setGender(boolean gender) {
this.gender = gender;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getHometown() {
return hometown;
}
public void setHometown(String hometown) {
this.hometown = hometown;
}
public String[] getCourses() {
return courses;
}
public void setCourses(String[] courses) {
this.courses = courses;
}
public String getBio() {
return bio;
}
public void setBio(String bio) {
this.bio = bio;
}
}
<%@ page language="java" pageEncoding="GBK"%>
<%@ page import="com.icss.action.a" %>
<!DOCTYPE html>
<html>
<head>
<title>User Registration</title>
</head>
<body>
<h1>User Registration Form</h1>
<form action="processRegistration.jsp" method="post">
Name: <input type="text" name="name"><br>
Student ID: <input type="text" name="studentId"><br>
Password: <input type="password" name="password"><br>
Gender: <input type="radio" name="gender" value="male">Male
<input type="radio" name="gender" value="female">Female<br>
Age: <input type="number" name="age"><br>
Hometown: <input type="text" name="hometown"><br>
Courses: <input type="checkbox" name="courses" value="Math">Math
<input type="checkbox" name="courses" value="Science">Science
<input type="checkbox" name="courses" value="History">History<br>
Bio: <textarea name="bio"></textarea><br>
<input type="submit" value="Submit">
</form>
</body>
</html>
2、功能(b)核心代码
<%@ page language="java" pageEncoding="GBK"%>
<%@ page import="com.icss.action.a" %>
<!DOCTYPE html>
<html>
<head>
<title>User Information Display</title>
</head>
<body>
<h1>User Information</h1>
<%
a user = new a();
user.setName("陈志朋");
user.setStudentId("123456");
user.setPassword("password123");
user.setGender(true);
user.setAge(25);
user.setHometown("New York");
user.setCourses(new String[]{"Math", "Science"});
user.setBio("Lorem ipsum dolor sit amet, consectetur adipiscing elit.");
%>
<p>Name: <%= user.getName() %></p>
<p>Student ID: <%= user.getStudentId() %></p>
<p>Password: <%= user.getPassword() %></p>
<p>Gender: <%= user.isGender() ? "Male" : "Female" %></p>
<p>Age: <%= user.getAge() %></p>
<p>Hometown: <%= user.getHometown() %></p>
<p>Courses:
<%
for (String course : user.getCourses()) {
out.println(course + " ");
}
%>
</p>
<p>Bio: <%= user.getBio() %></p>
</body>
</html>
3、功能(c)核心代码
<%@ page language="java" pageEncoding="GBK"%>
<%@ page import="com.icss.action.a" %>
<!DOCTYPE html>
<html>
<head>
<title>User Information Display</title>
</head>
<body>
<h1>User Information</h1>
<c:set var="user" scope="session">
<c:new className="com.icss.action.a" />
<c:set target="${user}" property="name" value="${param.name}" />
<c:set target="${user}" property="studentId" value="${param.studentId}" />
<c:set target="${user}" property="password" value="${param.password}" />
<c:set target="${user}" property="gender" value="${param.gender}" />
<c:set target="${user}" property="age" value="${param.age}" />
<c:set target="${user}" property="hometown" value="${param.hometown}" />
<c:set target="${user}" property="courses" value="${paramValues.courses}" />
<c:set target="${user}" property="bio" value="${param.bio}" />
</c:set>
<p>Name: ${user.name}</p>
<p>Student ID: ${user.studentId}</p>
<p>Password: ${user.password}</p>
<p>Gender: ${user.gender ? "Male" : "Female"}</p>
<p>Age: ${user.age}</p>
<p>Hometown: ${user.hometown}</p>
<p>Courses:
<c:forEach var="course" items="${user.courses}">
${course}
</c:forEach>
</p>
<p>Bio: ${user.bio}</p>
</body>
</html>
4、功能(d)核心代码
<%@ page language="java" pageEncoding="GBK"%>
<%@ page import="com.icss.action.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>