jsp <%%>编译问题。

以下代码能否编译通过,假如能编译通过,运行时得到什么输出结果()?
<% request.setAttribute("count",new Integer(0));
Integer count = request.getAttribute("count")
%>
<%=count %>
a) 编译不通过
b) 可以编译运行,输出0
c) 编译通过,但运行时抛出ClassCastException
d) 可以编译通过,但运行无输出
求解释????????

request.getAttribute("count")返回的类型默认是Object :

Object javax.servlet.ServletRequest.getAttribute(String name)

必须强制转换成Integer类型。不转化的话:会报:

org.apache.jasper.JasperException: Unable to compile class for JSP:

转换过后:输出为0

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-04-11
选择 A 吧, 貌似request.getAttribute("count") 必须强制转化 Integer追问

请问,把new Integer(0)放入request中,变成啥类型的,为什么需要强转?

追答

把new Integer(0)放入request中会变成Object 类型 所以取出来也得强转一下

追问

那所有类型的对象放入request中都会变为Object 类型的吗?

追答

对,因为那个方法就是这样定义的 void javax.servlet.ServletRequest.setAttribute(String name,Object o)

本回答被提问者和网友采纳
第2个回答  2013-08-23
Integer count = (Integer)request.getAttribute("count")
相似回答