Java 什么是隐式对象?这是什么意思?
每当我学习JSP和servlet时,我都会遇到单词隐式对象,这个词是什么意思 在我的程序中如何调用它们而不实例化对象?谁实例化隐式对象?请详细说明 谢谢 JSP中的隐式对象是 对象创建的对象 容器自动和 容器使它们可供用户使用 开发者,开发者没有 需要显式地创建它们。自从 将创建这些对象 由容器自动生成,并且 使用标准变量访问; 因此,它们被称为隐式 对象 隐式对象由 容器,并将其插入 生成的servlet代码。他们是 仅在jspService中可用 方法,而不是在任何声明中。 隐式对象用于 不同的目的。我们自己的方法 (用户定义的方法)无法访问 因为他们是当地的服务 方法,并在 将jsp转换为 servlet。但是我们可以把它们传给我们的 如果我们希望使用它们,请使用自己的方法 在这些职能中发挥作用Java 什么是隐式对象?这是什么意思?,java,jsp,servlets,Java,Jsp,Servlets,每当我学习JSP和servlet时,我都会遇到单词隐式对象,这个词是什么意思 在我的程序中如何调用它们而不实例化对象?谁实例化隐式对象?请详细说明 谢谢 JSP中的隐式对象是 对象创建的对象 容器自动和 容器使它们可供用户使用 开发者,开发者没有 需要显式地创建它们。自从 将创建这些对象 由容器自动生成,并且 使用标准变量访问; 因此,它们被称为隐式 对象 隐式对象由 容器,并将其插入 生成的servlet代码。他们是 仅在jspService中可用 方法,而不是在任何声明中。 隐式对象用于 不
来源:隐式对象是JSP容器在每个页面中为开发人员提供的一组Java对象。这些对象可以通过脚本元素作为内置变量访问,也可以通过JavaBeans和servlet编程访问 有关详细概述和使用方法,请参见下页
这些对象已经被servlet容器放置在作用域中,因此EL(表达式语言)可以访问它们,例如,等等。这些只是为了方便起见,所以您不需要使用旧的Fahored 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>
${pageContext.session.maxInactiveInterval}
${param.foo}
${header['user-agent']}
${cookie.foo}
您可以看到,它们遵循要访问的JavaBean约定(即,您可以通过JavaBean方式调用getter)。您可以看到,我使用大括号符号[]
来获取用户代理
,这是因为-
是EL中的保留字符,因此${header.user agent}
不起作用,它将尝试返回请求.getHeader(“用户”)-pageContext.findAttribute(“代理”)的结果
这显然是行不通的
有关所有这些对象的概述,请查看Java EE教程中的章节。隐式对象是自动创建的,可供您使用。您不能创建与这些对象同名的其他变量。JSP隐式对象是JSP容器在每个页面中为开发人员提供的Java对象,开发人员可以直接调用它们,而无需显式声明。JSP隐式对象也称为预定义变量 JSP支持九个隐式对象,如下所示:
- 请求:这是与请求关联的HttpServletRequest对象
- response:这是与对客户端的响应相关联的HttpServletResponse对象
- out:这是用于将任何数据写入缓冲区的PrintWriter对象
- session:这是与请求关联的HttpSession对象
- 应用程序:这是与应用程序上下文关联的ServletContext对象
- config:这是与页面关联的ServletConfig对象
- pageContext:这封装了服务器特定功能的使用,如更高性能的JspWriters
- 页面:这只是它的同义词,用于调用已翻译的servlet类定义的方法
- 异常:异常对象允许指定的JSP访问异常数据
1) 请求
2) 响应
3) 应用程序
4) 会话
5) 页面
6) 页面上下文
7) 退出
8) 例外情况
9) 配置错误。您确实可以使用相同的名称创建变量。但是,您必须定义范围。例如,一个请求范围,也就是说,人们不应该为了不好的实践而创建带有隐式对象名的变量。