Java Bean登入頁面實現
阿新 • • 發佈:2019-01-26
在JSP網頁開發的初級階段,並沒有所謂的框架和邏輯分層的概念,JSP網頁程式碼是與業務邏輯程式碼結合在一起的。這些零亂的程式碼書寫方式,給程式的除錯及維護帶來了很大的困難,直至Java Bean的出現,這一問題才得到了些許改善。
1、JavaBean簡介
JavaBean是用於封裝某種業務邏輯或物件的Java類,即它是一個可重用的Java軟體元件模型。 JavaBean的功能是沒有任何限制的,對於任何可以使用java程式碼實現的部分,都可以使用JavaBean進行封裝,如建立一個實體物件,資料庫操作、字串處理等。 在JSP頁面中,可以通過JSP提供的動作標籤來操作JavaBean物件,包括:`<jsp:useBean>`、`<jsp:setProperty>`、`<jsp:getProperty>`3個標籤,在使用過程中無需引入任何第三方的類庫。
2、<jsp:useBean>
<jsp:useBean>
標籤用於在JSP頁面中建立一個JavaBean例項,並通過屬性的設定將詞例項存放到指定的範圍內。
語法格式如下:
<jsp:useBean id = "變數名" scope = "page|request|session|application" { class = "完整類名"| type = "資料型別" | class = "完整類名" type = "資料型別" | beanName = "完整類名" type = "資料型別"} />
其中 id 屬性:用於定義一個變數名(可以理解為JavaBean的一個代號),程式中通過此變數名對JavaBean進行引用。
scope 屬性:設定Javabean的作用域,有page request session 與 application四種。
type 屬性:指定id屬性所定義的變數型別。
beanName屬性:指定JavaBean的完整類名,此屬性不能與class屬性同時存在。
下面通過一個簡單的例項進行演示:
package com.zch.javabean;
/**
*
* @author zch
*
* 建立一個Bean 的類,它是一個JavaBean 物件,類中有一個name屬性及相應的getter和setter方法
*
*/
public class Bean {
private String name ;
public String getName() {
return name + "的JavaBean程式";
}
public void setName(String name) {
this .name = name;
}
}
(2)建立一個JavaBean之後,在index.jsp頁面中通過標籤例項化此物件,並呼叫此物件的方法。關鍵程式碼如下:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<jsp:useBean id="bean" class="com.zch.javabean.Bean"></jsp:useBean>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>JavaBean主頁</title>
</head>
<body>
<%
bean.setName("ZCH");
%>
<h1 align="center"><%=bean.getName() %></h1>
</body>
</html>
頁面輸出結果如圖所示:
3、<jsp:setProperty>
<jsp:setProperty>
用於對JavaBean中的屬性進行賦值,但JavaBean的屬性要提供相應的setter方法。
其語法格式如下:
<jsp:setProperty name="例項名" { property = "" | property = "屬性名" | property = "屬性名" value = "值" }/>
下面同樣舉一例項:
package com.zch.javabean;
/**
*
* @author Administrator
*
*建立一個Student類,封裝了一個學生實體物件。
*/
public class Student {
private int id ;
private int age;
private String classes ;
//省略get與set方法
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getClasses() {
return classes;
}
public void setClasses(String classes) {
this.classes = classes;
}
}
(2)建立一個form表單,並將它放在index.jsp頁面中
<html>
<head>
<title>學生資訊</title>
<style type="text/css">
*{font-size: 12px;}
</style>
</head>
<body>
<div align="center">
<form action="Student.jsp" method="post">
<p>學 號:<input type="text" name="id"></p>
<p>年 齡:<input type="text" name="age"></p>
<p>
<input type="submit" value="提 交">
<input type="reset" value="重 置">
</p>
</form>
</div>
</body>
</html>
(3)建立student.jsp頁面,用於例項化Student物件,並輸出相應的屬性值
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>學生資訊</title>
<style type="text/css">
*{font-size: 15px;}
</style>
</head>
<body>
<jsp:useBean id="student" class="com.zch.javabean.Student"></jsp:useBean>
<jsp:setProperty property="*" name="student"/>
<div align="center">
<p>學號:<%=student.getId()%></p>
<p>年齡:<%=student.getAge()%></p>
</div>
</body>
</html>