gpt4 book ai didi

spring - 为什么使用 HttpServletRequest 向浏览器发送响应?

转载 作者:行者123 更新时间:2023-12-01 14:33:47 24 4
gpt4 key购买 nike

我正在使用 Spring MVC 开发一个 Web 应用程序,但我提出了一个问题。
在我的应用程序中,如果我想将属性发送到 JSP 文件,我会执行以下操作:

    @RequestMapping("submitRestrictionPolicy")
public String submitRestrictionPolicy(HttpServletRequest req, HttpServletResponse resp) {
// Get parameters from form submit
String state = req.getParameter("checkBox");

// Set attributes to be sent to .jsp page
req.setAttribute("state", state);

return "restrictionPolicy";
}

这工作正常,我可以访问 JSP 文件中的属性“状态”并将其反射(reflect)在浏览器中。

现在我想知道为什么我们使用 HttpServletRequest 而不是 HttpServletResponse 因为根据我的理解,我们正在发送来自浏览器的请求的响应。我们不应该使用 HttpServletResponse 吗?我知道答案是否定的,因为 HttpServletResponse 中没有“setAttribute”方法。

如果使用 HttpServletRequest 为浏览器请求发送响应是正确的,那么 HttpServletResponse 的重要性是什么?

最佳答案

让我们看看事情是如何运作的......

客户端向网络服务器发送请求(HttpServletRequest)。此请求可能会从多个层传递(取决于您的应用程序),直到不再需要(HttpServletResponse 从服务器发送回客户端)。

在这些层中,您可以修改此 HttpServletRequest 对象并向其添加信息(属性)。然后,当您基于 HttpServletRequest 生成 HttpServletResponse 时,您可以利用从先前层传播的额外信息(这通常在 View 层中完成)。

现在更一般地了解 HttpServlet s 作品可能会回答你的最后一个问题。当在 web 容器(servlet 运行)上发出 http put/get/post/.. 请求时,该请求被包装在 HttpServletRequest 类型的对象中(这就是 specification 的样子)并包含信息来自您的客户。创建响应时,它被包装在一个 HttpServletResponse 对象中,该对象包含 Web 容器的响应数据(同样基于 specification)。

关于spring - 为什么使用 HttpServletRequest 向浏览器发送响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18871204/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com