定義一個JavaBean(JavaBean實際上就是一個簡單的java類)
javac -d ./ UserBean.java
產生包檔案
package com.javaweb.ch07;//一個簡單的JavaBean樣本public class UserBean{ //使用者名稱屬性 private String username; //使用者密碼屬性 private String password; //擷取使用者名稱 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; }}
<%@page language="java" contentType="text/html;charset=gb2312"%><!DOCTYPE html><html> <head> <title>調用JavaBean</title> </head> <body> <%--通過JavaBean動作指令調用JavaBean--%> <jsp:useBean id="user" scope="page" class="com.javaweb.ch07.UserBean"></jsp:useBean> <% //設定user的username屬性 user.setUsername("zhangdapeng"); //設定user的password屬性 user.setPassword("zhangda890126;;"); //列印輸出user的username out.println("使用者名稱為:"+user.getUsername()+"<br />"); //列印輸出user的password out.println("使用者的密碼為:"+user.getPassword()+"<br />"); %> <% try{ Class.forName("com.mysql.jdbc.Driver");//載入JDBC驅動程式 }catch(ClassNotFoundException e){ out.println("找不到驅動類");//拋出異常時,提示資訊 } %> </body></html>
產生的類一定要放在自己項目的目錄下WEB-INF中的classes檔案夾下面,沒有的話自己建立。
設定javaBean的屬性:
jsp中使用<jsp:setProperty>動作指令來設定JavaBean屬性,有四種格式
<jsp:setProperty name="執行個體化對象名" property="*" />
這中方式中的"*"表示根據表單傳的所有參數來設定JavaBean屬性,其傳過來的參數值必須與JavaBean中的屬性名稱保持一致
<%@page language="java" contentType="text/html;charset=gb2312"%><%@page import="java.sql.*" %><!DOCTYPE html><html> <head> <title>使用者表單</title> </head> <body> <form action="SetPropertyDemo.jsp" method="post"> <table> <tr><td colspan="2">使用者表單</td></tr> <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"><input type="submit"><input type="reset" /></td></tr> <tr></tr> </table> </form> </body></html><%@page language="java" contentType="text/html;charset=gb2312"%><!DOCTYPE html><html> <head> <title>設定JavaBean屬性</title> </head> <body> <%--通過useBean動作指令調用JavaBean--%> <jsp:useBean id="user" scope="page" class="com.javaweb.ch07.UserBean"></jsp:useBean> <%--根據所有的參數設定JavaBean中屬性--%> <jsp:setProperty name="user" property="*" /> <% //列印輸出user的username out.println("使用者名稱為:"+user.getUsername()+"<br />"); //列印輸出user的password out.println("使用者的密碼為:"+user.getPassword()+"<br />"); %> </body></html><jsp:setProperty name="執行個體化對象名" property="屬性名稱" />
提交表單的頁面同上
<%@page language="java" contentType="text/html;charset=gb2312"%><!DOCTYPE html><html> <head> <title>設定JavaBean屬性</title> </head> <body> <%--通過useBean動作指令調用JavaBean--%> <jsp:useBean id="user" scope="page" class="com.javaweb.ch07.UserBean"></jsp:useBean> <%--根據所有的參數設定JavaBean中屬性--%> <jsp:setProperty name="user" property="username" /> <% //列印輸出user的username out.println("使用者名稱為:"+user.getUsername()+"<br />"); //列印輸出user的password out.println("使用者的密碼為:"+user.getPassword()+"<br />"); %> </body></html><jsp:setProperty name="執行個體化對象名" property="屬性名稱" param="參數名稱" /><%@page language="java" contentType="text/html;charset=gb2312"%><%@page import="java.sql.*" %><!DOCTYPE html><html> <head> <title>使用者表單</title> </head> <body> <form action="SetPropertyDemo.jsp" method="post"> <table> <tr><td colspan="2">使用者表單</td></tr> <tr><td>使用者名稱:</td><td><input type="text" name="username" /></td></tr> <tr><td>使用者密碼:</td><td><input type="password" name="userpassword" /></td></tr> <tr><td colspan="2"><input type="submit"><input type="reset" /></td></tr> <tr></tr> </table> </form> </body></html>
這裡注意password表單的name屬性
<%@page language="java" contentType="text/html;charset=gb2312"%><!DOCTYPE html><html> <head> <title>設定JavaBean屬性</title> </head> <body> <%--通過useBean動作指令調用JavaBean--%> <jsp:useBean id="user" scope="page" class="com.javaweb.ch07.UserBean"></jsp:useBean> <%--根據所有的參數設定JavaBean中屬性--%> <jsp:setProperty name="user" property="username" param="username"/> <span style="color:#e53333;"><jsp:setProperty name="user" property="<span style="color:#003399;">password</span>" param="<span style="color:#003399;">userpassword</span>"/></span> <% //列印輸出user的username out.println("使用者名稱為:"+user.getUsername()+"<br />"); //列印輸出user的password out.println("使用者的密碼為:"+user.getPassword()+"<br />"); %> </body></html>
上面的代碼注意紅色中的藍色部分,這個彈性更好
<jsp:setProperty name="執行個體化對象名" property="屬性名稱" value="屬性值" /><%@page language="java" contentType="text/html;charset=gb2312"%><!DOCTYPE html><html> <head> <title>設定JavaBean屬性</title> </head> <body> <%--通過useBean動作指令調用JavaBean--%> <jsp:useBean id="user" scope="page" class="com.javaweb.ch07.UserBean"></jsp:useBean> <%--根據所有的參數設定JavaBean中屬性--%> <jsp:setProperty name="user" property="username" value="Devidpeng"/> <jsp:setProperty name="user" property="password" value="Devidpeng"/> <% //列印輸出user的username out.println("使用者名稱為:"+user.getUsername()+"<br />"); //列印輸出user的password out.println("使用者的密碼為:"+user.getPassword()+"<br />"); %> </body></html>
獲得JavaBean的屬性:
<jsp:getProperty name="" property=""/><%@page language="java" contentType="text/html;charset=gb2312"%><!DOCTYPE html><html> <head> <title>擷取JavaBean屬性</title> </head> <body> <%--通過useBean動作指令調用JavaBean--%> <jsp:useBean id="user" scope="page" class="com.javaweb.ch07.UserBean"></jsp:useBean> <%--根據所有的參數設定JavaBean中屬性--%> <jsp:setProperty name="user" property="username" value="Devidpeng"/> <jsp:setProperty name="user" property="password" value="zhangdapeng"/> <jsp:getProperty name="user" property="username" /> <jsp:getProperty name="user" property="password" /> </body></html>
設定JavaBean的範圍:
設定page範圍的JavaBean
<%@page language="java" contentType="text/html;charset=gb2312"%><!DOCTYPE html><html> <head> <title>設定page的範圍</title> </head> <body> <%--通過useBean動作指令調用JavaBean--%> <jsp:useBean id="user" scope="<span style="color:#e53333;">page</span>" class="com.javaweb.ch07.UserBean"></jsp:useBean> <%--根據所有的參數設定JavaBean中屬性--%> <jsp:setProperty name="user" property="username" value="page_username"/> <jsp:setProperty name="user" property="password" value="page_password"/> <jsp:forward page="PageJavaBeanDemo2.jsp"/> </body></html><%@page language="java" contentType="text/html;charset=gb2312"%><!DOCTYPE html><html> <head> <title>設定page的範圍</title> </head> <body> <%--通過useBean動作指令調用JavaBean--%> <jsp:useBean id="user" scope="<span style="color:#e53333;">page</span>" class="com.javaweb.ch07.UserBean"></jsp:useBean> <%--根據所有的參數設定JavaBean中屬性--%> <jsp:getProperty name="user" property="username" /> <jsp:getProperty name="user" property="password" /> </body></html>
設定request範圍的JavaBean
<%@page language="java" contentType="text/html;charset=gb2312"%><!DOCTYPE html><html> <head> <title>設定page的範圍</title> </head> <body> <%--通過useBean動作指令調用JavaBean--%> <jsp:useBean id="user" scope="<b><span style="color:#e53333;">request</span></b>" class="com.javaweb.ch07.UserBean"></jsp:useBean> <%--根據所有的參數設定JavaBean中屬性--%> <jsp:setProperty name="user" property="username" value="request_username"/> <jsp:setProperty name="user" property="password" value="request_password"/> <jsp:forward page="PageJavaBeanDemo2.jsp"/> </body></html><%@page language="java" contentType="text/html;charset=gb2312"%><!DOCTYPE html><html> <head> <title>設定page的範圍</title> </head> <body> <%--通過useBean動作指令調用JavaBean--%> <jsp:useBean id="user" scope="<span style="color:#e53333;">request</span>" class="com.javaweb.ch07.UserBean"></jsp:useBean> <%--根據所有的參數設定JavaBean中屬性--%> <jsp:getProperty name="user" property="username" /> <jsp:getProperty name="user" property="password" /> </body></html>
設定session範圍的JavaBean
<%@page language="java" contentType="text/html;charset=gb2312"%><!DOCTYPE html><html> <head> <title>設定page的範圍</title> </head> <body> <%--通過useBean動作指令調用JavaBean--%> <jsp:useBean id="user" scope="session" class="com.javaweb.ch07.UserBean"></jsp:useBean> <%--根據所有的參數設定JavaBean中屬性--%> <jsp:setProperty name="user" property="username" value="session_username"/> <jsp:setProperty name="user" property="password" value="session_password"/> <a href="PageJavaBeanDemo2.jsp">跳轉到PageJavaBeanDemo2.jsp</a> </body></html><%@page language="java" contentType="text/html;charset=gb2312"%><!DOCTYPE html><html> <head> <title>設定page的範圍</title> </head> <body> <%--通過useBean動作指令調用JavaBean--%> <jsp:useBean id="user" scope="session" class="com.javaweb.ch07.UserBean"></jsp:useBean> <%--根據所有的參數設定JavaBean中屬性--%> <jsp:getProperty name="user" property="username" /> <jsp:getProperty name="user" property="password" /> </body></html>
設定application範圍的JavaBean
<%@page language="java" contentType="text/html;charset=gb2312"%><!DOCTYPE html><html> <head> <title>設定page的範圍</title> </head> <body> <%--通過useBean動作指令調用JavaBean--%> <jsp:useBean id="user" scope="application" class="com.javaweb.ch07.UserBean"></jsp:useBean> <%--根據所有的參數設定JavaBean中屬性--%> <jsp:setProperty name="user" property="username" value="application_username"/> <jsp:setProperty name="user" property="password" value="application_password"/> <a href="PageJavaBeanDemo2.jsp">跳轉到PageJavaBeanDemo2.jsp</a> </body></html><%@page language="java" contentType="text/html;charset=gb2312"%><!DOCTYPE html><html> <head> <title>設定page的範圍</title> </head> <body> <%--通過useBean動作指令調用JavaBean--%> <jsp:useBean id="user" scope="application" class="com.javaweb.ch07.UserBean"></jsp:useBean> <%--根據所有的參數設定JavaBean中屬性--%> <jsp:getProperty name="user" property="username" /> <jsp:getProperty name="user" property="password" /> </body></html>
移除JavaBean的屬性:
JavaBean的移除根據不同的範圍而不同
page範圍,request範圍,session範圍,application範圍對應的使用pageContext,request,session,application
方法都使用removeAttribute()方法
樣本
<%@page language="java" contentType="text/html;charset=gb2312"%><!DOCTYPE html><html> <head> <title>設定page的範圍</title> </head> <body> <%--通過useBean動作指令調用JavaBean--%> <jsp:useBean id="user" scope="application" class="com.javaweb.ch07.UserBean"></jsp:useBean> <% //移除application範圍的屬性 application.removeAttribute("user"); %> <%--根據所有的參數設定JavaBean中屬性--%> <jsp:getProperty name="user" property="username" /> <jsp:getProperty name="user" property="password" /> </body></html>