<%@ page import="java.util.*" %> <HTML> <BODY> <%! Date theDate = new Date(); Date getDate() { System.out.println( "In getDate() method" ); return theDate; } %> Hello! The time is now <%= getDate() %> </BODY> </HTML>
这个例子对于变量与方法申明来说,还是有点勉强. 这里,我们申明了一个时间变量theDate,以及一个方法getDate.这两个东西在整个脚本与表达式中都是可用的. 但是这个例子不是一直有用的,不管你如何刷新页面, 时间值将会是不变的.这是因为,只有当你第一次加载的时候,这些变量就申明并且执行了(就像你在创建一个类并且初始化一样). 练习: 修改上面的例子并且添加另一个方法,computeDate用来再次初始化tehDate,接着添加一些代码去每一次都调用computeDate. 注意:现在你知道如何去做了—像这里使用变量的方式并不是一个好方法.在一个实例中,JSP通常都是以多线程式的方式去运行的.不同的线程可能会阻止变量的通信,因为对于一个变量来说,它可以是多个线程的公共变量.在JSP中,如果你确实不得不去使用变量申明,你应该使用同步的方式,但是这会影响到表现,一般来说,在两个JSP页面之间你需要用到的任何一个数据都应该放入到session对象或者是request对象(这些会在以后做介绍).你在脚本中申明的变量是比较好的,例如: <% int i = 45; %>.因为这样申明的变量是本地私有而不会被共享的.