您的位置:首页 > 职场人生

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

2017-10-24 00:17 288 查看
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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: