jsp中,<%!String str ;%>与<% String str; %>声明有什么区别? 有!<%!String str ;%>在整个页面都有效<%String str ;%>则不是 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 没有区别,都是声明变量。<%String str ;%>整个页面也是有效的 。 看了JSP编译后的SERVLET你就明白了,<%!String str ;%>是类变量,<% String str; %>则不一定 <%! String str;%>这种称之为JSP声明在JSP声明块中声明的变量在所有运行这个JSP程序代码的线程中有效。从某种意义上说,在JSP声明中声明的JSP变量相当于全局变量,而在JSP代码段中被声明的JSP变量则相当于局部变量... <%! String str;%>这种称之为JSP声明在JSP声明块中声明的变量在所有运行这个JSP程序代码的线程中有效。从某种意义上说,在JSP声明中声明的JSP变量相当于全局变量,而在JSP代码段中被声明的JSP变量则相当于局部变量... 我们编写好一个JSP程序,将它放在JSP服务器的发布目录,并在浏览器调用该JSP程序,当JSP服务器接到这个请求,它就会自动检查在服务器的内存/缓冲区中有没有这个JSP程序的实例教程,如果有,就产生一个新的实例教程,向客户端输出反馈信息;如果没有,服务器判断这是一个没有被编译过的JSP程序,那么它就会调用可解释执行的class文件,JSP引擎会载入这个class文件,解释执行它,并把结果返回给客户端的浏览器。如果JSP声明块中声明了某个java变量,那么它就在第一次编译时被创建和初始化,同时也是最后一次,除非该JSP文件被修改过重新载入了。从此以后,这个JSP程序的二进制代码就一直存在于JSP引擎的内存空间中,当该JSP程序被客户端再次请求时,JSP引擎只是简单地创建一个新的线程,执行这些二进制代码,但是JSP声明块中的变量却没有被重新创建和初始化,,新的线程将会直接使用原来就已经存在的JSP变量的一个拷贝。当然拷贝中JSP变量值的变化也会影响到该变量原来的值。如果JSP变量是在JSP程序段中被声明的,那么每当新的请求线程产生,它都需要重新创建和初始化。--《JSP深入编程 page132》--敲得很幸苦,上面的没有验证,我几乎不用JSP声明来定义变量的 weidegong(weidegong) 说的对 <%!String str ;%>定义的是全局变量,<%String str ;%>定义的是非全局变量。 dom4j CDATA 解析 flex加载swf的问题 急急急 新手的问题 关于数据库连接池问题!急 高分求jsp在线列表的源码 Jsp标签问题. jsp图片存数据库问题:路径问题 jsp生成静态页面的问题? 请问汉字显示问题 还是数据库连接的问题了,希望能帮忙了,谢谢了!! 请教 普通BEAN的打包问题
<%String str ;%>整个页面也是有效的 。
<%!String str ;%>是类变量,<% String str; %>则不一定
<%String str ;%>定义的是非全局变量。