2014-02-20 39 views
2

至于话题,我想知道什么是excatly scriptlet中的局部变量的变量范围。例如:jsp scriptlet局部变量的确切范围是什么?

<% String strong = "Indeed it is strong"%> 

我注意到,我可以从一个JSP表达式<%= expression %>调用它。所以我想我们可以谈论“页面范围”。 是否有任何说明jsp变量范围的文档? (我还没有找到它) 在此先感谢。

回答

3

JSP是一个servlet。

一个像这样声明的变量结束于它的服务方法中,例如服务方法的本地变量。

用“bang”定义的变量,例如<%! String s = "hi"; %>位于servlet的类级别。

0

当我们使用<% %>作为变量时,我们定义了一个局部变量,它只在当前网页上有效。如果有人刷新网页,这个变量将被重新定义,因此它的值将返回到原始值。

当我们使用<%! %>作为变量时,我们定义了一个全局变量,它通过页面是通用的。它只是定义一次。例如,我们定义一个全局,每次刷新网页时都会自动增加,所以如果我们刷新网页,变量会增加,而不是返回到原始值。

+0

这在很大程度上是正确的,但在某些情况下,servlet实例*可以在容器控制下重新实例化。 –