?? 0035.htm
字號:
<html>
<head>
<title>新時代軟件教程:操作系統 主頁制作 服務器 設計軟件 網絡技術 編程語言 文字編輯</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<style>
<!--
body, table {font-size: 9pt; font-family: 宋體}
a {text-decoration:none}
a:hover {color: red;text-decoration:underline}
.1 {background-color: rgb(245,245,245)}
-->
</style>
</head>
<p align="center"><script src="../../1.js"></script></a>
<p align="center"><big><strong>JSP入門教程(3)</strong></big></p>
<div align="right">作者:SUN 漢化:JSPER 整理:JSPER</div>
使用腳本<BR>在有些地方,你大概要加一些好的,成熟的程序到你的JSP頁里,JSP的標簽雖然很強大,但是完成某些工作還是比較費力的困難的。這時你可以使用腳本語言段來補充JSP標簽。<BR>使用的JSP引擎是支持腳本語言的,SUN的JSP參考文說明,必須使用Java程序語言來編寫腳本,但是其他第三方的JSP引擎允許使用其他語言來寫腳本程。<BR>如何增加腳本<BR>首先,你必須了解一些增加腳本元素到JSP頁中的一些基本規則<BR>1、
在JSP頁面里用Page指令定義腳本(默認值是Java,一般不需要定義)<BR>2、
聲明語法<%!……%>聲明變量和方法(函數)。<BR>3、
表達式語法<%=……%>定義腳本語言表達式<BR>4、
腳本語法〈%……%>可以操作聲明、表達式和其他類型合法的代碼段在頁腳本語言。<BR>5、
一定要在結尾加%>標簽<BR>聲明、表達式、腳本使用起來有一些相似,但也有一些不同讓我們用一些例子來講述一下相同點和不同點吧。<BR>聲明<%!……%>包含了一個或多個變量和方法,結尾以分號分隔。<BR>例:<%!
Int I=0 ; %><BR><%! Int a, b ; double c ; %><BR><%!
Circle a = new circle(2.0) ;
%><BR>在頁面中使用變量和方法之前必須聲明<BR>聲明的范圍通常是JSP頁,但如果頁面中使用INCLUDE指令包含其他頁面,范圍應變得擴展到被包含的頁面。<BR>表達式<%=……%>可以在頁面中包含任何合法的語言表達式,不用分號。<BR>例:<%=
Math.sqrt(2) %><BR><%= item[I] %><BR><%= a+b+c
%><BR><%= new java.util.date()
%><BR>表達式和腳本的一個關鍵的不同點就是不需要分號。如果你需要在腳本中使用表達式就必須加分號。<BR>腳本<%……%>允許你寫的任何數量的腳本語言<BR>例:<%
String name=null ;<BR>If
(request.getParmeter("name")==null{<BR>%><BR>記住在腳本中必須使用分號結尾。<BR>猜數字游戲<BR>猜數字游戲非常的有趣,而且從這里你還可以學到很多表達式的用法。<BR>代碼<BR>顯示用的主屏幕(numguess.jsp)<BR><!--<BR>Number
Guess Game<BR>Written by Jason Hunter, CTO, K&A
Software<BR>jasonh@kasoftware.com,
http://www.servlets.com<BR>Copyright 1999, K&A
Software<BR>Distributed by Sun Microsystems with
permission<BR>--><BR><%@ page import = "num.NumberGuessBean"
%><BR><BR><jsp:useBean id="numguess"
class="num.NumberGuessBean" scope="session"
/><BR><jsp:setProperty name="numguess" property="*"
/><BR><BR><html><BR><head><title>Number
Guess</title></head><BR><body
bgcolor="white"><BR><font size=4><BR><BR><% if
(numguess.getSuccess() ) { %><BR><BR>Congratulations! You got
it.<BR>And after just <%= numguess.getNumGuesses()
%>tries.<p><BR><BR><% numguess.reset(); %><BR>Care to
<a href="numguess.jsp">try again</a>?<BR><BR><% }
else if (numguess.getNumGuesses() == 0) { %><BR><BR>Welcome to
the Number Guess game.<p><BR>I'm thinking of a number between
1 and 100.<p><BR><BR><form method=get><BR>What's your
guess? <input type=text name=guess><BR><input type=submit
value="Submit"><BR></form><BR><BR><% } else {
%><BR>Good guess, but nope. Try <b><%=
numguess.getHint() %></b>.<BR>You have made <%=
numguess.getNumGuesses() %> guesses.<BR><p>I'm thinking of
a number between 1 and 100.<BR><p><form
method=get><BR><BR>What's your guess? <input type=text
name=guess><BR><input type=submit
value="Submit"><BR></form><BR><% }
%><BR></font><BR></body><BR></html><BR><BR>操作程序(NumberGuessBean.java) <BR>//
Number Guess Game<BR>// Written by Jason Hunter, CTO, K&A
Software<BR>// jasonh@kasoftware.com, http://www.servlets.com<BR>//
Copyright 1999, K&A Software<BR>// Distributed by Sun
Microsystems with permission<BR><BR>package num;<BR>import
java.util.*;<BR>public class NumberGuessBean {<BR>int
answer;<BR>boolean success;<BR>String hint;<BR>int
numGuesses;<BR>public NumberGuessBean() {<BR>reset();<BR>}<BR>public
void setGuess(String guess) {<BR>numGuesses++;<BR>int g;<BR>try
{<BR>g = Integer.parseInt(guess);<BR>}<BR>catch
(NumberFormatException e) {<BR>g = -1;<BR>}<BR>if (g == answer)
{<BR>success = true;<BR>}<BR>else if (g == -1) {<BR>hint = "a number
next time";<BR>}<BR>else if (g < answer) {<BR>hint =
"higher";<BR>}<BR>else if (g > answer) {<BR>hint =
"lower";<BR>}<BR>}<BR>public boolean getSuccess() {<BR>return
success;<BR>}<BR>public String getHint() {<BR>return "" +
hint;<BR>}<BR>public int getNumGuesses() {<BR>return
numGuesses;<BR>}<BR>public void reset() {<BR>answer = Math.abs(new
Random().nextInt() % 100)<BR>+ 1;<BR>success = false;<BR>numGuesses
=
0;<BR>}<BR>}<BR><BR>在JSP文件中使用腳本<BR>numguess.jsp是一個非常有趣兒的用腳本寫的例子,你看他的結構其實是一個很大的IF……ELSE結構,但是很一個從句又都是用HTML寫的,看起來象一個大的程序段。<BR>不過你也不一定非得象numguess.jsp那樣用HTML和JSP標簽一起來寫腳本。在<%和%>標簽之間,你可以寫任意多行的腳本代碼,在通常情況下,盡量少用腳本來處理程序,而盡可能的使用servlets或者Beans,這樣你的程序看起來會非常的清析,明了。話又說回來,怎么寫JSP還得根據你的習慣和愛好,我不強迫非得使用任何一種方法,SUN的JSP詳細說明書不規定腳本的長度。<BR><BR>用標簽組合腳本<BR>使用HTML和JSP標簽來寫腳本的時候,注意前后的標簽不要忘記,一定要“封”好。說的不明白,舉個例子吧:<BR><%
} else { %> <!-- 用JSP標簽的時候先關上 --><BR><BR>... 這時候用JSP標簽吧
...<BR><BR><% } %> <!-- 這樣你應該看懂了吧?!
--><BR>開始的時候這種做法看起來可能有一點奇怪,但它以確保你JSP文件編譯的時候腳本的成功轉換。<BR><BR>那么,腳本什么時候執行呢?<BR>一個JSP原文件的處理分為兩個階段:一個是HTTP的編譯時候,一個是請求的處理時間。<BR><BR>HTTP編譯的時候,當用戶第一次讀JSP頁面的時候,JSP的原代碼被編譯成CLASS,通常是servlet。HTML標簽和JSP標簽在這個時候同時被處理了,這之前用戶還沒有任何的請求被提交。<BR><BR>請求處理時間是當用戶在JSP頁面中提交了一個請求,這時請求由客戶端被request對象傳到了服務器端,JSP引擎根據用戶提交的值執行編譯過的JSP文件或者servlet。<BR><BR>當你在JSP頁中使用腳本的時候,你必須知道他們什么時候被執行。聲明在HTTP編譯階段就已經被處理了,其他腳本,表達式在編譯JSP文件的時候也可用。表達式在HTTP編譯的時候也被執行了。表達式的值被轉換成了字符串被插入到JSP文件中一塊兒被編譯。其實在請求階段,腳本也是可以利用的。<BR><BR>如何運行例子<BR>我現在給出的都是在UNIX風格下的路徑,如果你用Windows,那么改成Windows風格路徑<BR>1、猜數字游戲在裝TOMCAT或者JSWDK的時候就已經裝好了。<BR>2、.jsp和.html文件在../jswdk-1.0.1/examples/num中<BR>3、.java和.class文件在../jswdk-1.0.1/examples/WEB-INF/jsp/bean/num中<BR>4、開瀏覽器,http://機器名/examples/jsp/num/numguess.jsp
</table>
<p align="center"><script src="../../2.js"></script></a>
</body>
</html>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -