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

作者:无名 - 其它综合 -

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

lt;bodygt;
this is my jsp page. lt;brgt;
lt;%
int a = 10;
%gt;

lt;%
out.print(a++);
%gt;
lt;%=a %gt;
lt;%!
int a = 100;
%gt;

lt;%
out.print(a++);

%gt;
lt;/bodygt;

输出结果:10 11 11

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

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

lt;%
out.print(a++);

%gt;

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

2、如果代码是这样的:

lt;bodygt;
    this is my jsp page. lt;brgt;
    lt;%
    	int a = 10;
    %gt;
    
    lt;%
    	out.print(a++);
    %gt;
    lt;br/gt;
    lt;%=a %gt;
    lt;%!
    	int a = 100;
    
    %gt;

    lt;%
    	out.print(this.a++);
    %gt;
  lt;/bodygt;

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

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

  lt;bodygt;
    this is my jsp page. lt;brgt;
    lt;%
    	int a = 10;
    %gt;
    
    lt;%
    	out.print(a++);
    %gt;
    lt;br/gt;
    lt;%=a %gt;
    lt;%!
    	int a = 100;
    	public void fun1() {
    		system.out.println(a);
    	}
    %gt;

    lt;%
    	out.print(this.a++);
    %gt;
  lt;/bodygt;

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

lt;bodygt;
    this is my jsp page. lt;brgt;
    lt;%
    	int a = 10;
    %gt;
    
    lt;%
    	out.print(a++);
    %gt;
    lt;br/gt;
    lt;%=a %gt;
    lt;%!
    	int a = 100;
    	public void fun1() {
    		system.out.println(a);
    	}
    %gt;

    lt;%
    	out.print(this.a++);
    	fun1();
    %gt;
  lt;/bodygt;

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

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

该篇内容就是由IT人知识库(原文链接:http://www.itpeo.net/9999/4551591.html)小编为各位整理





centos6.6下oracle使用impdp导入数据库报错!

oracle小白一个,遇到问题,请各位大神帮忙看看环境:1、centos6.62、新安装的oracle 11gr23、使 ...

【python35--EasyGui界面】

一、什么是easygui easygui是python中一个非常简单的gui编程模块,不同于其他的gui生成器,它不是事 ...

解决vscode中golang插件依赖安装失败问题

解决vs code中golang插件依赖安装失败问题 installing github.com/nsf/gocode ...

DRF-jwt认证

目录 drf-jwt认证(三大认证) authen ...

[CSP-S模拟测试]:简单的玄学(数学)

题目描述 有$m$个在$[0,2^n)$内均匀随机取值的整型变量,球至少有两个变量取值相同的概率。为了避免精度误差,假设 ...

centos7安装python虚拟环境

本篇主要介绍centos7系统下,安装python3虚拟环境。环境:系统centos7,源代码安装python3,/us ...

2019年十月十日课上内容

常见统计分析软件简介 一.spss应用范围: spss主要用于通信、医疗、银行、证券、保险、制造、商业、市场研究、科研等 ...

JavaScript中的this到底是怎样的?

this是困惑javascript开发者的一大lsquo;毒瘤rsquo;,在开发过程中,但凡用到this的时候, ...

mybatis的学习6____处理多对一的情况

本案例为maven项目: 1.搭建数据库环境: 数据环境中是多个学生对应于一个老师: create table `te ...

C#http下载文件

特点: (1)下载文件加上downloading后缀,下载完成再去掉后缀, (2)含有通知下载进度事件 (3)断点续传 ...

Javacompilerleveldoesnotmatch解决方法

1, 先设置好jdk,需要确定 项目,eclipse/myeclipse,系统 用的是同一个版本的jdk,我系统中安装 ...

Java面试题解构

有次一个同事让我一同去面试一个候选人,没仔细看简历,所以在问了设计模式之后就让他谈一谈对内存泄漏和垃圾回收的理解,当时候 ...

6\MySQL主从同步、MySQL读写分离、MySQL性能调优

day06一、mysql主从同步 二、数据读写分离三、mysql优化++++++++++++++++++++++++++ ...

深入Spring自定义注解加载和使用

前言 在工作中经常使用spring的相关框架,免不了去看一下spring的实现方法,了解一下spring内部的处理逻辑 ...

CentOS7系列--安装Chrome浏览器

centos7系列--安装chrome浏览器1. 创建yum源文件[[email#160;protected] ~]# ...

Vue中table表头合并的用法

lt;p class="panel-container"gt; lt;pgt; lt;tabl ...

Linux----编写可靠Linuxshell脚本的八个建议

编写可靠linux shell脚本的八个建议 指定bash shell 脚本的第一行,#!之后应该是什么? 如果拿这个 ...

单页面模式和多页面模式的优缺点

1)多页面模式(mpa multi-page application):     多页面跳转需要刷新所有资源,每个公共资 ...

cesium基础

scalebydistance : new cesium.nearfarscalar(1.5e2, 1.5, 8.0e6 ...

windows7-maven配置

1.确认jdk安装 2.下载 3.解压缩 4.配置环境变量   (1)计算机属性--高级系统配置--高级--环境变量-- ...