对, 答案是b) ,原因:
首先 <%! ...%>是jsp的生命, 它会先于其他jsp代码执行, 所以首先声明出来, int x = 10;
然后会开始编译其他的jsp代码, 从上至下, 所以执行到 int x = 1; 的时候, x就被赋值为1了.
最后, <%=...%>是页面显示命令, 其实可当做System.out.println(...);由于++x先先执行加自增, 然后再使用, 所以x的值为2, 显示到页面上的也是2.
<%int x = 1; %> 这个变量为什么要这么定义?这个是全局变量的定义
<%!int x = 10; %> 这个变量为什么要这么定义?这个是局部变量的定义
X =< %= ++x%> ++X 代表什么?X自+1在赋给自己不就是2 ?
页面中打印的是全局变量,而不是局部变量,所以结果是2,明白?