使用Java Bean組件特點:是可以在任何地方重用包括了可以在應用程序中、其它組件、文檔、
web站點和應用程序構(gòu)造器工具的多種方案中再利用。
JavaBean的概念
JavaBean是一種獨立于平臺和結(jié)構(gòu)的應用程序接口,它本身可以忽略內(nèi)部
的結(jié)構(gòu)及細節(jié)問題,只需定義其外部的特征及對外功能就行。
它有三種接口面可以獨立對外進行開發(fā),就是:屬性、方法和事件 JavaBean的屬性
JSP組件的屬性有兩種:單值屬性、索引屬性
單值屬性:
相當于平時編程中定義的一個成員變量,它只能有一個數(shù)據(jù)值,這個數(shù)據(jù)值的類型 可以是Java中的任意數(shù)據(jù)類型,包括類和接口。
如:
int counter;
float tax;
String name;
Date datetime;
注:一種特殊的單值屬性(布爾屬性),它只有兩種允許的值:true、false
索引屬性:
相當于平時說的數(shù)組,當存放一批同類型的數(shù)據(jù)時,需要用到索引屬性。
如:int ID[];
String name[];
Float score[];
JavaBean的方法 方法包括構(gòu)造方法和訪問方法。 構(gòu)造方法:
類似于類中的構(gòu)造器(即對它及它的成員變量進行初始化),它的方法名要和此 JavaBean的類相同。如:
package student;
public class student{
int counter;
ind ID[];
String name[];
float score[];
boolean whiszkid;
public student(){
ID=new int[50];
name=new String[50];
score=new float[50];
counter=0;
}
}
訪問方法:就是對組件中定義的屬性的訪問,包括讀和寫(一般情況與在Java中定義和使用的 方法差不多),注意它的取名規(guī)則:
讀取一個屬性:getXXX()
改寫一個屬性:setXXX()
訪問單值屬性:如對上面的counter單值屬性,它的兩個訪問方法可以為:
讀取屬性值:
public int getCounter{
return counter;
}
改寫屬性值:
public void setCounter(int counter){
this.counter=counter;
}
訪問布爾型的單值屬性:對讀取屬性值采用isXXX()方法
如對上面的布爾型的屬性whizkid的訪問可以為:
public boolean isWhizkid(){
return whizkid;
}
訪問索引屬性:有時要定義好幾個訪問方法,但它們的取名規(guī)則還是一樣的,
如對上面的姓名屬性,它的讀取和改寫方法需這樣定義:
讀取索引屬性中的一個屬性值:
public String getName(int index){
return name[index];
}
讀取索引屬性中的所有屬性值:
public String[] getName(){
return name;
}
改寫索引屬性中的一個屬性值:
public void setName(int index,String str){
name[index]=str;
}
改寫索引屬性中的所有屬性值:
public void setName(String[] str){
name=str;;
}
在JSP中創(chuàng)建用JavaBean編寫的一個bean,實際上就是創(chuàng)建此類的一個對象。
客戶端與服務器端的工作
客戶端做的工作
客戶端的工作可分兩部分:
一、向服務器端發(fā)出請求即向服務器端發(fā)出提交
二、在客戶端進行校驗、以及頁面的修飾等功能
客戶端提交的方法 客戶端的提交方法分兩種:get與post提交
get可傳遞的信息只有2kb左右,而且是明碼傳送信息,所有的信息均可在地址欄中 看見。
post可傳遞大量信息,加密傳送,所有的信息均可在地址欄中是不可見的。
post提交
所有的post提交只能在form中產(chǎn)生,提交方式又分兩種:直接提交(submit提交)、 間接提交(腳本提交)
1)直接提交:點擊提交按鈕,立即發(fā)生提交
<form method=post action=*.asp>
<input type=submit value=”注冊”>
注:submit按鈕有一個默認事件,就是提交
<input type=submit value=”注冊” onclick=”alert(‘hello’); return ture or false;”>
注:在提交前,首先在屏幕上返回一個警告框”hello”,若return的是true, 則頁面發(fā)生提交;若return的是false,頁面不會發(fā)生提交。
</form>
2)間接提交:是指點擊按鈕本身并不能完成提交,而只有通過腳本才能完成的 提交,稱為間接提交。
<input type=button value=”注冊” onclick=”check();submit();”>
注:
在onclick處還可為onmousedown、onmouseup等事件名稱
button只是普通按鈕,本身并不能發(fā)生提交,只能通過onclick指定的腳本程序 才能完成提交
點擊“注冊”后,先執(zhí)行onclick事件觸發(fā)的函數(shù),若返回值為true則發(fā)生提交, 否則提交中止。
get提交
get提交發(fā)生在form表單和url中
1)在form中產(chǎn)生的
<form method=get action=*.asp>
2)在所有的url中產(chǎn)生的
在地址欄中輸入url地址,后跟所要傳遞的參數(shù)http://*.asp?name=www&age=20
在超鏈接上<a href=”*.asp>mode=1&grade=1”>click me </a>
在圖片的src屬性中<img src=”*.asp?name=www”>
在幀里的src屬性中<frame src=” *.asp?name=www” name=框架名>
在asp重定向語句中response.redirect ” *.asp?name=www”
在客戶端對象document中:Document.location=” http:// *.asp?name=www”
在客戶端對象window中:window.open(” http:// *.asp?name=www”)
服務器端做的工作 獲得客戶端信息的方法是通過request對象來完成的。
客戶端提交到服務器端的信息分為三類:
第一類:客戶機信息(包括客戶端的ip地址、端口號、主機名、提交方式等等)
第二類:通過form或url方式提交到服務器端的信息
第三類:cookie信息
獲得第一類信息用:
request.getHeader(“User-agent”)返回客戶端瀏覽器的版本號、類型
getHeader(String name):獲得http協(xié)議定義的傳送文件頭信息,
request. getMethod():獲得客戶端向服務器端傳送數(shù)據(jù)的方法有GET、POST、 PUT等類型
request. getRequestURI():獲得發(fā)出請求字符串的客戶端地址
request. getServletPath():獲得客戶端所請求的腳本文件的文件路徑
request. getServerName():獲得服務器的名字
request.getServerPort():獲得服務器的端口號
request.getRemoteAddr():獲得客戶端的IP地址
request.getRemoteHost():獲得客戶端電腦的名字,若失敗,則返回客戶端 電腦的IP地址
request.getProtocol():
request.getHeaderNames():返回所有request header的名字,結(jié)果集是 一個Enumeration(枚舉)類的實例
request.getHeaders(String name):返回指定名字的request header的 所有值,結(jié)果集是一個Enumeration(枚舉)類的實例
獲得第二類 get 信息用:
request. getQueryString(“變量名呀或控件名”)獲得查詢字符串,該串由 客戶端以GET方法向服務器端傳送
獲得第二類 post 信息用:
request.getParameter(String name):獲得客戶端傳送給服務器端的參數(shù)值, 該參數(shù)由name指定
request.getParameterNames():獲得客戶端傳送給服務器端的所有的參數(shù)名, 結(jié)果集是一個Enumeration(枚舉)類的實例
request.getParameterValues(String name):獲得指定參數(shù)所有值
獲得第三類Cookie信息用:
request.getCookies( “cookie變量名”):返回客戶端的cookie對象,結(jié)果是 一個cookie數(shù)組
出處:藍色理想
責任編輯:藍色
上一頁 JSP-----循序漸進教程 3 下一頁 JSP-----循序漸進教程 5
◎進入論壇網(wǎng)絡編程版塊參加討論
|