JSP入门教程(4)
JSP入门教程(4),JSP入门教程(4)
在有些地方,你大概要加一些好的,成熟的程序到你的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