我正在开发一个Web服务,在阅读有关HTTP请求和响应以及标题的过程中,我遇到了ServletRequest类中的方法setAttribute(String s, Object o)
。
我面临的问题是试图理解,为什么有人会在我的servlet收到请求后为其设置属性。在前端设置属性和参数是合乎逻辑的,因为它有助于从前端向中间层发送信息,但是我们通过在中间层本身设置属性来获得什么。
答案 0 :(得分:1)
可以在jsp模板上下文中访问请求属性,因此您可以使用错误消息或任何您想要模板的内容来装饰请求,例如:
${requestScope.Error_Message}
如果您使用普通的JSP,而不是像spring mvc这样的东西,那么使用属性修饰请求可能只是获取jsp中模板化数据的最简单方法。
您可能还有一系列servlet过滤器,它们在您到达向客户端发送响应的最终处理程序之前以各种方式装饰请求。
并且,是的请求有时会转发到其他servlet进行处理。在这种情况下,使用属性装饰请求提供了一种在端点之间进行通信的方法。
但是,无论何时何地,只要您需要在单个请求的生命周期内保存某些状态,它就是一种有用的模式。
答案 1 :(得分:0)
请求可能无法完成一个周期。该特定请求可以被转发到另一个请求以完成该服务。如果要添加其他输入,转发请求时,就是这样。
简而言之,在请求之间交换信息。