日期:2014-05-17  浏览次数:20748 次

菜鸟问题之四:页面变量与小脚本变量区别?
用 <%! String str="";%> 定义的 str 与用 <% String str="";%> 定义的有何不同?


------解决方案--------------------
<%!%>是用来声明变量的 里面不可以写其他的流程语句了 
<%%>就是流程语句的scriptlet
------解决方案--------------------
在<%! %>内的变量和方法是一个类内的变量或方法,也就是成员变量和成员方法。
在<% %>内的变量是一个方法的变量也就是局部变量。
成员变量会被多个对象共享,而局部变量单独对象访问。
简单的说就是
<%! %>定义的变量在其他<% %>中可以操作改变值
<% %>定义的变量只能在他的块里面,其他块操作值不变
------解决方案--------------------
 <%! String str="";%>是全局变量
------解决方案--------------------
一个是局部的一个是全局的
------解决方案--------------------
引用:
用 <%! String str="";%> 定义的 str 与用 <% String str="";%> 定义的有何不同?


在jsp中,<%! String a%>相当于是给servlet定义了一个属性。
而<%String a%>相当于在servlet中的service()方法中定义了一个变量。
------解决方案--------------------
对于这种问题,楼主已经纠结过一次了。
http://bbs.csdn.net/topics/390301153
我的建议:跟上次一样,看JSP对应的java文件就明白了。
------解决方案--------------------
引用:
在<%! %>内的变量和方法是一个类内的变量或方法,也就是成员变量和成员方法。
在<% %>内的变量是一个方法的变量也就是局部变量。
成员变量会被多个对象共享,而局部变量单独对象访问。
简单的说就是
<%! %>定义的变量在其他<% %>中可以操作改变值
<% %>定义的变量只能在他的块里面,其他块操作值不变


+1