【 tulaoshi.com - Java 】
                             
                               使用脚本 
在有些地方,你大概要加一些好的,成熟的程序到你的JSP页里,JSP的标签虽然很强大,但是完成某些工作还是比较费力的困难的。这时你可以使用脚本语言段来补充JSP标签。 
使用的JSP引擎是支持脚本语言的,SUN的JSP参考文说明,必须使用Java程序语言来编写脚本,但是其他第三方的JSP引擎允许使用其他语言来写脚本程。 
如何增加脚本 
首先,你必须了解一些增加脚本元素到JSP页中的一些基本规则 
1、 在JSP页面里用Page指令定义脚本(默认值是Java,一般不需要定义) 
2、 声明语法<%!……%声明变量和方法(函数)。 
3、 表达式语法<%=……%定义脚本语言表达式 
4、 脚本语法〈%……%可以操作声明、表达式和其他类型合法的代码段在页脚本语言。 
5、 一定要在结尾加%标签 
声明、表达式、脚本使用起来有一些相似,但也有一些不同让我们用一些例子来讲述一下相同点和不同点吧。 
声明<%!……%包含了一个或多个变量和方法,结尾以分号分隔。 
例:<%! Int I=0 ; % 
<%! Int a, b ; double c ; % 
<%! Circle a = new circle(2.0) ; % 
在页面中使用变量和方法之前必须声明 
声明的范围通常是JSP页,但如果页面中使用INCLUDE指令包含其他页面,范围应变得扩展到被包含的页面。 
表达式<%=……%可以在页面中包含任何合法的语言表达式,不用分号。 
例:<%= Math.sqrt(2) % 
<%= item[I] % 
<%= a+b+c % 
<%= new java.util.date() % 
表达式和脚本的一个关键的不同点就是不需要分号。如果你需要在脚本中使用表达式就必须加分号。 
脚本<%……%允许你写的任何数量的脚本语言 
例:<% String name=null ; 
If (request.getParmeter("name")==null{ 
% 
记住在脚本中必须使用分号结尾。 
猜数字游戏 
猜数字游戏非常的有趣,而且从这里你还可以学到很多表达式的用法。 
代码 
显示用的主屏幕(numguess.jsp) 
<!-- 
Number Guess Game 
Written by Jason Hunter, CTO, K&A Software 
jasonh@kasoftware.com, 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<titleNumber 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. 
<pI'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 
// jasonh@kasoftware.com, 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