gir*_*iri 18 java jsp servlets
每当我研究JSP和Servlets时,我都会遇到隐含对象,这个术语的意思是什么?
如何在我的程序中调用它们而不实例化对象?谁实例化隐式对象?请详细说明.
谢谢
Bal*_*usC 14
这些是其中已被放置在范围由servlet容器,因此,它的由EL(表达式语言)访问的对象,如PageContext,HttpServletRequest#getParameter(),HttpServletRequest#getHeader()等.这些只是为了方便,所以你不需要使用旧的fahioned 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>
Run Code Online (Sandbox Code Playgroud)
你可以这样做
${pageContext.session.maxInactiveInterval}<br>
${param.foo}<br>
${header['user-agent']}<br>
${cookie.foo}<br>
Run Code Online (Sandbox Code Playgroud)
您会看到它们遵循要访问的JavaBean约定(即您可以使用JavaBean方式调用getter).你看到我使用大括号[]来获取user-agent,那是因为它-是EL中的保留字符,所以${header.user-agent}不会起作用,它会尝试返回结果request.getHeader("user") - pageContext.findAttribute("agent")显然不起作用.
有关它们的概述,请查看Java EE教程中的隐式对象一章.
JSP中的隐式对象是容器自动创建的对象,容器使它们可供开发人员使用,开发人员不需要显式创建它们.由于这些对象是由容器自动创建的,因此可以使用标准变量进行访问; 因此,它们被称为隐式对象.
隐式对象由容器解析并插入生成的servlet代码中.它们仅在jspService方法中可用,而不在任何声明中.隐式对象用于不同目的.我们自己的方法(用户定义的方法)无法访问它们,因为它们是服务方法的本地方法,并且是在jsp转换为servlet的过程中创建的.但是如果我们希望在这些函数中本地使用它们,我们可以将它们传递给我们自己的方法.
资料来源:roseindia.net
| 归档时间: |
|
| 查看次数: |
21135 次 |
| 最近记录: |