一、JavaBean
1、Javabeans就是符合某種特定規范Java類。使用Javabeans的好處是【解決代碼的重復編寫】,減少代碼冗余,功能區分明確,提高代碼的維護性。
2、設計原則四點:公有類,屬性私有,包含無參的公有構造方法,getter和setter方法封裝屬性。
二、JSP動作元素
1、JSP動作元素(action element)
JSP動作元素為請求處理階段提供信息。動作元素遵循XML語法,有一個包含元素名的開始標簽,可以有屬性,可選的內容、與開始標簽匹配的結束標簽。
2、JSP動作元素種類
第一類是與存取JavaBean有關,包括:
<jsp:useBean> <jsp:setProperty> <jsp:getProperty>
三、在頁面中使用JavaBean
1.像使用普通Java類一樣,創建javabean實例
<%@ page import="com.po.Users" %>
<body>
<%
Users user = new Users();
user.setUsername("admin"); //設置用戶名
user.setPassword("123456");//設置密碼
%>
<h1>使用普通方式創建javabean的實例</h1>
<hr>
用戶名:<%=user.getUsername() %><br>
密碼:<%=user.getPassword() %><br>
</body>
2.在JSP頁面中通常使用jsp動作標簽使用javabean
使用JSP動作標簽:useBeans動作、setProperty動作、getProperty動作。
useBeans動作:
<jsp:useBean id="標識符" class="Java類名" scope="作用范圍"/>
其中class是完整的類名 scope默認是page。id是唯一"標識符",與setProperty中的name相對應。useBean的作用是實例化javabean類。
setProperty:
作用:已經實例化的Javabean對象的屬性賦值
使用形式:
<jsp:setProperty name="Javabean實例名" property="*"/>
與表單相關聯,"*"表示對所有的表單屬性名與javabean類屬性名進行匹配,若相同則進行賦值。
<jsp:setPropery name="Javabean實例名" property="javabean屬性名" />
與表單相關聯,對指定的表單屬性名與javabean類屬性名進行匹配
<jsp:setProperty name = "Javabean實例名" property="Javabean屬性名" value="BeanValue" />
與表單無關,手動設置屬性,屬性值就是value,與填寫無關。
<jsp:setProperty name="Javabean實例名" property="propertyName" param="request對象中的參數名" />
與request參數相關聯,通過url傳參
上述setProperty四種方式實例:
<jsp:useBean id="myUsers" class="com.po.Users" scope="page"/>
<h1>setProperty動作元素</h1>
<hr>
<!--根據表單自動匹配所有的屬性 -->
<%--
<jsp:setProperty name="myUsers" property="*"/>
--%>
<!--根據表單匹配所有部分的屬性 -->
<%--
<jsp:setProperty name="myUsers" property="username"/>
--%>
<!--根表單無關,通過手工賦值給屬性 -->
<%--
<jsp:setProperty name="myUsers" property="username" value="lisi"/>
<jsp:setProperty name="myUsers" property="password" value="888888"/>
--%>
<!--通過URL傳參數給屬性賦值 -->
<jsp:setProperty name="myUsers" property="username"/>
<jsp:setProperty name="myUsers" property="password" param="mypass"/>
getProperty:
作用:獲取指定JavaBean對象的屬性值
<jsp:getProperty name="JavaBean實例名" property=“屬性名”/>
JavaBean的四個作用于范圍:
使用userBeans的scope屬性可以用來指定JavaBean的作用范圍
page//僅在當前頁面有效
request:可以通過HttpRequest.getAttribute()方法獲得JavaBean對象
session//可以通過HttpSession.getAttribute()方法獲得JavaBean對象
application//可以通過application.getAttribute()方法獲得JavaBean對象