通过上一节的学习,基本了解Ajax的使用,

但是这样使用很麻烦,这里封装ajax为一个方法,作为一个ajax工具,传入相应参数就可以实现ajax的使用。

模仿jQuery的Ajax。

如下是jQuery的Ajax使用,只需要传入相应参数,即可实现Ajax

第一步:创建Ajax工具类:

function createXMLRequst(){
try{
return new XMLHttpRequest();
}catch(e)
{
try{
return new ActiveXObject("Msxml2.XMLHTTP");
}catch(e){
try{
return new ActiveXObject("Microsoft.XMLHTTP");
}catch(e){
alert("不支持浏览器版本");
throw e;
}
}
}
} function ajax(option)
{
var xmlHttp=createXMLRequst();
//打开链接
if(!option.method)//默认get
{
option.method="GET";
}
if(option.asyn==null)//默认为异步处理
{
option.asyn=true;
} xmlHttp.open(option.method,option.url,option.asyn); //POST需要设置请求头
if(option.method=="POST")
{
xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
}
//发送请求,加上请求参数
xmlHttp.send(option.params);
//给异步对象的onreadystatechange事件注册监听器
xmlHttp.onreadystatechange=function()
{
//双重判断,判断是否为4的状态,并且响应状态码为:200
if(xmlHttp.readyState==4 && xmlHttp.status==200)
{
var data;
if(!option.type){
data=xmlHttp.responseText;
}else if(option.type=="xml"){
data=xmlHttp.responseXML;
}else if(option.type=="text"){
data=xmlHttp.responseText;
}else if(option.type=="json"){
var text=xmlHttp.responseText;
data=eval("("+text+")");
}
//调用回调函数
option.callback(data);
}
}
}

第二步:在jsp中引入该脚本,同时调用脚本中的ajax()方法,实现Ajax。

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!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=UTF-8">
<!-- 地址可以使用以下方式,也可直接写url
<script type="text/javascript" src="/AjaxDemo/ajax_lib/ajaxUtils.js"></script>
引入Ajax工具脚本   -->
<script type="text/javascript" src="<c:url value='/ajax_lib/ajaxUtils.js'/>" ></script>
<script type="text/javascript">
window.onload=function(){ //文档加载完毕后执行
var btn=document.getElementById("btn");
btn.onclick=function(){
ajax(
{
url:"/AjaxDemo/JsonAjax",
type:"json",
callback:function(data){
document.getElementById("h3").innerHTML=data.name+","+data.age+","+data.sex;
}
}
);
}
}
</script>
<title>测试Ajax工具</title>
</head>
<body> <h3>测试Ajax工具</h3>
<button id="btn">点击测试Ajax工具</button>
<h3 id="h3"></h3>
</body>
</html>

第三步:编写该Ajax调用的servlet:向客户端返回json字符串

package com.Ajax;

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; @WebServlet("/JsonAjax")
public class JsonAjax extends HttpServlet {
private static final long serialVersionUID = 1L; public JsonAjax() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
//向客户端返回数据,由Ajax获取
response.getWriter().print("{\"name\":\"张三\",\"age\":\"32\",\"sex\":\"男\"}");
} protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
} }

运行结果:

Ajax学习(二):模仿jQuery的Ajax封装工具的更多相关文章

  1. 原生态AJAX详解和jquery对AJAX的封装

    AJAX: A :Asynchronous [eI`sinkrenes] 异步 J :JavaScript    JavaScript脚本语言 A: And X :XML 可扩展标记语言 AJAX现在 ...

  2. jQuery学习笔记之jQuery的Ajax(3)

    jQuery学习笔记之jQuery的Ajax(3) 6.jQuery的Ajax插件 源码地址: https://github.com/iyun/jQueryDemo.git ------------- ...

  3. 【jQuery基础学习】05 jQuery与Ajax以及序列化

    好吧,这章不像上章那么水了,总是炒剩饭也不好. 关于AJAX 所谓Ajax,全名Asynchronous JavaScript and XML.(也就异步的JS和XML) 简单点来讲就是不刷新页面来发 ...

  4. Ajax请求(二)--JQuery的Ajax请求方法

    JQuery库的Ajax请求的几种方法: 1. load( url, [data], [callback] ) :载入远程 HTML 文件代码并插入至 DOM 中. 参数含义: url (String ...

  5. ajax系列之用jQuery的ajax方法向服务器发出get和post请求

    打算写个ajax系列的博文,主要是写给自己看,学习下ajax的相关知识和用法,以更好的在工作中使用ajax. 假设有个网站A,它有一个简单的输入用户名的页面,界面上有两个输入框,第一个输入框包含在一个 ...

  6. Ajax学习笔记之一----------第一个Ajax Demo[转载]

    原文地址: http://www.cnblogs.com/pjx412/archive/2011/05/04/2037014.html 一.核心推动力:XMLHttpRequest对象XMLHttpR ...

  7. ajax学习笔记(原生js的ajax)

    ajax是一个与服务器端语言无关的技术,可以使用在任何语言环境下的web项目(如JSP,PHP,ASP等). ajax优点: 1) 页面无刷新的动态数据交互 2) 局部刷新页面 3) 界面的美观 4) ...

  8. Ajax学习总结(1)——Ajax实例讲解与技术原理

    摘要:AJAX即"Asynchronous Javascript And XML"(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术.AJAX 是一种用 ...

  9. Ajax学习(一)——与Ajax的初次相识

        AJAX是"Asynchronous Javascript And XML"的缩写,从字面上解释是"异步JavaScript和XML"的简称. 它不是一 ...

随机推荐

  1. JAVAWEB开发之HttpServletResponse和HttpServletRequest详解(下)(各种乱码、验证码、重定向和转发)

    HttpServletRequest获取请求头信息  (1)获取客户机请求头 String getHeader(String name) Enumeration<String> getHe ...

  2. Git: Push rejected 的解决方案

    Push rejected: Push to origin/master was rejected 首先,git init (在工程文件夹下) git remote add [-t <branc ...

  3. HipHop PHP & HHVM资料收集

    百度百科 HipHop PHP实战(详解web运行模式) 百度 PHP7和HHVM的性能之争

  4. @Autowired用法详解

    @Autowired 注释,它可以对类成员变量.方法及构造函数进行标注,完成自动装配的工作. 通过 @Autowired的使用来消除 set ,get方法.在使用@Autowired之前,我们对一个b ...

  5. go语言之进阶篇拷贝文件案例

    1.文件案例:拷贝文件 示例: package main import ( "fmt" "io" "os" ) func main() { ...

  6. sgd学习率选择问题

    关于使用SGD时如何选择初始的学习率(这里SGD是指带动量的SGD,momentum=0.9): 训练一个epoch,把学习率从一个较小的值(10-8)上升到一个较大的值(10),画出学习率(取log ...

  7. layer.tips定义弹出的宽度

    layer.tips('xxx', '.onlinetest', { tips: [1, '#3595CC'], area: ['500px', 'auto'], time: 4000 });

  8. 揭秘uc浏览器三

    这节我们主要讨论收藏与历史记录页面的边边角角. 首先,看看他的最终的效果图了: 照例了,我们先看看他的布局文件: <!-- tab布局文件 --> <TabHost xmlns:an ...

  9. java 使用AXIS调用远程的web service

    1.服务 2.代码 import javax.xml.namespace.QName; import org.apache.axis.client.Call; import org.apache.ax ...

  10. 如何使用Android studio打开eclipse项目

    转: http://blog.csdn.net/zcw93219/article/details/50770445