2011-10-11 92 views
1

我问这个问题,因为在我的工作的实践评估中,对于JSP中具有“请求”范围的对象提出了一个问题。这里的问题,告诉我哪一个是正确的答案:请求处理完成后,可以访问范围为“请求”的对象吗?

以下哪项陈述的关于JSP一个 请求的范围是真的吗?

•具有请求范围的对象可以从处理创建它们的相同请求的页面访问。

•处理请求后,所有对象的引用都将被释放;特别是,如果请求被转发到同一运行时的资源,则该对象仍然可以访问。

•引用与请求范围的对象被存储在请求对象

•以上的。

答案是“以上都是”对不对?然而,在练习测试中给出的答案说这只是第一个。但是,如果您在某个其他JSP或servlet中转发或包含请求,那么这个范围的对象仍可访问吗?而且,具有“请求”范围的对象是否存储在“请求对象”(即ServletRequest或其派生类之一)中呢?

是否还有其他东西我缺少,例如请求范围的对象在请求完成处理后仍可访问一段时间?或者,这里有错误吗?

回答

1

我认为练习测试的答案是错误的。诸如bean 之类的对象是存储在请求中的,并且可以用HttpRequest对象的getAttribute方法访问。因此这些对象一直存在直到请求结束。

来源:HttpRequest/ServletRequest javadoc以及David Parsons在第10章中使用XML和Java的动态Web应用程序开发,第10章有一个使用请求范围的bean并转发的示例。

+0

是的,你说得对。我正在离开我的雇主,但他们的测试令人讨厌。如果他们想测量员工的能力,为什么不把这个外包给另一家公司?就像他们有一个人自己想出了这些测试一样,他在这里和那里做了很多错别字。而且,从来没有人来追踪他们。 – user919860