究竟是什么Ajax请求?它与Servlet请求不同吗?

use*_*924 23 java ajax

任何人都可以告诉我.究竟是什么Ajax请求?它与Servlet请求不同吗?

cle*_*tus 51

Ajax调用是由浏览器启动的异步请求,不会直接导致页面转换.servlet请求是Java特定术语(servlet是Java规范),用于为可能获得简单GET或POST(等)或Ajax请求的HTTP请求提供服务.

Ajax("异步Javascript和XML")请求有时被称为XHR请求("XmlHttpRequest"),这是大多数浏览器为用于发送Ajax请求的对象提供的名称,因为至少最初的Ajax调用涉及发送和接收XML现在和发送/接收JSON,纯文本或HTML一样普遍.

Ajax请求的一个很好的例子是Stackoverflow上的注释系统.您可以在文本框中输入注释,然后单击"提交".它不提交整个页面(就像传统的HTML表单提交一样,通常转换为POST但有时转换为GET HTTP请求).相反,浏览器可能会通过XHR向服务器发送POST请求,并通知响应(因此"异步").但是服务器通常无法区分Ajax请求或页面转换,因为两者都只是归结为HTTP请求.

  • “但是服务器通常无法区分 Ajax 请求或页面转换” - 大多数 Ajax 请求都是使用标头 X-Requested-With: XMLHttpRequest 发送的,因此服务器可以基于此假设它是 Ajax 请求标头 (4认同)

sap*_*sap 8

Ajax,或异步JavaScript和XML,是一种Web应用程序开发方法,它使用客户端脚本与Web服务器交换数据.因此,网页会动态更新,而不会在整个页面刷新过程中中断交互流程.

使用Ajax,您可以创建更丰富,更动态的Web应用程序用户界面.客户端.另一方面,servlet请求在服务器端处理来自UI的请求.

当访问者请求页面时,服务器将立即发送完整的HTML和CSS代码.在访问者填写表单并提交之后,服务器处理信息(Servlet Request对象向servlet提供客户端请求信息.servlet容器创建ServletRequest对象并将其作为参数传递给servlet的服务方法)并重建页.然后它将整页发送回客户端.等等.

使用AJAX时,页面在第一次请求时仅完全加载一次.除了构成页面的HTML和CSS代码之外,还下载了一些JavaScript文件:AJAX引擎.然后,所有对服务器的数据请求都将作为JavaScript调用发送到此引擎.然后,AJAX引擎异步请求来自Web服务器的信息(servlet请求对象包含已更改的请求参数).因此,仅请求小页面位并将其发送到浏览器,因为用户需要它们.然后引擎显示信息而不重新加载整个页面.这导致响应更快的接口,因为只有必要的信息在客户端和服务器之间传递,而不是整个页面.

有关ajax实现的更多信息,请参阅http://www.ibm.com/developerworks/library/j-ajax1/


Ste*_*n C 6

问题在于,就像 IT 1中使用的许多术语一样,“AJAX 请求”或“Servlet 请求”没有明确的定义。我能想到的最好的办法如下:

  • AJAX 是“异步 Javascript 和 XML”的缩写,但如今该术语已扩展为包括 JSON 或 YAML 以及 XML。关键思想是嵌入网页中的逻辑(在 Javascript 中)将异步 HTTP 请求发送回“主”服务器以请求更多信息,而不是触发整个网页的刷新。

  • AJAX 请求是AJAX 应用程序发出的请求。通常,它是由(驻留在浏览器的)Javascript 发出的 HTTP 请求,该请求使用 XML 对请求数据和/或响应数据进行编码。在 Javascript 中发出 AJAX 请求的标准方法是使用 XmlHttpRequest 对象,但这是一个实现细节……对于 AJAX 的定义来说并不是基础。

  • Servlet 请求是向 Servlet发出的请求。理论上,它甚至不需要是 HTTP 请求,因为 Servlet 技术(理论上)也被设计为可以在其他协议上工作。在我看来,这不是一个特别有用的术语。

所以... AJAX 请求可以是 Servlet 请求,也可以不是,Servlet 请求可以是 AJAX 请求,也可以不是。

值得指出的是,有一个名为 的 Java 接口ServletRequest,它构成了 J2EE API 的一部分。该接口是一种对象类型,用于在基于 J2EE 的 Web 应用程序容器中传递 Web 请求的详细信息。因此,当您看到有人使用术语“Servlet 请求”时,他们实际上可能在谈论一个ServletRequest实例。


1 - 实际上,这与任何其他自然语言没有什么不同。单词和短语的含义取决于人们如何使用它们,而不是基于您在字典中找到的任何定义。字典的“定义”往往是在单词或短语开始普遍使用几年或几十年后才出现,它根据单词的使用方式(或过去的使用方式)给出含义,而不是含义的说明。


zne*_*eak 0

AJAX 请求是从客户端发出的(使用 Javascript),而 servlet 请求是从服务器发出的(我想是使用 Java)。

我建议你在维基百科或其他地方查找它。