在servlets中,getAttribute()
和setAttribute()
只与HttpSession
、ServletRequest
和ServletContext
,即仅为上下文、请求和 session 范围定义属性。为什么不为 ServletResponse
或 ServletConfig
呢?
最佳答案
属性总是适用于某些范围。例如,如果您希望它们仅应用于当前请求,则将它们绑定(bind)到请求对象。
类似地,如果您希望它应用于当前 session ,则将它们绑定(bind)到 session 对象。与整个正在运行的应用程序实例相关的属性在 servlet 上下文对象上设置。
您建议的对象与已经提供的对象具有完全相同的范围:响应与请求具有相同的范围(即生命周期)。 servlet 配置与 servlet 上下文具有完全相同的范围。
因此,在这些方法上添加 getAttribute()
/setAttribute()
只会增加困惑(“我是在请求上还是在响应上设置了属性?”)而不添加任何附加功能。
关于java - 在 Java servlet 中,为什么只为上下文、请求和 session 范围定义属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6262107/