<% int evilVariable = "666"; %> ... function testFunction() { //在函数内部,变量evilVariable是不可见的 } 为什么呢?这是因为变量evilVariable最终成为结果servlet中service()方法的一个本地变量,因此它不能被结果servlet的其它方法存取。
对于在<%! %>中声明的变量将作为全局变量。如:
<%! int evilVariable = "666"; %> ... function testFunction() { int x = evilVariable; //能够使用变量evilVariable } 这是因为通过这种方式定义的evilVariable变量变为了结果servlet的一个私有成员变量,因此它可以被servlet中的所有的方法存取。