小问题一则

wangxin_qaz 2003-06-12 04:12:35
在JSP中,下面两种变量的声明有何不同?

<%! int i = 0; %>
----------------------------------------
<%
int i = 0;
%>
...全文
25 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
dooby 2003-06-12
  • 打赏
  • 举报
回复
jsp是先编译成java代码 那个类是继承HttpJspBase 的 这个类实际上是继承servlet的

这就是为什么大家都说jsp就是servlet的原因。

至于<%!命名的对象就会变成类变量。

至于只有一个实例,当你多个用户同时访问,会复制出多份来给大家使用的。但是记住是复制,而不是重新构造,也是servlet的运行原理哦。
zuoyangguang 2003-06-12
  • 打赏
  • 举报
回复
楼上说的对不对阿,我感到怀疑
dooby 2003-06-12
  • 打赏
  • 举报
回复
补充一下,<%!声明的变量 实际上是对登陆该页面所有用户都有效的,很有可能第一个用户修改了该值,第二个用户再使用的时候就出错了,所以一般建议大家再!里面只写函数。

从jsp编译成java代码级别上来看,!声明的其实是类变量,而且这个类只有一个实例。
hhuzhj 2003-06-12
  • 打赏
  • 举报
回复
<%! int i = 0; %>为声明,在整个页面范围内有效,网页中的任何地方都可以用到他。
<% int i = 0; %>位程序代码片断中定义的变量是局部变量,只在代码片断中有效,其他的方法中不可用。

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