利用ajax实现数据传输

  AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)。

  AJAX 不是新的编程语言,而是一种使用现有标准的新方法。

  AJAX 是与服务器交换数据并更新部分网页的艺术,在不重新加载整个页面的情况下。

  传递对象时,可以分为传输单个对象或者值,还有传递数组或集合。

首先新建一个数据层:

package com.bean;

public class Dog {
    private String name;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public String getCategory() {
        return category;
    }
    public void setCategory(String category) {
        this.category = category;
    }
    private int age;
    private String category;
}

新建一个servlet进行页面功能实现:

package com.servlet;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.bean.Dog;

/**
 * Servlet implementation class Testajax1
 */
@WebServlet("/testajax1")
public class Testajax1 extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#HttpServlet()
     */
    public Testajax1() {
        super();
        // TODO Auto-generated constructor stub
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        //response.getWriter().append("Served at: ").append(request.getContextPath());
        request.setCharacterEncoding("utf-8");
        response.setCharacterEncoding("utf-8");
        Dog d = new Dog();
        d.setName("小白");
        d.setAge(3);
        d.setCategory("土狗");

        response.getWriter().append("<?xml version=‘1.0‘?>");
        response.getWriter().append("<pet>");
        response.getWriter().append("<name>"+d.getName()+"</name>");
        response.getWriter().append("<name>"+d.getAge()+"</name>");
        response.getWriter().append("<name>"+d.getCategory()+"</name>");
        response.getWriter().append("</pet>");

    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        doGet(request, response);
    }

}

新建jsp页面实现ajax:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
<script type="text/javascript" src="js/jquery-1.11.1.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
    $("#d1").click(function(){
        $.ajax({
            url:"testajax1",
            data:{},
            type:"POST",
            dataType:"XML",
            success:function(httpdata){
                var n = $(httpdata).find("name").text();
                var a = $(httpdata).find("age").text();
                var c = $(httpdata).find("category").text();

                $("#d2").append("<p>"+n+"</p>");
                $("#d2").append("<p>"+a+"</p>");
                $("#d2").append("<p>"+c+"</p>");
            }
        });
    });

});

</script>
</head>
<body>
<div id="d1">aaaa</div>
<div id="d2"></div>
</body>
</html>

效果如下:

取数组或集合时:

package com.servlet;

import java.io.IOException;
import java.util.ArrayList;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.bean.Dog;

/**
 * Servlet implementation class Testajax2
 */
@WebServlet("/testajax2")
public class Testajax2 extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#HttpServlet()
     */
    public Testajax2() {
        super();
        // TODO Auto-generated constructor stub
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        //response.getWriter().append("Served at: ").append(request.getContextPath());
        request.setCharacterEncoding("utf-8");
        response.setCharacterEncoding("utf-8");
        Dog d1 = new Dog();
        d1.setName("狗1");
        d1.setAge(1);
        d1.setCategory("品种1");
        Dog d2 = new Dog();
        d2.setName("狗2");
        d2.setAge(2);
        d2.setCategory("品种2");
        Dog d3 = new Dog();
        d3.setName("狗3");
        d3.setAge(3);
        d3.setCategory("品种3");

        ArrayList<Dog> list = new ArrayList<Dog>();
        list.add(d1);
        list.add(d2);
        list.add(d3);

        response.getWriter().append("<?xml version=‘1.0‘?>");
        response.getWriter().append("<pet>");

        for(Dog d:list){
            response.getWriter().append("<dog name=‘"+d.getName()+"‘>");

            response.getWriter().append("<age>"+d.getAge()+"</age>");
            response.getWriter().append("<category>"+d.getCategory()+"</category>");
            response.getWriter().append("</dog>");
        }

        response.getWriter().append("</pet>");

    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        doGet(request, response);
    }

}
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
<script type="text/javascript" src="js/jquery-1.11.1.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
    $("#d1").click(function(){

        $.ajax({
            url:"testajax2",
            data:{},
            type:"POST",
            dataType:"XML",
            success:function(httpdata){
                var dogs = $(httpdata).find("dog");
                for(var i=0;i<dogs.length;i++){
                    var n =$(dogs).eq(i).attr("name");
                    var a =$(dogs).eq(i).find("age").text();
                    var c =$(dogs).eq(i).find("category").text();

                    var tr ="<tr>";
                    tr+="<td>"+n+"</td>";
                    tr+="<td>"+a+"</td>";
                    tr+="<td>"+c+"</td>";
                    tr+="</tr>";
                    $("#tb").append(tr);
                }

            }
        });
    });
});
</script>
</head>
<body>
<div id="d1">11111</div>
<table id="tb" width="100%" cellpadding="5" cellspacing=‘1‘ border="0">
</table>
</body>
</html>

