请求完成处理后,是否可以访问具有“请求”范围的对象?

时间:2011-10-11 21:45:40

标签: jsp java-ee servlets

我问这个问题,因为在我的工作实践评估中询问有关JSP中具有“请求”范围的对象的问题。这是问题,告诉我哪一个是正确的答案:

  

关于a的范围,以下哪一项陈述是正确的   请求JSP?

     

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

     

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

     

•对具有请求范围的对象的引用存储在请求对象

中      

•以上所有。

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

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

1 个答案:

答案 0 :(得分:1)

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

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