在有些地方,你大概要加一些好的,成熟的程序到你的JSP頁里,JSP的標(biāo)簽雖然很強(qiáng)大,但是完成某些工作還是比較費(fèi)力的困難的。這時你可以使用腳本語言段來補(bǔ)充JSP標(biāo)簽。
使用的JSP引擎是支持腳本語言的,SUN的JSP參考 " /> 妺妺窝人体色777777野大粗,亚洲 小说 欧美 激情 另类,五花大绑esebdsm国产

天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

JSP入門教程(4)

使用腳本
在有些地方,你大概要加一些好的,成熟的程序到你的JSP頁里,JSP的標(biāo)簽雖然很強(qiáng)大,但是完成某些工作還是比較費(fèi)力的困難的。這時你可以使用腳本語言段來補(bǔ)充JSP標(biāo)簽。
使用的JSP引擎是支持腳本語言的,SUN的JSP參考文說明,必須使用Java程序語言來編寫腳本,但是其他第三方的JSP引擎允許使用其他語言來寫腳本程。
如何增加腳本
首先,你必須了解一些增加腳本元素到JSP頁中的一些基本規(guī)則
1、 在JSP頁面里用Page指令定義腳本(默認(rèn)值是Java,一般不需要定義)
2、 聲明語法<%!……%>聲明變量和方法(函數(shù))。
3、 表達(dá)式語法<%=……%>定義腳本語言表達(dá)式
4、 腳本語法〈%……%>可以操作聲明、表達(dá)式和其他類型合法的代碼段在頁腳本語言。
5、 一定要在結(jié)尾加%>標(biāo)簽
聲明、表達(dá)式、腳本使用起來有一些相似,但也有一些不同讓我們用一些例子來講述一下相同點(diǎn)和不同點(diǎn)吧。
聲明<%!……%>包含了一個或多個變量和方法,結(jié)尾以分號分隔。
例:<%! Int I=0 ; %>
<%! Int a, b ; double c ; %>
<%! Circle a = new circle(2.0) ; %>
在頁面中使用變量和方法之前必須聲明
聲明的范圍通常是JSP頁,但如果頁面中使用INCLUDE指令包含其他頁面,范圍應(yīng)變得擴(kuò)展到被包含的頁面。
表達(dá)式<%=……%>可以在頁面中包含任何合法的語言表達(dá)式,不用分號。
例:<%= Math.sqrt(2) %>
<%= item[I] %>
<%= a+b+c %>
<%= new Java.util.date() %>
表達(dá)式和腳本的一個關(guān)鍵的不同點(diǎn)就是不需要分號。如果你需要在腳本中使用表達(dá)式就必須加分號。
腳本<%……%>允許你寫的任何數(shù)量的腳本語言
例:<% String name=null ;
If (request.getParmeter("name")==null{
%>
記住在腳本中必須使用分號結(jié)尾。
猜數(shù)字游戲
猜數(shù)字游戲非常的有趣,而且從這里你還可以學(xué)到很多表達(dá)式的用法。
代碼
顯示用的主屏幕(numguess.jsp)
<!--
Number Guess Game
Written by Jason Hunter, CTO, K&A Software
[email protected], http://www.servlets.com
Copyright 1999, K&A Software
Distributed by Sun Microsystems with permission
-->
<%@ page import = "num.NumberGuessBean" %>

<jsp:useBean id="numguess" class="num.NumberGuessBean" scope="session" />
<jsp:setProperty name="numguess" property="*" />

<html>
<head><title>Number Guess</title></head>
<body bgcolor="white">
<font size=4>

<% if (numguess.getSuccess() ) { %>

Congratulations! You got it.
And after just <%= numguess.getNumGuesses() %>tries.<p>

<% numguess.reset(); %>
Care to <a href="numguess.jsp">try again</a>?

<% } else if (numguess.getNumGuesses() == 0) { %>

Welcome to the Number Guess game.<p>
I'm thinking of a number between 1 and 100.<p>

<form method=get>
What's your guess? <input type=text name=guess>
<input type=submit value="Submit">
</form>

<% } else { %>
Good guess, but nope. Try <b><%= numguess.getHint() %></b>.
You have made <%= numguess.getNumGuesses() %> guesses.
<p>I'm thinking of a number between 1 and 100.
<p><form method=get>

What's your guess? <input type=text name=guess>
<input type=submit value="Submit">
</form>
<% } %>
</font>
</body>
</html>

操作程序(NumberGuessBean.Java)
// Number Guess Game
// Written by Jason Hunter, CTO, K&A Software
// [email protected], http://www.servlets.com
// Copyright 1999, K&A Software
// Distributed by Sun Microsystems with permission

package num;
import Java.util.*;
public class NumberGuessBean {
int answer;
boolean success;
String hint;
int numGuesses;
public NumberGuessBean() {
reset();
}
public void setGuess(String guess) {
numGuesses++;
int g;
try {
g = Integer.parseInt(guess);
}
catch (NumberFormatException e) {
g = -1;
}
if (g == answer) {
success = true;
}
else if (g == -1) {
hint = "a number next time";
}
else if (g < answer) {
hint = "higher";
}
else if (g > answer) {
hint = "lower";
}
}
public boolean getSuccess() {
return success;
}
public String getHint() {
return "" + hint;
}
public int getNumGuesses() {
return numGuesses;
}
public void reset() {
answer = Math.abs(new Random().nextInt() % 100)
+ 1;
success = false;
numGuesses = 0;
}
}

在JSP文件中使用腳本
numguess.jsp是一個非常有趣兒的用腳本寫的例子,你看他的結(jié)構(gòu)其實(shí)是一個很大的IF……ELSE結(jié)構(gòu),但是很一個從句又都是用HTML寫的,看起來象一個大的程序段。
不過你也不一定非得象numguess.jsp那樣用HTML和JSP標(biāo)簽一起來寫腳本。在<%和%>標(biāo)簽之間,你可以寫任意多行的腳本代碼,在通常情況下,盡量少用腳本來處理程序,而盡可能的使用servlets或者Beans,這樣你的程序看起來會非常的清析,明了。話又說回來,怎么寫JSP還得根據(jù)你的習(xí)慣和愛好,我不強(qiáng)迫非得使用任何一種方法,SUN的JSP詳細(xì)說明書不規(guī)定腳本的長度。

用標(biāo)簽組合腳本
使用HTML和JSP標(biāo)簽來寫腳本的時候,注意前后的標(biāo)簽不要忘記,一定要“封”好。說的不明白,舉個例子吧:
<% } else { %> <!-- 用JSP標(biāo)簽的時候先關(guān)上 -->

... 這時候用JSP標(biāo)簽吧 ...

<% } %> <!-- 這樣你應(yīng)該看懂了吧?! -->
開始的時候這種做法看起來可能有一點(diǎn)奇怪,但它以確保你JSP文件編譯的時候腳本的成功轉(zhuǎn)換。

那么,腳本什么時候執(zhí)行呢?
一個JSP原文件的處理分為兩個階段:一個是HTTP的編譯時候,一個是請求的處理時間。

HTTP編譯的時候,當(dāng)用戶第一次讀JSP頁面的時候,JSP的原代碼被編譯成CLASS,通常是servlet。HTML標(biāo)簽和JSP標(biāo)簽在這個時候同時被處理了,這之前用戶還沒有任何的請求被提交。

請求處理時間是當(dāng)用戶在JSP頁面中提交了一個請求,這時請求由客戶端被request對象傳到了服務(wù)器端,JSP引擎根據(jù)用戶提交的值執(zhí)行編譯過的JSP文件或者servlet。

當(dāng)你在JSP頁中使用腳本的時候,你必須知道他們什么時候被執(zhí)行。聲明在HTTP編譯階段就已經(jīng)被處理了,其他腳本,表達(dá)式在編譯JSP文件的時候也可用。表達(dá)式在HTTP編譯的時候也被執(zhí)行了。表達(dá)式的值被轉(zhuǎn)換成了字符串被插入到JSP文件中一塊兒被編譯。其實(shí)在請求階段,腳本也是可以利用的。

如何運(yùn)行例子
我現(xiàn)在給出的都是在UNIX風(fēng)格下的路徑,如果你用Windows,那么改成Windows風(fēng)格路徑
1、猜數(shù)字游戲在裝TOMCAT或者JSWDK的時候就已經(jīng)裝好了。
2、.jsp和.html文件在../jswdk-1.0.1/examples/num中
3、.Java和.class文件在../jswdk-1.0.1/examples/WEB-INF/jsp/bean/num中
4、開瀏覽器,http://機(jī)器名/examples/jsp/num/numguess.jsp

jsp技術(shù)JSP入門教程(4),轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 久久99精品涩AV毛片观看 | 1234成人网 | 久久国产精品萌白酱免费 | 美艳人妻在厨房翘着屁股 | 999久久久无码国产精蜜柚 | 成 人 网 站免费观看 | 在线视频免费国产成人 | 人淫阁| 伊人大香人妻在线播放 | 精品国产品国语在线不卡丶 | 国产人妻麻豆蜜桃色69 | 最近更新2019中文字幕免费 | 色尼玛亚洲 | 婚后被调教当众高潮H喷水 回复术士勇者免费观看全集 | 亚洲欧洲日韩国产一区二区三区 | 好看AV中文字幕在线观看 | 国产乱人视频在线观看 | 美国69xxxx59| 亚洲国产高清福利视频 | 无码137片内射在线影院 | 久久 这里只精品 免费 | 蜜芽一区二区国产精品 | 久久国产乱子伦精品免费M 久久国产露脸老熟女熟69 | 日韩吃奶摸下AA片免费观看 | 老师真棒无遮瑕版漫画免费 | 亚洲乱码爆乳精品成人毛片 | 亚洲日韩乱码人人爽人人澡人 | 24小时日本免费看 | 亚洲精品国产拍在线观看 | 日本亚洲精品无码区国产电影 | 亚洲午夜无码久久久久蜜臀av | 公和我做好爽添厨房中文字幕 | 精品国产自在现线拍400部 | HEYZO无码中文字幕人妻 | 日本邪恶全彩工囗囗番海贼王 | 国产高潮久久精品AV无码 | 欧美乱妇狂野欧美在线视频 | 动漫美女的阴 | 中国欧美日韩一区二区三区 | 69式国产真人免费视频 | 国产精品久久久久久久A片冻果 |