分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 软件开发

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

发布时间:2023-09-06 01:19责任编辑:白小东关键词:jsjsp

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>

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

原文地址:http://www.cnblogs.com/yuanchaoyong/p/7719959.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved