gpt4 book ai didi

java - 使用 Java 进行 AJAX : How is HttpServletResponse Affected?

转载 作者:行者123 更新时间:2023-12-01 15:39:47 25 4
gpt4 key购买 nike

我正在同时学习 AJAX 和 Java Servlet API(嗯,Spring MVC,基于 Servlet),并且相信我已经理解了大部分基础知识,除非它了解当服务器/Servlet 响应 HTTP GET/POST(就像正常页面请求一样)时,HttpServletResponse 的结构/组织/填充方式不同:与基于 AJAX 的 XmlHttpRequest 相反。

在我看来,在没有 AJAX 的情况下,每个 HttpServletResponse 将只包含页面的完整 HTML(加上 header /元数据/等信息)。通过 AJAX,异步 XmlHttpRequests 可用于更新特定页面内的特定组件。因此,如果我正确理解 HTTP 和 Servlet,对 http://www.example.com/some-page.html 的请求可能会产生包含以下正文的 HttpServletResponse:

<html>
<header><title>Title of the page</title></header>
<body>
<!-- Some massive amount of HTML -->

<a href="./foo.html">This is a link</a>

<!-- Lots more HTML -->
</body>
</html>

然而,对于 AJAX 请求,HttpServletRequest 可能会以某种方式发送回信息,以便链接(来自上面的示例)现在呈现为:

<a href="./bar.html">This is a new link that point to bar</a>

我的问题是:Java Servlet 如何构造 HttpServletRequests 来处理整页请求以及可能仅对页面部分内容产生更改的 AJAX 请求?

作为一个类似但独立的问题,客户端(浏览器)如何知道获取 HTTP 响应(由 Servlet 发回)并渲染整个新页面或仅更新页面的一小部分。

预先感谢您对此事的澄清。

最佳答案

I am understanding most of the basics, except when it comes to understanding how HttpServletResponse is structured/organized/populated differently when the server/Servlet is responding to an HTTP GET/POST (as it would with a normal page request) as opposed to an AJAX-based XmlHttpRequest.

我认为您的困惑源于对 AJAX 请求和非 AJAX 请求的根本不同的思考。首先,了解什么是 AJAX 很重要。来自 wikipedia :

Despite the name, the use of XML is not needed (JSON is often used instead), and the requests do not need to be asynchronous.

我还要补充一点,除了 JavaScript 之外,还可以使用其他一些浏览器脚本语言。所以这个名字绝对没有告诉你什么。 “AJAX”基本上只是意味着 HTTP 请求是从浏览器中的脚本启动的,而不是源自某人在地址栏中键入 URL 的请求。

因此,生成 HTTP 请求的脚本代码可以选择处理服务器发送的任何 HTTP 响应,也可以忽略它。请求是如何生成的——“AJAX”或非“AJAX”,不需要对返回的 HTTP 响应有任何影响。

关于java - 使用 Java 进行 AJAX : How is HttpServletResponse Affected?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8250479/

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