一: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>