首页 > 试题广场 >

空白处填入代码

[单选题]
给定includel.isp文件代码片段,如下:
  <% pageContext.setAttribute(“User”,”HAHA”);%>
______ // 此处填写代码
  给定include2.jsp文件代码片段如下:
  <%=pageContext.getAttribute(“User”)%>
  要求运行include1.jsp时,浏览器上输出:HAHA
  • <jsp:include page=”include2.jsp” flash=”true”>
  • <%@include file=”include2.jsp”%>
  • <jsp:forward page=”include2.jsp”>
  • <% response.sendRedirect(“include2.jsp”); %>
推荐
答案:B
B选项是静态包含,相当于不include2.jsp页面内容拷贝到此处,因此可以输出User属性值
D选项是转发重定向,转发的时候pageContent内的属性值不能被传递,因此得不到User属性值
编辑于 2019-04-30 14:28:33 回复(7)
A选项使用了jsp中动作标签的包含标签,这里是动态包含。原理是包含与被包含的页面单独翻译成不同的java文件,然后运行时合并在一起。因为是存在域中的数据,故刚开始就直接翻译数据还不存在,因此浏览器上不能显示出HAHA。
B选项使用了jsp三大指令中的包含指令,这里是静态包含。原理是直接把包含与被包含页面的内容先合并在一起,然后翻译成一个java源文件,最后编译执行。故可以在浏览器上显示出HAHA。
C和D选项分别使用了跳转和重定向,我们知道jsp中有四个域对象,从小到大分别为:
  • page域:在同一个jsp页面中数据有效
  • request域:在同一个请求中数据有效
  • session域:在用一个会话中数据有效
  • application域:在同一个网站中数据有效
题中使用的是page域对象:pageContext,而C选项应该使用request域对象:HttpServletRequest,而D选项应该至少使用session域对象:HttpSession(如果处于同一会话中)。
发表于 2020-06-14 15:38:44 回复(9)
JSP 共有以下 6 种基本动作:
jsp:include:在页面被请求的时候引入一个文件;
jsp:useBean:寻找或者实例化一个JavaBean。;
jsp:setProperty:设置 JavaBean 的属性。;
jsp:getProperty:输出某个 JavaBean 的属性;
jsp:forward:把请求转到一个新的页面;
jsp:plugin:根据浏览器类型为 Java 插件生成 OBJECT 或 EMBED 标记。


发表于 2014-10-25 00:26:18 回复(2)
要在include1.jsp中显示include2.jsp的内容,使用JSP中的包含操作
静态包含:
<%@include file=”include2.jsp”%>
也就是B选项
动态包含:
<jsp:include page=”include2.jsp” flush=”true”>
注意:A选项是flash,这是浏览器插件名,不是include指令的属性
发表于 2019-08-20 11:25:44 回复(0)
B:没有flash属性,有flush属性,当把flush属性赋为true时,在缓存累积了一定数据后服务器会先提供一部分数据给浏览器,并等待后续内容 。
CD:pageContext的作用域是当前页面,所以不能使用转发。


发表于 2019-10-08 08:57:21 回复(2)

AC选项都是报此错误,说明不可以这么使用.
图片说明
A选项正确用法
图片说明
接收参数得改成这样:
图片说明
C选项正确用法
图片说明
接收参数也得改成这样:
图片说明
D选项,response.sendredirect(url); 对服务器的响应进行重定向。当server作出响应后,client客户端的请求的生存周期就终止了。
这个时候再用request.getparameter()或request.getattribute()得到的只能是null。
图片说明
B选项,正确显示
图片说明
有错误欢迎指出,谢谢!

发表于 2020-07-16 23:59:07 回复(0)
pageContext  只在当前页面有效,<%@ include page %> 将页面包括到当前页面!
发表于 2019-10-28 10:19:48 回复(0)
JSP 共有以下 6 种基本动作:
jsp:include:在页面被请求的时候引入一个文件;
jsp:useBean:寻找或者实例化一个JavaBean。;
jsp:setProperty:设置 JavaBean 的属性。;
jsp:getProperty:输出某个 JavaBean 的属性;
jsp:forward:把请求转到一个新的页面;
jsp:plugin:根据浏览器类型为 Java 插件生成 OBJECT 或 EMBED 标记。
发表于 2021-04-29 10:13:00 回复(0)

pageContent属性作用范围:仅限于当前jsp页面

request:仅限于同一请求

session:限于一个会话,浏览器打开一个会话直到关闭,此期间属性值不变

application:限于当前的web应用,是属性范围作用最大的一个

发表于 2020-01-23 11:17:01 回复(0)
发表于 2021-02-24 19:33:01 回复(0)
认真的问一句,现在这种jsp的东西问到的几率高不高
发表于 2020-02-21 17:14:04 回复(0)
A选项错了是因为不是flash而是flush吗
发表于 2019-07-31 20:18:00 回复(2)
静态包含:
<%@include file=”include2.jsp”%>
动态包含:
<jsp:include page=”include2.jsp” flush=”true”>

发表于 2022-01-29 14:28:14 回复(2)
额,jsp现在都没在用了
发表于 2022-11-24 19:41:31 回复(0)
B
B选项是静态包含,相当于不include2.jsp页面内容拷贝到此处,因此可以输出User属性值
D选项是转发重定向,转发的时候pageContent内的属性值不能被传递,因此得不到User属性值
发表于 2022-11-16 09:44:58 回复(0)
静态包含 <%@include file=”include2.jsp”%> 动态包含
发表于 2022-09-11 13:52:34 回复(0)
转发的时候pageContent中的值不能传递
发表于 2022-09-02 17:40:29 回复(0)
@静态包含
:include动态包含
发表于 2022-07-13 19:40:50 回复(0)
现在谁还用!
发表于 2022-03-31 12:13:32 回复(2)

A选项是动态包含,动态包含的父页面和子页面是先翻译后合并,底层是

JspRuntimeLibrary.include(request, response, "/include/footer.jsp", out, false);

因为User是存在pageContext域中的数据,在分别翻译父页面和子页面时数据还不存在,所以不会显示

B选项是静态包含,相当于不include2.jsp页面内容拷贝到此处,因此可以输出User属性值

C和D选项分别使用了跳转和重定向

题中使用的是page域对象:pageContext,而C选项应该使用request域对象:HttpServletRequest,而D选项应该至少使用session域对象:HttpSession(如果处于同一会话中)。

发表于 2020-12-29 20:35:42 回复(0)
题目时ocr的吧
发表于 2020-09-12 22:47:23 回复(0)