我不明白为什么ServletRequest有一个setAttribute方法。 例如: 如果我有一个包含1个文本框和提交按钮的jsp页面......
我的目标是当我提交我的名字应该显示在该文本框中。 问题:该文本框中显示的内容是来自servlet的响应对吗?
但是在servlet部分的作业中: 它写成 request.setAttribute(“name”,“abc”);
在jsp方面:
它写成:<input type="text" value = < %request.getAttribute("name")% > >
我知道在javadocs中他们已经在请求中设置了属性,但为什么不在响应中?
答案 0 :(得分:10)
请求:从客户端到服务器
响应:从服务器到客户端
当您的客户端发送您的servlet请求时,您在请求中添加对象,然后在jsp中检索它。请求从servlet传递到jsp.jour jsp检索对象,生成HTML并将其作为响应发送回您的浏览器。客户端发送的相同请求从一个servlet或jsp传递到另一个jsp或servlet然后编译生成HTML格式并作为server的响应发送到浏览器。响应中的对象没有意义,因为浏览器只显示HTML
答案 1 :(得分:6)
因为我认为设置响应的属性是没有意义的。你可以去酒店订购午餐。这是请求,以及您想要的午餐,这是请求的属性。但食物的质量,即响应完全取决于酒店(服务器)。同样 当Web服务器响应对浏览器的HTTP请求时,响应通常由状态行,一些响应头和文档组成(可选,如任何JSON数据或类似的东西)。因此,如果您有response.setAttribute,即意味着您可以将浏览器的名称从Mozilla更改为Chrome,但这太疯狂了。
答案 2 :(得分:3)
当他们说request.setAttribute(Object,Object)时,它只是暗示属性的范围仅用于该请求,并且该属性在后续请求中不存在。