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