什么是隐式对象?这是什么意思?

时间:2010-01-21 22:02:42

标签: java jsp servlets

每当我研究JSP和Servlets时,我会遇到单词隐含对象,这个术语是什么意思?

如何在我的程序中调用它们而不实例化对象?谁实例化隐式对象?请详细说明。

由于

8 个答案:

答案 0 :(得分:14)

这些是servlet容器已放置在作用域中的对象,因此可以通过EL(表达式语言)访问它,例如PageContextHttpServletRequest#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的。但我们可以将它们传递给我们   我们希望使用它们的方法   在这些功能中本地。

来源:roseindia.net

答案 2 :(得分:4)

JSP隐式对象是JSP容器在每个页面中向开发人员提供的Java对象,开发人员可以直接调用它们而无需显式声明。 JSP隐式对象也称为预定义变量。

JSP支持九个隐式对象,如下所示:

  • 请求:这是与请求关联的 HttpServletRequest 对象。
  • 响应:这是与客户端响应相关联的 HttpServletResponse 对象。
  • out :这是用于将任何数据写入缓冲区的 PrintWriter 对象。
  • 会话:这是与请求相关联的 HttpSession 对象。
  • 应用程序:这是与应用程序上下文关联的 ServletContext 对象。
  • config :这是与该页面关联的 ServletConfig 对象。
  • pageContext :这封装了特定于服务器的功能,例如性能更高的JspWriters。
  • 页面:这只是它的同义词,用于调用已翻译的servlet类定义的方法。
  • 异常:Exception对象允许指定的JSP访问异常数据。

答案 3 :(得分:1)

隐式对象是JSP容器在每个页面中向开发人员提供的一组Java对象。这些对象可以通过脚本元素作为内置变量访问,也可以通过JavaBeans和Servlet以编程方式访问。

有关详细概述和使用,请参阅以下页面。

http://www.gulland.com/courses/JavaServerPages/jsp_objects.jsp

答案 4 :(得分:0)

隐式对象会自动创建并准备好供您使用。您不能使用这些对象创建具有相同名称的其他变量。

答案 5 :(得分:0)

JSP页面可以通过脚本变量访问某些特定对象。这些对象由JSP容器提供,称为隐式对象。可以在scriptlet中,在表达式中或作为EL表达式的一部分访问这些隐式对象。

enter image description here

范围对象

enter image description here More detail

答案 6 :(得分:-1)

JSP隐式对象由容器创建,同时将JSP页面转换为Servlet源以帮助开发人员

答案 7 :(得分:-1)

有九种类型的隐式对象,隐式对象也称为预定义变量 1)请求
2)回应
3)申请
4)会议
5)页面 6)pageContext
7)出 8)例外 9)配置