我问这个问题,因为在我的工作实践评估中询问有关JSP中具有“请求”范围的对象的问题。这是问题,告诉我哪一个是正确的答案:
关于a的范围,以下哪一项陈述是正确的 请求JSP?
•可以从处理请求范围的页面访问具有请求范围的对象 创建它们的同一请求。
•在处理请求后,应释放对该对象的所有引用;特别是,如果请求被转发到同一运行时的资源,则该对象仍然可以访问。
•对具有请求范围的对象的引用存储在请求对象
中•以上所有。
答案是“以上所有”对吗?然而,在练习测试中给出的答案说它只是第一个。但是,如果您转发或在其他JSP或servlet中包含请求,那么这个范围的对象仍然可以访问吗?并且,具有“请求”范围的对象是否也存储在“请求对象”中(即ServletRequest或其派生类之一)?
还有其他我缺少的东西,比如请求范围的对象在请求处理完成后仍可访问一段时间吗?或者,这里有错误吗?
答案 0 :(得分:1)
我认为练习测试答案是错误的。诸如beans 之类的对象存储在请求中,可以使用HttpRequest对象的getAttribute方法进行访问。因此,对象一直存在,直到请求结束。
来源:HttpRequest / ServletRequest javadoc,以及David Parsons使用XML和Java的动态Web应用程序开发,第10章,其中有一个使用请求范围的bean和转发的示例。