Ajax原理

Ajax原理本文将通过一个具体的例子来展示 Ajax 的工作原理 通过与传统请求响应方式的对比展现 Ajax 中处理请求响应的不同方式 在这个示例程序中 所要完成的任务非常简单 仅仅需要输入一个姓名然后提交这个表单 在服务器端处理这个请求 然后在页面显示处理的结果 在下面的示例程序中 将展示通过传统方式和 Ajax 方式分别处理这个请求响应的具体过程 传统方式 pagelanguage java conte

本文将通过一个具体的例子来展示Ajax的工作原理,通过与传统请求响应方式的对比展现Ajax中处理请求响应的不同方式。在这个示例程序中,所要完成的任务非常简单,仅仅需要输入一个姓名然后提交这个表单,在服务器端处理这个请求,然后在页面显示处理的结果,在下面的示例程序中,将展示通过传统方式和Ajax方式分别处理这个请求响应的具体过程。

传统方式:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>


    
     
     
   
   
   
   
   
    
    Insert title here 
    
name:
<% 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原理

最终Ajax方式处理请求的效果是通过XMLHttpRequest对象向服务器发送请求,在得到服务器的返回的处理结果以后,文本框中的用户输入信息依然存在,使用Ajax只是刷新了页面的局部区域,把处理的结果展示在页面的指定位置,对于页面的其他部分不会进行刷新。

下一篇:XMLHttpRequest常用方法属性解析











版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/205750.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 下午5:17
下一篇 2026年3月19日 下午5:17


相关推荐

  • Java堆结构PriorityQueue完全解析

    Java堆结构PriorityQueue完全解析在堆排序这篇文章中千辛万苦的实现了堆的结构和排序,其实在Java1.5版本后就提供了一个具备了小根堆性质的数据结构也就是优先队列PriorityQueue。下面详细了解一下PriorityQueue到底是如何实现小顶堆的,然后利用PriorityQueue实现大顶堆。PriorityQueue的数据结构PriorityQueue的逻辑结构是一棵完全二叉树,存储结构其实是一个数组。逻辑结构层次遍历的

    2022年4月29日
    46
  • ubuntu镜像下载教程_Ubuntu镜像

    ubuntu镜像下载教程_Ubuntu镜像在众多的linux操作系统中,Ubuntu(乌班图)是目前主流的linux操作系统。而绝大部分新手网友要接触linux或使用linux操作系统,当然是首选Ubuntu(乌班图)linux操作系统。因为Ubuntu系统绝大部分是图形化操作,很少会使用到命令,同时在linux操作系统中支持Ubuntu系统的软件、游戏也最多。Ubuntu官方网站:http://www.ubuntu.com/downl

    2025年6月26日
    7
  • 数据结构和算法——线性表

    数据结构和算法——线性表

    2022年3月2日
    38
  • linux下 VSCode快捷键

    linux下 VSCode快捷键文章目录一、常用二、全部1、常规2、基本编辑3、richlanguagesediting4、多光标和选择5、显示6、搜索与替换7、导航8、编辑页面管理9、文件管理10、终端一、常用命令作用Ctrl+,用户设置Alt+↑/↓将当前行上移或下移Ctrl+Shift+K删除行Ctrl+Shift+\跳至相匹配的括号处Ctrl+Shift+[/Ctrl+Shift+]折叠/展开当前代码块Ctrl+KCtrl+0折叠所有代码块Ctrl+

    2022年4月30日
    93
  • openwrt旁路由设置的正确方式

    openwrt旁路由设置的正确方式最近在玩旁路由,踩了一些坑,也学习了点相关知识,特整理记录下。一、旁路由的配置上图是旁路由的连接方式,一般作为旁路由的只有一个LAN口,让他们ip在一个网段即可比如主路由网关192.168.0.1,旁路由配置成192.168.0.21.主路由配置:手动指定LAN为192.168.0.1。#DHCP配置中把网关和DNS改成旁路由ip地址,如192.168.0.2。2.旁路由配置:关闭DHCP,把网关改成主路由地址,如192.168.0.1,关闭桥接模式.采用路由模式。这样配置后,网络流量如下图

    2022年6月13日
    401
  • Linux 服务器环境搭建及配置[通俗易懂]

    Linux常用命令查看进程: 方式一: ps-ef|grep端口号/名称 方式二: netstat-apn|grep端口号/名称杀死进程: kill-9PID使用vi或vim命令打开、关闭、保存文件1、vi&vim有两种工作模式:​ (1)命令模式:接受、执行vi&vim操作命令的模式,打开文件后的默认模式;​ (…

    2022年4月9日
    37

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号