效果如下:

时间: 2024-07-30 20:05:49

利用ajax实现数据传输的相关文章

Struts2.5 利用Ajax将json数据传值到JSP

AJAX +JSON=>JSP AJAX AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术. 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新.这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新. 传统的网页(不使用 AJAX)如果需要更新内容,必须重载整个网页页面. JSON JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式.它基于 ECMAScript (w3c制定的js规范

利用ajax短轮询+php与服务器交互制作简易即时聊天网站

主流的Web端即时通讯方案大致有4种:传统Ajax短轮询.Comet技术.WebSocket技术.SSE(Server-sent Events). 本文主要介绍ajax短轮询的简易实现方式. 看懂此文需要:ajax基础,php基础,sql基础,html/jquery基础 ---------------------------- 本人也是web新手,今天听说女票在学websocket,还做了个简易的网站利用广播和我通信.但是刷新一下数据就没了.. 我觉得这个还是挺有意思的,,就想着能不能做一个刷新

利用ajax查找数据库

利用ajax数据库 利用AJAX查询数据 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http

使用base64对图片的二进制进行编码,使其可以利用ajax进行显示

有时候我们需要动态的将图片的二进制在页面上进行显示,如我们需要弄一个验证码的功能,那么如果我们的验证码的图片在后台得到的是该图片的二进制,那么当我们需要在页面上点击一个按钮利用ajax进行切换的时候,如果在后台直接返回的是该图片的二进制,那么该图片是无法进行显示的. 直接返回字节流给img标签的src是可以的,如<img src="servlet/CheckCode">,但在之后进行切换的时候 使用ajax请求,如果仅仅返回图片的二进制然后把它传给img的src是不能的,目

利用ajax无刷新验证注册信息

其大概思路如下: 一.把注册的html页面做好(html+css) 1.不需要form表单,直接用div包着 2.需要四个标签来显示正确.错误的信息显示 3.不用submit提交按钮,直接用button 如图: 二.把ajax做成一个函数,通过传简单的参数可以与服务器进行数据交换. 1.这个ajax函数前面有一篇如何处理利用ajax处理返回数据的文章中详细说明了. 2.ajax函数需要三个参数,url,jsonData,getMsg.这里的url都是regProcess.php,jsonData

Jquery利用ajax调用asp.net webservice的各种数据类型(总结篇)

原文:Jquery利用ajax调用asp.net webservice的各种数据类型(总结篇) 老话说的好:好记心不如烂笔头! 本着这原则,我把最近工作中遇到的jquery利用ajax调用web服务的各种数据类型做了一个总结! 本文章没有什么高难度技术,就是记录一下,汇总一下,以便以后需要时查看! 本总结牵涉的数据类型,主要有: string,int这样的基本数据类型 ClassA这样的自定义类 List<ClassA>这样的集合类型 Dictionary这样的字典类型数据 DataSet这样

[前端引用] 利用ajax实现类似php include require 等命令的功能

利用ajax实现类似php include require 等命令的功能 需求介绍 在写页面的时候,一个导航可能N页面要用到,每一个页面都需要复制粘贴一份进去,一旦有改动html代码的需求就苦逼了,每个都得改一遍.如果这个需求还很多,反复改,那简直就是折磨人啊(虽然这种情况一般的情况下遇不到,但是偶老是遇到.) 直接看代码 <script id="ajax-header" type="text/javascript"> //通过js创建外层div $(&

javaweb利用ajax使登录窗口不跳转页面实现对账号密码的判断

和上一篇判断用户名是否被占用不跳转页面类似!利用ajax实现跳转,要导入jquery文件库!具体代码我会贴出来,注释在里面!!可以观摩一手!(代码我也留下链接,如果失效,评论补发,代码可能导入也无法使用!!你们要自己配置一下路径,或者自己建文件复制粘贴吧!) login.jsp <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <%@ pa

利用ajax异步校验验证码(转)

利用ajax异步校验验证码 示例结果如图所示 具体步骤如下: step1: jsp页面及js脚本 [html] view plain copy print? <%@page pageEncoding="utf-8" contentType="text/html; charset=utf-8" %> <html> <head> <title>form</title> <script type="