日期:2014-05-16  浏览次数:20330 次

JSP语法简明教程
JSP中 <%! %> <% %> 2者之间声明的变量有什么不同?
在之间放置声明变量是页面的成员变量。声明的变量在整个JSP页面都有效
<%@ page language="java" contentType="text/html; charset=GB18030"
	pageEncoding="GB18030"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<body>
<%!int i = 0;%>
<%
	i++;
%>
<% int j = 0;j++;%>
<p>带!:您是第<%=i%>个访问本站的用户。</p> 每次刷新加1,而且不同浏览器访问共享
<p>不带!:您是第<%=j%>个访问本站的用户。</p>一直不变为 1
</body>
</html>

jsp引擎将jsp页面转译成java文件时,将标记符之间声明的变量作为类的成员变量,这些变量占有的空间直到jsp引擎关闭才释放。(存在服务器中)


在之间声明的变量属于java程序片的局部变量,只在当前及后继的java程序片中有效。而且这些变量不是线程间共享的,各个客户之间是互不影响的。浏览器每请求一次页面,tomcat服务器就视为一个有一个新的用户,并为之建立一个线程来执行jsp转译、编译后的字节码。