本文将通过一个具体的例子来展示Ajax的工作原理,通过与传统请求响应方式的对比展现Ajax中处理请求响应的不同方式。在这个示例程序中,所要完成的任务非常简单,仅仅需要输入一个姓名然后提交这个表单,在服务器端处理这个请求,然后在页面显示处理的结果,在下面的示例程序中,将展示通过传统方式和Ajax方式分别处理这个请求响应的具体过程。
传统方式:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
Insert title here
<% if(request.getParameter("name")!=null&&request.getParameter("name").length()>0) out.print("Hello "+request.getParameter("name")); %>
传统方式的实现方式是直接将表单提交到自身的页面,然后在服务器端经过编译后执行其中的Java代码。
Ajax方式:
页面代码
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
SayHello
name:
servlet代码
package servlets; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class SayHello extends HttpServlet { @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //设置生成文件的类型和编码格式 response.setContentType("text/xml;charset=UTF-8"); response.setHeader("Cache-Control", "no-cache"); PrintWriter out=response.getWriter(); String output=""; //处理接收到的参数,生成响应的XML文档 if(request.getParameter("name")!=null&&request.getParameter("name").length()>0) output="
Hello "+request.getParameter("name")+"
"; out.println(output); System.out.println(output); out.close(); } @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doPost(req,resp); } }
配置文件
SayHello
servlets.SayHello
SayHello
/SayHell
代码解析:
1.创建XMLHttpRequest
2.设置回调函数
3.初始化XMLHttpRequest组建并发送请求
4. 服务器返回响应信息
5. 解析服务器返回的信息,更新用户界面
详细调用过程如下

最终Ajax方式处理请求的效果是通过XMLHttpRequest对象向服务器发送请求,在得到服务器的返回的处理结果以后,文本框中的用户输入信息依然存在,使用Ajax只是刷新了页面的局部区域,把处理的结果展示在页面的指定位置,对于页面的其他部分不会进行刷新。
下一篇:XMLHttpRequest常用方法属性解析
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/205750.html原文链接:https://javaforall.net
