快捷搜索:  as  test  1111  test aNd 8=8  test++aNd+8=8  as++aNd+8=8  as aNd 8=8

Ag亚游国际网站:JSP入门教程(4)



应用脚本

在有些地方,你大年夜概要加一些好的,成熟的法度榜样到你的JSP页里,JSP的标签虽然很强大年夜,然则完成某些事情照样对照辛勤的艰苦的。这时你可以应用脚本说话段来弥补JSP标签。

应用的JSP引擎是支持脚本说话的,SUN的JSP参考文阐明,必须应用Java法度榜样说话来编写脚本,然则其他第三方的JSP引擎容许应用其他说话来写脚本程。

若何增添脚本

首先,你必须懂得一些增添脚本元素到JSP页中的一些基础规则

1、 在JSP页面里用Page指令定义脚本(默认值是Java,一样平常不必要定义)

2、 声明语法声明变量和措施(函数)。

3、 表达式语法定义脚本说话表达式

4、 脚本语法〈%……%>可以操作声明、表达式和其他类型合法的代码段在页脚本说话。

5、 必然要在结尾加%>标签

声明、表达式、脚本应用起来有一些相似,但也有一些不合让我们用一些例子来讲述一下相同点和不合点吧。

声明包孕了一个或多个变量和措施,结尾以分号分隔。

例:

在页面中应用变量和措施之前必须声明

声明的范围平日是JSP页,但假如页面中应用INCLUDE指令包孕其他页面,范围应变得扩展到被包孕的页面。

表达式可以在页面中包孕任何合法的说话表达式,不用分号。

例:

表达式和脚本的一个关键的不合点便是不必要分号。假如你必要在脚本中应用表达式就必须加分号。

脚本容许你写的任何数量的脚本说话

例:

记着在脚本中必须应用分号结尾。

猜数字游戏

猜数字游戏异常的有趣,而且从这里你还可以学到很多表达式的用法。

代码

显示用的主屏幕(numguess.jsp)

http://www.servlets.com

Copyright 1999, K&A Software

Distributed by Sun Microsystems with permission

-->

Congratulations! You got it.

AAg亚游国际网站nd after just tries.

Care to try again?

Welcome to the Number Guess game.

I´m thinking of a number between 1 and 100.

What´s your guess?

Good guess, but nope. Try .

You have madeguesses.

I´m thinking of a number between 1 and 100.

What´s your guess?

操作法度榜样(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 claAg亚游国际网站ss 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 (ganswer) {

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是一个异常有趣儿的用脚本写的例子,你看他的布局着实是一个很大年夜的IF……ELSE布局,然则很一个从句又都是用HTML写的,看起来象一个大年夜的法度榜样段。

不过你也不必然非得象numguess.jsp那样用HTMAg亚游国际网站L和JSP标签一路来写脚本。在标签之间,你可以写随意率性多行的脚本代码,在平日环境下,只管即便少用脚原先处置惩罚法度榜样,而尽可能的应用servlets或者Beans,这样你的法度榜样看起来会异常的清析,清楚明了。话又说回来,怎么写JSP还得根据你的习气和喜欢,我不逼迫非得应用任何一种措施,SUN的JSP具体阐明书不规定脚本的长度。

用标签组合脚本

应用HTML和JSP标签来写脚本的时刻,留意前后的标签不要忘怀,必然要“封”好。说的不明白,举个例子吧:

... 这时刻用JSP标签吧 ...

开始的时刻这种做法看起来可能有一点稀罕,但它以确保你JSP文件编译的时刻脚本的成功转换。

那么,脚本什么时刻履行呢Ag亚游国际网站?

一个JSP原文件的处置惩罚分为两个阶段:一个是HTTP的编译时刻,一个是哀求的处置惩罚光Ag亚游国际网站阴。

HTTP编译的时刻,当用户第一次读JSP页面的时刻,JSP的原代码被编译成CLASS,平日是servlet。HTML标签和JSP标签在这个时刻同时被处置惩罚了,这之前用户还没有任何的哀求被提交。

哀求处置惩罚光阴是当用户在JSP页面中提交了一个哀求,这时哀求由客户端被request工具传到了办事器端,JSP引擎根据用户提交的值履行编译过的JSP文件或者servlet。

当你在JSP页中应用脚本的时刻,你必须知道他们什么时刻被履行。声明在HTTP编译阶段就已经被处置惩罚了,其他脚本,表达式在编译JSP文件的时刻也可用。表达式在HTTP编译的时刻也被履行了。表达式的值被转换成了字符串被插入到JSP文件中一块儿被编译。其其实哀求阶段,脚本也是可以使用的。

若何运行例子

我现在给出的都是在UNIX风格下的路径,假如你用Windows,那么改成Windows风格路径

1、猜数字游戏在装TOMCAT或者JSWDK的时刻就已经装好了。

2、.jsp和.html文件在../jswdk-1.0.1/examples/num中

3、.java和.class文件在../jswdk-1.0.1/examples/WEB-INF/jsp/bean/num中

4、开浏览器,http://机械名/examples/jsp/num/numguess.jsp

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

您可能还会对下面的文章感兴趣: