%!
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、重慶小程序開發(fā)公司、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了南陽(yáng)免費(fèi)建站歡迎大家使用!
%是在service方法的外面定義變量和寫入語(yǔ)句的,也就是在servlet中定義變量,而我們知道servlet在被container加載后只生成一個(gè)對(duì)象而已,然后所有的請(qǐng)求都在service方法里面被處理。所以如果你在servlet中定義了變量,那么所有的請(qǐng)求可以共用這一個(gè)變量了。
最簡(jiǎn)單的應(yīng)用就是,你要計(jì)算有多少人訪問(wèn)了這一個(gè)JSP頁(yè)面,那么就可以把變量i定義在servlet中,然后在JSP文件里面加一句i++;,這樣就可以統(tǒng)計(jì)有多少人訪問(wèn)了你這個(gè)頁(yè)面了。
至于%
%這個(gè)嘛,就是在service方法里啦。
JSP中,嵌入的JAVA代碼,可以直接引用JAVA的類
%
out.println(new java.util.Date());
%
~
這樣屬于業(yè)務(wù)邏輯層啊,代碼中除了與底層數(shù)據(jù)庫(kù)連接的代碼,還有顯示的代碼之外,只要是執(zhí)行邏輯判斷和信息處理的都是業(yè)務(wù)邏輯層,將其分離寫道javabean里面可以增加可維護(hù)性。
盡量避免在JSP中出現(xiàn)大量的JAVA代碼,JSP只是負(fù)責(zé)顯示
在JSP中出現(xiàn)EL表達(dá)式可以使代碼更簡(jiǎn)潔
不過(guò)樓主如果是新學(xué)JSP,倒也沒(méi)什么關(guān)系,慢慢就會(huì)知道了
jsp中寫java代碼成為scriptlet,寫在%%之間就可以了。
Scriptlet是包含在%和%之間的Java代碼,在Web容器處理JSP頁(yè)面時(shí)執(zhí)行,通常會(huì)產(chǎn)生輸出,并將輸出發(fā)送到客戶的輸出流里。Scriptlet除了不能定義類和方法、不能用import引入類外,可以包含任何有效的Java代碼。(Java類在Jsp外部定義,可用page指令的import屬性引入,也可以Java Bean的形式使用。Java中的方法必須在類內(nèi)定義,但Jsp允許使用聲明定義方法。窗體(GUI)設(shè)計(jì)代碼在Jsp中無(wú)效)。
Scriptlet例程:
%@ page contentType="text/html; charset=gb2312" %
html
head
titleJSP基本語(yǔ)法/title
/head
body
h1Scriptlet示例頁(yè)面/h1
table border="1"
caption乘法口訣表/caption
%-- 在網(wǎng)頁(yè)中嵌入Java代碼的主要方法 --%
%
for(int i=1; i=9; i++) {
int j=1;
//out是JSP的一個(gè)內(nèi)部對(duì)象,print方法用于向客戶端輸出數(shù)據(jù)
out.println("tr");
for(; j=i; j++) {
out.print("td" + j + "*" + i + "=" + j*i + "/td");
}
for(;j=9;j++) {
out.print("td /td");
}
out.println("/tr");
}
%
/table
/body
/html
首先,在服務(wù)端定義了一個(gè)類和靜態(tài)方法:
public class Test {
public static String sayHello(String name){
return "hello, " + name;
}
}
注意:必須是公開的靜態(tài)方法。
ajax分為同步、異步調(diào)用,如果沒(méi)有傳遞回調(diào)函數(shù),則是同步調(diào)用;
如果傳遞回調(diào)函數(shù),則是異步調(diào)用。
同步調(diào)用
script type="text/javascript"
......
try{
var obj = Test.sayHello('world!');
......
}catch(e){
//e.error 錯(cuò)誤碼
//e.message 錯(cuò)誤描述
}
......
/script
不傳遞回調(diào)函數(shù),以try…catch來(lái)處理錯(cuò)誤。
在同步調(diào)用模式下,如果有網(wǎng)絡(luò)錯(cuò)誤、業(yè)務(wù)邏輯錯(cuò)誤等,會(huì)拋出一個(gè)異常。
異步調(diào)用
script type="text/javascript"
......
Test.sayHello('world!',
function(obj){ //success callback function
......
},
function(error, message){ //fail callback function
}
);
......
/script
傳遞回調(diào)函數(shù)作為參數(shù)。如果只有一個(gè)回調(diào)函數(shù), 則默認(rèn)是成功的回調(diào)函數(shù)。