<%! %> 里声明的变量和方法都是作为
类的属性和方法
存在的
全局变量
而 <% %> 里声明的变量则是作为局部变量, <% %> 里不能声明方法
JSP运行时,实际上是转换成一个servlet类,<%! %> 里声明的变量就是它的属性,任何对该属性的改变都会保存在该类的对象中,那就是为什么jsp页面不管执行多少次,上一次对该全局变量执行的结果都是下一次执行的初值。以下是个例子,运行后,刷新几次看看结果
<!DOCTYPE html>
<html>
<body>
<%@ page language="java" %>
<%! int count = 0; %>
<% count++; %>
Welcome! You are visitor number
<%=count%>
</body>
</html>
<% %> 里声明的变量则是作为局部变量, 当JSP执行很多次时,调用多少次就会重新初始化多少次。以下是个例子,运行后,刷新几次看看结果
<!DOCTYPE html>
<html>
<body>
<%@ page language="java" %>
<% int count = 0; %>
<% count++; %>
Welcome! You are visitor number
<%=count%>
</body>
</html>