<%! int a=0; %>中的!是什么意思

Jyanshan 2012-10-26 02:46:00
当浏览器第二次访问以下jsp网页时的输出结果是 a=2 b=1

<%!int a = 0;%>
<%
int b = 0;
a++;
b++;
%>
a:<%=a%><br>
b:<%=b%>




...全文
1107 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
unforgettable_7 2012-10-29
  • 打赏
  • 举报
回复
楼上都正解
长笛党希望 2012-10-28
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

<%!int a = 0;%> //声明的变量a在是成员变量,在此处生命的方法或变量不属于service()方法体
<%int b =0 %>//此处声明的变量在service方法中

//具体区别可以写一个测试的jsp,运行tomcat,到work子目录下查看对应生成的java文件就知道了
[/Quote]
+1
Rick____ 2012-10-27
  • 打赏
  • 举报
回复
jsp请求会被翻译成servlet,编后执行,比如tomcat可以在work文件下找到翻译后的源码
一个servlet在服务器中只有一个对应实例
而servlet的service方法(doGet,doPost)是线程安全的,应用服务器给每一个客户端(线程)分配不同的内存区域(你可以理解为service方法里的局部变量)实现请求处理,而jsp中<%!int a = 0;%>
相当于是在servlet里声明了实例变量,每个客户端都会访问这个变量,所以你每次访问的都是同一个a,它是线程不安全的。
justices110103 2012-10-27
  • 打赏
  • 举报
回复
<%!%>
这是一个整体符号,表示里面的内容是声名语句
wlh602336904 2012-10-27
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

<%! %> 声明语句 <%! Date myD = new Date(); %>
<% %> 代码语句 <% for(int i=0;i<10;i++) %>
<%@ %> 指令语句 <%@ page import="java.util.*" %>
[/Quote]

看看这个
灿烂阳光168 2012-10-26
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
<%! %> 声明语句 <%! Date myD = new Date(); %>
<% %> 代码语句 <% for(int i=0;i<10;i++) %>
<%@ %> 指令语句 <%@ page import="java.util.*" %>
[/Quote]

高见
mage694 2012-10-26
  • 打赏
  • 举报
回复
<%!int a = 0;%> //声明的变量a在是成员变量,在此处生命的方法或变量不属于service()方法体
<%int b =0 %>//此处声明的变量在service方法中

//具体区别可以写一个测试的jsp,运行tomcat,到work子目录下查看对应生成的java文件就知道了
diypyh 2012-10-26
  • 打赏
  • 举报
回复
相当一个全局常量
soyestrellafortuna 2012-10-26
  • 打赏
  • 举报
回复
声明变量
  • 打赏
  • 举报
回复
<%! %> 声明语句 <%! Date myD = new Date(); %>
<% %> 代码语句 <% for(int i=0;i<10;i++) %>
<%@ %> 指令语句 <%@ page import="java.util.*" %>

67,516

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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