首页 新闻 会员 周边

问大家一个JSP方面的问题

0
[已关闭问题]

有如下JSP代码

<html>

 <% { %>

 <% String str; %>

 <% } %>

 str is <%=str %>

</html>

 

请问一下代码执行后的结果是什么,有4个选项

A.翻译期错误

B.编译期错误

C.执行编译后的字节码发生错误

D.运行后,浏览器上显示:str is null

请高手解释一下啊,谢谢!!!

caidong的主页 caidong | 初学一级 | 园豆:200
提问于:2010-03-20 11:10
< >
分享
其他回答(1)
0

这问题好玩!!!非常好玩!

这个应该是找不到 str 这个变量的定义吧!或者说str这个变量在使用时根本就没有定义,然而就要使用他?

用.NET的逻辑来推演的话,这个是编译期的错误吧,编译器不会让这个通过编译的吧!

西越泽 | 园豆:10775 (专家六级) | 2010-03-20 12:15
是的,是找不到这个变量,那么你认为是编译期的错误,那么翻译期的错误是指什么
支持(0) 反对(0) caidong | 园豆:200 (初学一级) | 2010-03-20 14:56
@caidong:非常非常的不好意思!具我掌握的这么点可怜的知识,我还没听说过程序这块在执行时有"翻译期错误"这个东东...所以恕我回答不了你的这个疑问! 倒是个人臆测 翻译期错误 这个对某种语言到非同语言翻译时出现的错误。
支持(0) 反对(0) 西越泽 | 园豆:10775 (专家六级) | 2010-03-20 16:10
0

这个应该编译通不过,两个原因:
一、变量的定义范围,请看

<% {
String str;
}
%>
这里实际上str定义在一个{}中,此大括号范围外引用str,系统无法识别变量。

二、即使把大括号去掉,也不会编译通过,因为变量str没有初始化,

正确的是:String str=null;

此时选择D

邀月 | 园豆:25475 (高人七级) | 2010-03-20 16:51
谢谢这个朋友的解答,我当时也认为是编译期错误,NND,他非搞个翻译期错误的答案来糊弄我
支持(0) 反对(0) caidong | 园豆:200 (初学一级) | 2010-03-20 18:01
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册