jsp的一个简单的问题,想知道为什么?

1. 给定以下JSP代码片段,有2个客户依次浏览该JSP;且每个客户只浏览一次,第2个客户会看到浏览器显示(B)。
<%int x = 1; %>
<%!int x = 10; %>
X =< %= ++x%>
(A)X = 1
(B)X = 2
(C)X = 10
(D)X = 11

jsp是按顺序执行的

所以他先执行<%int x = 1; %>
然后下来执行<%!int x = 10; %>
这时候他发现优先级比它高所以果断不鸟他
再往下执行
++i是先加再输出所以应该是2
由于<%int x = 1; %>是局部变量所以每次刷新都是2值不会变
所以无论是第2个第3个浏览都是2
如果把<%int x = 1; %>删了
就剩
<%!int x = 10; %>
X =< %= ++x%>
第一个访问是11 第二个12 第三个13...
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-08-04
我实践了选B
第1个人,每2个人,一直到第n个人都是x=2

<%! %>块里定义的是全局变量,相当于类的静态变量
<% %>定义的是本地变量

当变量名重复时,本地变量覆盖全局变量,因此++x永远是对x=1进行自增运算,所以是2
不清楚可加我好友
第2个回答  2012-08-04
只能无语。大概是大学教科书里的无聊题目吧,这种题目真是遗害无穷,直到现在还在指导着初学java的人们……出来工作那么久了,这样的问题一次也没遇到过,也就是说,这是一种脱离实际的问题,毫无意义的问题。建议楼主还是多想想怎样实现一个小网站,做得像某个论坛,某个系统吧,解答这种题目纯属浪费脑筋
第3个回答  2012-08-04
<%int x = 1; %> 是定义的方法变量
<%!int x = 10; %> 是定义实例变量
< %= ++x%> 的话是在方法里输出变量所以<%int x = 1; %>的优先级比<%!int x = 10; %> 高
方法变量每次都会被int x = 1给初始化所以
选a
第4个回答  2019-05-07
你的异常信息是什么啊?贴出来看看。

<%
string
s1="coding";
//
这里的
是什么?
out.print(" "+s1);
%>
相似回答