Java学习--Ajax介绍及使用

一、使用Ajax

1、什么是ajax?

是一种用来改善用户体验的技术,本质上是利用浏览器提供的一个
     特殊对象(XMLHttpRequest对象,一般也可以称之为ajax对象)向
     服务器发送异步请求;服务器返回部分数据,浏览器利用这些数据
     对当前页面做部分更新;整个过程,页面无刷新,不打断用户的操作。
     注:
         异步请求,指的是,当ajax对象发送请求时,浏览器不会销毁
     当前页面,用户仍然可以对当前页面做其它操作

2、获取ajax对象

function getXhr(){
        var xhr = null;
        if(window.XMLHttpRequest){
            //非ie浏览器
            xhr = new XMLHttpRequest();
        }else{
            xhr = new ActiveXObject(‘MicroSoft.XMLHttp‘);
        }
        return xhr;
    }

3、ajax对象的几个重要属性

onreadystatechange: 绑订事件处理函数,用来处理readystatechange
         事件。
         注:当ajax对象的readyState属性值发生了任何的改变,比如
         从0变成了1,就会产生readystatechange事件。
     readyState:有5个值(分别是0,1,2,3,4),用来获取ajax对象与服务
         器通信的进展。其中,4表示ajax对象已经获得了服务器返回的所
         有的数据。
     responseText:获得服务器返回的文本数据。
     responseXML:获得服务器返回的xml数据。
     status:获得状态码。

4、编程步骤

step1. 获得ajax对象
         比如   var xhr = getXhr();

step2. 调用ajax对象的方法,发送请求
         方式一 get请求
         xhr.open(‘get‘,‘check.do?adminCode=king‘,true);
         xhr.onreadystatechange = f1;
         xhr.send(null);
         注:
             true: 异步 (浏览器不会销毁当前页面,用户仍然可以
                     对当前页面做其它操作)
             false:同步 (浏览器不会销毁当前页面,但是会锁定当前
                     页面,用户不能够对当前页面做任何操作)。

方式二 post请求
                 xhr.open(‘post‘,‘check.do‘,true);
                 xhr.setRequestHeader(‘content-type‘,
                                  ‘application/x-www-form-urlencoded‘);
                 xhr.onreadystatechange = f1;   
                 xhr.send(‘adminCode=king‘);
         注(了解):
             按照http协议要求,如果发送的是post请求,应该包含有
             content-type消息头,但是,ajax默认不会带这个消息头,
             所以,需要调用setRequestHeader方法来添加这个消息头。

step3. 编写服务器端的程序
         注:不需要返回完整的页面,只需要返回部分数据。
     step4. 编写事件处理函数
         if(xhr.readyState == 4 &&
             xhr.status == 200){
             //ajax对象已经获得了服务器返回的所有数据,
             //而且服务器处理正确。
             var txt = xhr.responseText;
             页面更新...
         }

二、Ajax的使用问题

1. 编码问题

(1)get请求
     1)为什么会有乱码?
     ie浏览器提供的ajax对象,在发送get请求时,会对中文参数
     值使用"gbk"来编码,其它浏览器会使用"utf-8"来编码。服务器
     端默认会使用"iso-8859-1"来解码。所以会有乱码。
     2)如何解决?
         step1. 服务器端,统一使用"utf-8"来解码。
         可以修改
             <Connector URIEncoding="utf-8" />
         step2.客户端,使用encodeURI函数对中文参数值进行编码。
         注:
             encodeURI函数是javascript内置的函数,会使用"utf-8"
             来编码。(

//step2. 发送请求
var uri = ‘check.do?adminCode=‘
    + $F(‘adminCode‘);

xhr.open(‘get‘,encodeURI(uri),true);

)

(2)post请求   
     1)为什么会有乱码?
     浏览器提供的ajax对象在发送post请求时,对中文参数值会使用
     "utf-8"来编码,而服务器端会使用"iso-8859-1"来解码。(在servlet添加request的方法)
     2)如何解决?
         request.setCharacterEncoding("utf-8")

原文地址:https://www.cnblogs.com/xhwr/p/10674378.html

时间: 2024-07-31 14:35:03

Java学习--Ajax介绍及使用的相关文章

JAVA学习日志——Ajax和Json

# JAVA学习日志--Ajax和Json # Ajax和Json在一个web项目中可以说是经常用到了,Ajax是一种用于创建快速动态网页的技术,而Json则是一种与语言无关的数据交换的格式.以下是个人在学习过程中的总结. 一.Ajax 1.同步与异步 在学习Ajax之前我们要先知道什么是同步,什么是异步. 同步现象:客户端发送请求到服务器端,当服务器返回响应之前,客户端都处于等待卡死状态. 异步现象:客户端发送请求到服务器端,无论服务器是否返回响应,客户端都可以随    意做其他事情,不会被卡

Java远程技术介绍学习

