每当我研究JSP和Servlets时,我会遇到单词隐含对象,这个术语是什么意思?
如何在我的程序中调用它们而不实例化对象?谁实例化隐式对象?请详细说明。
由于
答案 0 :(得分:14)
这些是servlet容器已放置在作用域中的对象,因此可以通过EL(表达式语言)访问它,例如PageContext
,HttpServletRequest#getParameter()
,HttpServletRequest#getHeader()
等等。这些只是为了方便,所以您不需要使用旧的 scriptlet 来抓取它们。
所以而不是例如
<%= pageContext.getSession().getMaxInactiveInterval() %><br>
<%= request.getParameter("foo") %><br>
<%= request.getHeader("user-agent") %><br>
<% for (Cookie cookie : request.getCookies()) { // Watch out with NPE!
if (cookie.getName().equals("foo")) {
out.write(cookie.getValue());
}
}
%><br>
你可以做到
${pageContext.session.maxInactiveInterval}<br>
${param.foo}<br>
${header['user-agent']}<br>
${cookie.foo}<br>
您会看到它们遵循要访问的JavaBean约定(即您只需以JavaBean方式调用getter)。您看到我使用大括号[]
来获取user-agent
,这是因为-
是EL中的保留字符,因此${header.user-agent}
无效,它会尝试返回request.getHeader("user") - pageContext.findAttribute("agent")
的结果,这显然不起作用。
有关它们的概述,请查看Java EE教程中的Implicit Objects一章。
答案 1 :(得分:5)
JSP中的隐式对象是 由...创建的对象 容器自动和 容器使它们可用于 开发人员,开发人员没有 需要明确地创建它们。以来 这些对象已创建 自动由容器和 使用标准变量访问; 因此,它们被称为隐含的 对象。
隐式对象由。解析 容器并插入 生成的servlet代码。他们是 仅在jspService中可用 方法而不是任何声明。 隐式对象用于 不同的目的。我们自己的方法 (用户定义的方法)无法访问 他们是服务的本地人 方法,并在 jsp到a的转换时间 servlet的。但我们可以将它们传递给我们 我们希望使用它们的方法 在这些功能中本地。
答案 2 :(得分:4)
JSP隐式对象是JSP容器在每个页面中向开发人员提供的Java对象,开发人员可以直接调用它们而无需显式声明。 JSP隐式对象也称为预定义变量。
JSP支持九个隐式对象,如下所示:
答案 3 :(得分:1)
隐式对象是JSP容器在每个页面中向开发人员提供的一组Java对象。这些对象可以通过脚本元素作为内置变量访问,也可以通过JavaBeans和Servlet以编程方式访问。
有关详细概述和使用,请参阅以下页面。
http://www.gulland.com/courses/JavaServerPages/jsp_objects.jsp
答案 4 :(得分:0)
隐式对象会自动创建并准备好供您使用。您不能使用这些对象创建具有相同名称的其他变量。
答案 5 :(得分:0)
答案 6 :(得分:-1)
JSP隐式对象由容器创建,同时将JSP页面转换为Servlet源以帮助开发人员
答案 7 :(得分:-1)
有九种类型的隐式对象,隐式对象也称为预定义变量
1)请求
2)回应
3)申请
4)会议
5)页面
6)pageContext
7)出
8)例外
9)配置