8

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

我的目标是当我提交我的名字时应该显示在那个文本框中。这里的问题:该文本框中显示的任何内容都是来自 servlet的响应,对吗?

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

在jsp方面:
它是这样写的:<input type="text" value = < %request.getAttribute("name")% > >

我知道在 javadocs 他们在请求中有 setattribute 但为什么不响应?

4

3 回答 3

11

请求:从客户端到服务器

响应:从服务器到客户端

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

于 2013-05-25T08:36:36.243 回答
6

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

于 2013-05-25T08:32:33.217 回答
4

当他们说 request.setAttribute(Object, Object) 时,它只是暗示该属性的范围仅适用于该请求,并且该属性将不存在于后续请求中。

于 2013-05-25T08:21:57.567 回答