Java远程技术介绍学习 RMI [既Remote Method Invoke 远程方法调用] 实现方式为,类extend了java.rmi.Remote接口,即成为存在于服务器端的远程对象,提供客户端访问. PS: extends了Remote接口的类或者其他接口中的方法若是声明抛出了RemoteException异常,则表明该方法可被客户端远程访问调用. 同时,远程对象必须实现java.rmi.server.UniCastRemoteObject类,这样才能保证客户端访问获得远程对象时,该远

2016最新Java学习计划

一.Java学习路线图 二.Java学习路线图--视频篇 六大阶段 学完后目标 知识点 配套免费资源(视频+笔 记+源码+模板) 密码        第一阶段 Java基础 入门 学习周期: 35天 学完后目标: 1.可进行小型应用程序开发 2.对数据库进行基本的增删改查管理 市场价值:¥5000 计算机基础知识 计算机基础.DOS常用命令.Java概述.JDK环境安装配置.环境变量配置.Java程序入门 1.2015年Java基础视频-深入浅出精华版(强烈推荐) 2.历经5年锤炼(适合初学者入

(转)如何学习Java技术?谈Java学习之路

51CTO编者注:这篇文章已经是有数年“网龄”的老文,不过在今天看来仍然经典.如何学习Java?本篇文章可以说也是面对编程初学者的一篇指导文章,其中对于如何学习Java的步骤的介绍,很多也适用于开发领域其他技能的学习. [在原先<学好Java之我见>的基础上重新整理而成] Java - 近10年来计算机软件发展过程中的传奇,其在众多开发者心中的地位就如“屠龙刀”.“倚天剑”. Java是个平台,我只想说说我对学好Java的一点看法,希望对初学者有所帮助. 1. 思考一下 学习Java之前,先别

最全Java学习路线图——Java学习指南

准备篇 适用/适合人群:适合基础小白 目标:掌握JavaSE. ●技术点小节: 1.开发工具的安装配置的介绍 2.JDK安装 3.DOS环境编程 4.Eclipse的安装使用 ●JAVA基础 1.基本的语法规范 2.数据类型 3.流程控制 4.函数 ●初识JavaOOP 1.类,对象,面向编程思想 2.字符串类 3.随机数 4.正则表达式 5.递归的使用 ●JavaOOP基础 1.JavaOOP之封装 2.JavaOOP之继承 3.JavaOOP之多态 4.Java访问修饰符 5.Java接口

Java学习流程图(学习路线、书籍、教程推荐)

Java的火爆袭来,吸引了大批的初学者涉猎,想入行Java,却苦于自己没有基础,担心学不好.我告诉你,这些担心都是浮云,你只是惧怕走进一个新天地,人都是一样的,面对自己不熟悉的领域总会有莫名的恐惧感.不是不可以,只是你缺乏的是勇敢迈出去的勇气. 最近整理了一份关于Java自学的学习路线图.书籍推荐.视频教程,希望帮助每一位想学习Java的小伙伴快速成长为Java开发工程师. 第一阶段:Java基础 Java开发介绍 Java数组 Java面向对象 常用基础类 集合 IO流 多线程 异常 网络 反

十年架构师留下最完整的Java学习路线,学完年薪40W

文章有点长,请大家耐心看完,话不多说直接上干货! 永不过时的编程语言--Java 编程开发. Java编程语言占比: 据官方数据统计,在全球编程语言工程师的数量上,Java编程语言以900万的程序员数量位居首位. 而且很多软件的开发都离不开Java编程,因此其程序员的数量最多.而在以Java编程为核心的开发领域中,javaEE程序员的需求量10年来一直居于首位!创一个小群,供大家学习交流聊天如果有对学java方面有什么疑惑问题的,或者有什么想说的想聊的大家可以一起交流学习一起进步呀.也希望大家对

努力让java学习系统化

这段日子接手一社区系统的开发,开发过程中感觉到自己接触到的和所作的多是业务逻辑性开发,对java开发到现在还没有一个清晰明确的路线,我越来越感觉到问题的重要性. 问题一:代码只注重了功能实现,对代码性能考虑不周,代码结构混乱,业务代码多不符合SHY原则,导致代码反而处处粘贴,浪费也不少时间,影响了美观性. 问题二:对Java学习还不够系统,对于其中的原理了解的不透彻,知识结构不透彻.无法从全面把握问题. 问题三:工作事情分配上要分清主次,未安排规划,随意性比较大.日后工作要注意简单重要的事首先做

Java学习系列

本系列博客记录本人学习java过程.本系列不打算面面俱到的介绍java,只是记录自己快速学习java记录以及提供帮助.通过记录自己的学习,以便以后自己能够快速的回顾.同时希望能帮助到学习java的初学者,如果是大牛看到不合适的地方希望能提出宝贵的意见和建议. 目录 Java学习之一java简介 Java学习之二环境搭建 参考: [韩顺平]Java从入门到精通