为什么ServletRequest有setAttribute而不是ServletResponse?

swa*_*ntu 7 jsp servlets

我不明白为什么ServletRequest有一个setAttribute方法.例如:如果我有一个包含1个文本框和提交按钮的jsp页面...

我的目标是当我提交我的名字应该显示在那个文本框中.问题在于:该文本框中显示的是来自servlet的响应吗?

但在我的servlet部分中:它写成了request.setAttribute("name","abc");

在jsp方面:
有人写道:<input type="text" value = < %request.getAttribute("name")% > >

我知道在javadocs中他们已经在内部请求中设置了属性,但为什么不在响应中呢?

nts*_*tha 10

请求:从客户端到服务器

响应:从服务器到客户端

当您的客户端发送您的servlet请求时,您在请求中添加对象,然后在jsp中检索它.请求从servlet传递到jsp.jour jsp检索对象,生成HTML并将其作为响应发送回您的浏览器.客户端发送的请求从一个servlet或jsp传递到另一个jsp或servlet然后编译生成HTML格式并作为server的响应发送到浏览器.响应中的对象没有意义,因为浏览器只显示HTML.


qua*_*ebs 6

当他们说 request.setAttribute(Object, Object) 时,它只是暗示该属性的范围仅适用于该请求,并且该属性将不会存在于后续请求中。在 JSP 上显示数据(例如在文本框中显示您的姓名)仍然属于请求范围内的任务。您正在将数据附加到请求对象。


arg*_*m47 6

因为我认为设置响应的属性是没有意义的.你可以去酒店订购午餐.这是请求,以及您想要的午餐,这是请求的属性.但食物的质量即响应完全取决于酒店(服务器).类似地,当Web服务器响应对浏览器的HTTP请求时,响应通常由状态行,一些响应头和文档组成(可选,如任何JSON数据或类似的东西).因此,如果您有response.setAttribute即意味着您可以将浏览器的名称从Mozilla更改为Chrome,但这太疯狂了.