在Java servlet中,为什么仅为上下文,请求和会话范围定义属性?

Dau*_*aud 3 java attributes servlets

在servlet中,getAttribute()并且setAttribute()仅与之关联HttpSession,ServletRequest并且ServletContext,即仅为上下文,请求和会话范围定义属性.为什么不,比如说,ServletResponse或者ServletConfig

Joa*_*uer 6

属性始终适用于某个范围.例如,如果您希望它们仅应用于当前请求,则将它们绑定到请求对象.

同样,如果要将其应用于当前会话,则将它们绑定到会话对象.与整个正在运行的应用程序实例相关的属性在servlet上下文对象上设置.

您提出的对象具有与已提供的对象完全相同的范围:响应与请求具有相同的范围(也称为生存期).servlet配置与servlet上下文具有完全相同的范围.

因此,添加getAttribute()/ setAttribute()开启这些方法只会增加混淆("我在请求或响应上设置了属性吗?")并且不添加任何其他功能.