一:JavaBean简介

1,JavaBean
	JavaBean是一种特殊的java类,以封装和重用为目的。在类的设计上遵从一定的规范,以供其他组件根据这种规范来调用。
2,分类
	1>用户界面的JavaBean,例如一些GUI组件
	2>没有用户界面,主要负责封装数据,业务处理的JavaBean。(JSP通常访问的是这一种JavaBean)
3,javaweb开发的主流设计模式
	JSP+Servlet+JavaBean
4,JavaBean的设计规范
	(1)JavaBean是一个公开的(public)类,以便被外部程序访问;
	(2)具有一个无参的构造方法(一般为类中默认的构造方法),以便被外部程序实例化时调用;
	(3)提供setXxx方法和getXxx方法,以便让外部程序设置和获取其属性。

二:JSP中使用JavaBean

1,使用动作元素访问JavaBean(JSP中没有一句Java代码,推荐使用)
2,使用Java脚本访问

三:JavaBean应用

1,用户通过一个简单的注册页面(registerStep1.jsp)完成第一步注册信息的填写
<body>
	<h2 align="center">用户注册第一步</h2>
	<form action="registerStep2.jsp" method="post">
		<table border="1" width="50%" align="center">
			<tr>
				<td>用户名:</td>
				<td><input type="text" name="username"/></td>
			</tr>
			<tr>
				<td>密码:</td>
				<td><input type="password" name="password"/></td>
			</tr>
			<tr>
				<td colspan="2" align="center"><input type="submit" value="下一步" /></td>
			</tr>
		</table>
	</form>
</body>
2,将注册信息提交到第二步注册页面(registerStep2.jsp)进行第一步信息的初步保存和第二步详细信息的填写
<body>
	<%
		//设置请求编码方式,防止中文乱码
		request.setCharacterEncoding("UTF-8");
	%>
	<!-- 在JavaBean实例化时,使用请求参数为对象属性赋值 -->
	<jsp:useBean id="user" class="book07.UserBean" scope="session">
		<jsp:setProperty property="username" name="user"/>
		<jsp:setProperty property="password" name="user"/>
	</jsp:useBean>
	<h2 align="center">用户注册第二步</h2>
	<form action="registerConfirm.jsp" method="post">
		<table border="1" width="50%" align="center">
			<tr>
				<td>性别:</td>
				<td><input type="radio" name="sex" checked="checked" value="男"/>男
					<input type="radio" name="sex" value="女" />女</td>
			</tr>
			<tr>
				<td>年龄:</td>
				<td><input type="text" name="age"/></td>
			</tr>
			<tr>
				<td>提示信息:</td>
				<td>
					<select name="tooltip">
						<option value="我妈妈的名字">我妈妈的名字</option>
						<option value="我班主任的名字">我班主任的名字</option>
					</select>
				</td>
			</tr>
			<tr>
				<td>提示答案:</td>
				<td><input type="text" name="answer"/></td>
			</tr>
			<tr>
				<td>邮箱:</td>
				<td><input type="text" name="email" /></td>
			</tr>
			<tr>
				<td>愿意接收信息:</td>
				<td>
					<input type="checkbox" name="message" value="新闻" />新闻
					<input type="checkbox" name="message" value="产品广告" />产品广告
					<input type="checkbox" name="message" value="招聘" />招聘
				</td>
			</tr>
			<tr>
				<td colspan="2" align="center">
					<input type="submit" value="完成"/>
				</td>
			</tr>
		</table>
	</form>
</body>
3,提交到第三步注册信息确认页面(registerConfirm.jsp),在信息确认页面中先将第二步提交的信息保存到JavaBean对象,随后进行信息的显示确认
<body>
	<%
		//设置请求编码方式,避免中文乱码
		request.setCharacterEncoding("UTF-8");
	%>
	<!-- 查找JavaBean对象,使用请求参数为对象属性赋值 -->
	<jsp:useBean id="user" class="book07.UserBean" scope="session" />
	<jsp:setProperty property="*" name="user"/>
	
	<h2 align="center">用户信息确认</h2>
	<form action="registerSuccess.jsp" method="post">
		<table border="1" align="center" width="50%">
			<tr>
				<td>用户名:</td>
				<td><jsp:getProperty property="username" name="user"/></td>
			</tr>
			<tr>
				<td>密码:</td>
				<td><jsp:getProperty property="password" name="user"/></td>
			</tr>
			<tr>
				<td>性别:</td>
				<td><jsp:getProperty property="sex" name="user"/></td>
			</tr>
			<tr>
				<td>年龄:</td>
				<td><jsp:getProperty property="age" name="user"/></td>
			</tr>
			<tr>
				<td>提示信息:</td>
				<td><jsp:getProperty property="tooltip" name="user"/></td>
			</tr>
			<tr>
				<td>提示答案:</td>
				<td><jsp:getProperty property="answer" name="user"/></td>
			</tr>
			<tr>
				<td>邮箱:</td>
				<td><jsp:getProperty property="email" name="user"/></td>
			</tr>
			<tr>
				<td>愿意接收信息:</td>
				<td><jsp:getProperty property="messageChoose" name="user"/></td>
			</tr>
			<tr>
				<td colspan="2" align="center"><input type="submit" value="确认提交" /></td>
			</tr>
		</table>
	</form>
</body>
4,用于封装用户注册信息的JavaBean
public class UserBean {
	private String username;
	private String password;
	private char sex;
	private int age;
	private String tooltip;
	private String answer;
	private String email;
	private String[] message;
	
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	
	public char getSex() {
		return sex;
	}
	public void setSex(char sex) {
		this.sex = sex;
	}
	
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	
	public String getTooltip() {
		return tooltip;
	}
	public void setTooltip(String tooltip) {
		this.tooltip = tooltip;
	}
	
	public String getAnswer() {
		return answer;
	}
	public void setAnswer(String answer) {
		this.answer = answer;
	}
	
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
	
	public String[] getMessage() {
		return message;
	}
	public String getMessageChoose(){
		String messageChoose = "";
		if(message != null){
			for(int i=0; i<message.length; i++){
				messageChoose += message[i];
				if(i != message.length-1){
					messageChoose += ",";
				}
			}
		}
		return messageChoose;

	}
	public void setMessage(String[] message) {
		this.message = message;
	}
}
5,注册成功页面
<body>
	<h3>注册成功</h3>
</body>