java里 jsp 题

1.当浏览器第二次访问以下下jsp网页时输出结果是什么? <%! int a=0; %> <% int b=0; a++; b++; %> a:<%=a %><br> b:<%=b %>
麻烦哪位高手告诉一下谢了!!(最好讲下原理)

代码含义:
<%! int a=0; %>相当于在servlet中声明全局变量a,并赋初值为0;
<% int b=0; a++; b++; %>相当于在servlet的service方法中声明b变量(局部变量),并实现a、b自增;
a:<%=a %>输出a的值;
<br>换行
b:<%=b %>输出b的值;
第二次访问输出结果:
a:2
b:1
原因:a为全局变量,每次request通过servlet的service方法而实现a的自增,顾每次访问网页a的值自增,而b变量为servlet的service方法中的局部变量,实现b变量的声明和自增,所以不管访问多少次,b的值始终为1.
重点:针对这个问题你需要明白两点:
1、全局变量和局部变量的区别
2、JSP页面代码的实现机制,其实你在JSP页面中所写的Java代码,相当于你在自己书写servlet时所写的代码,只不过JSP页面自动生成了servlet类包含了你在JSP页面内所写的代码
注:虽然这样的代码可以直接看出结果,但为了负责的态度,经过了实测,确保答案正确
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-12-27
a = 1, b = 1;

可以看出,a是全局变量,b是局部变量,虽然是第二次访问,但每次访问a、b都要被重新初始化,是不是全局变量没有意义。
相似回答