jsp中的盲区-面试可能会问到的东西

it2022-05-05  126

1、今天看到一个有趣的JSP题目。

<body>    This is my JSP page. <br>    <%        int a = 10;    %>        <%        out.print(a++);    %>    <%=a %>    <%!        int a = 100;    %>    <%        out.print(a++);          %>  </body>

输出结果:10  11  11

有人可能会问最后一个输出为什么不是100

个人解释:  <%!        int a = 100;    %>     内的代码相当于全局变量。

   <%        out.print(a++);          %>

执行的是方法内部的代码。也就是执行局部变量的代码。所以输出 11

2、如果代码是这样的:

 

<body> This is my JSP page. <br> <% int a = 10; %> <% out.print(a++); %> <br/> <%=a %> <%! int a = 100; %> <% out.print(this.a++); %> </body>

 

 输出结果是这样的:10   11  100  最后一行会执行输出成员变量的参数。

 

3、请问方法fun1会执行么?代码如下

<body> This is my JSP page. <br> <% int a = 10; %> <% out.print(a++); %> <br/> <%=a %> <%! int a = 100; public void fun1() { System.out.println(a); } %> <% out.print(this.a++); %> </body>

 答案是不会执行。<%!  代码..... %> 内的方法类似于在类内的方法。需要调用才会执行。正确执行代码如下。

 

 

<body> This is my JSP page. <br> <% int a = 10; %> <% out.print(a++); %> <br/> <%=a %> <%! int a = 100; public void fun1() { System.out.println(a); } %> <% out.print(this.a++); fun1(); %> </body>

 

转载于:https://www.cnblogs.com/yuanchaoyong/p/7719959.html

相关资源:关于jsp的项目

最新回复(0)