java实现ajax_Ajax&Java

java实现ajax_Ajax&JavaAJAX即“AsynchronousJavascriptAndXML”(异步JavaScript和XML)是一种基于浏览器的XMLHttpRequest对象实现的创建交互式网页应用的网页开发技术。用JS创建XMLHttpRequest对象并调用其方法实现基本的Ajax请求:xmlhttp=newXMLHttpRequest();//创建XMLHttpRequest对象…

大家好,又见面了,我是你们的朋友全栈君。

AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML)

是一种基于浏览器的XMLHttpRequest对象实现的创建交互式网页应用的网页开发技术。

用JS创建XMLHttpRequest对象并调用其方法实现基本的Ajax请求:

xmlhttp = new XMLHttpRequest(); //创建XMLHttpRequest对象

xmlhttp.onreadystatechange = f; //设置请求完成后的回调函数

xmlhttp.open(“GET”, url, true); //打开指定的url

xmlhttp.send(); //发送请求

这发送的是一个GET请求,如果要发送POST请求要记得设置请求投(GET请求数据可以通过url附加,POST请求可以发送时附加)

xmlhttp = new XMLHttpRequest(); //创建XMLHttpRequest对象

xmlhttp.onreadystatechange = f; //设置请求完成后的回调函数

xmlhttp.open(“POST”, url, true); //打开指定的url

xmlhttp.setRequestHeader(“Content-type”, “application/x-www-form-urlencoded”) //设置请求头

xmlhttp.send(data); //发送请求,并附加数据

注意:回调函数务必在发送请求前设置

回调函数的内容:

if (xmlhttp.readyState == 4) {

if (xmlhttp.status == 200) {

var data = xmlhttp.responseText;

var test = document.getElementById(“test”);

test.innerHTML += data + “
“;

}

}

其中xmlhttp.readyState表示请求执行的状态(4表示请求完成),而xmlhttp.status表示http的响应返回状态码。

下面写一个小例子实现Ajax向后端请求数据:

服务端代码(Java实现)

@WebServlet(name = “AddServlet”, urlPatterns = “/AddServlet”)

public class AddServlet extends HttpServlet {

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

doGet(request, response);

}

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

response.getWriter().write(“helloworld”);

}

}

客户端代码:

var xmlhttp;

function loadGetHttp(url, f) {

xmlhttp = new XMLHttpRequest(); //创建XMLHttpRequest对象

xmlhttp.onreadystatechange = f; //设置请求完成后的回调函数

xmlhttp.open(“GET”, url, true); //打开指定的url

xmlhttp.send(); //发送请求

}

function loadPostHttp(url, data, f) {

xmlhttp = new XMLHttpRequest(); //创建XMLHttpRequest对象

xmlhttp.onreadystatechange = f; //设置请求完成后的回调函数

xmlhttp.open(“POST”, url, true); //打开指定的url

xmlhttp.setRequestHeader(“Content-type”, “application/x-www-form-urlencoded”) //设置请求头

xmlhttp.send(data); //发送请求,并附加数据

}

function cfunc() {

if (xmlhttp.readyState == 4) {

if (xmlhttp.status == 200) {

var data = xmlhttp.responseText;

var test = document.getElementById(“test”);

test.innerHTML += data + “
“;

}

}

}

window.onload = function () {

var button = document.getElementById(“button”);

button.onclick = function () {

loadGetHttp(“AddServlet”, cfunc);

}

}

这里写了两个通用的函数loadGetHttp和loadPostHttp来实现请求的加载,这样在使用时只要传人对应的URL和回调函数即可。

这里只是简单的举例子,实际使用中会将数据打包成XML或JSON格式,也有很多方便的实现Ajax的类库(如Jquery、EXT.JS……)

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 阿里云轻量应用服务器、ECS云服务器和虚拟主机的区别

    阿里云轻量应用服务器、ECS云服务器和虚拟主机的区别阿里云轻量应用服务器、ECS云服务器和虚拟主机区别在哪?这三种机型都可以建站,不过对于不同用户来说还是有区别的。下面老魏从难易程度、权限等方面来说说。比较简单的是云虚拟主机,系统已经预装建站环境,用户安装程序后就可以建站了,不过权限很少,适用于入门级建站首选;而云服务器的对用户技术要求高一些,用户要自行搭建环境,自由程度很高,可以自由配置服务器,需要有专业技术人员来维护;轻量应用服务器是给新…

    2022年6月25日
    32
  • 交换机LLDP模块

    交换机LLDP模块一:

    2022年5月18日
    44
  • 11. TranslateMessage[通俗易懂]

    11. TranslateMessage[通俗易懂]TranslanteMessage函数功能:TranslateMessage函数将虚拟键消息转换为字符消息,字符消息被寄送到当前线程的消息队列里。当下一次线程调用函数GetMessage或PeekMessage时被读出。API函数原型:BOOLWINAPITranslateMessage(_In_constMSG*lpMsg);参数解析:参数…

    2025年11月2日
    3
  • 个人号微信api接口开发_API接口授权系统php源码

    个人号微信api接口开发_API接口授权系统php源码最近公司需求开发一套自定义的微信机器人,需求是可以自动聊天,自动回复,发朋友圈,转发语音,以及自动添加好友等,还可以取聊天内容保存自己数据库里,what????这怎么可能实现,一口回绝,当产品经理拿着现成的市场产品打在脸上的时候,才发现微信真的可以实现!!调研开发了3个月,3个月啊!!!(主要被各种技术走偏路),终于得到以下知识,都是走过的心酸泪,大家开发完成,记得给我点个赞!!!大家一般需求点无非是以下几个需求:1.开发个人微信营销系统2.开发自定义的微信机器人,3.开发微信智能聊天客服系统

    2022年10月1日
    2
  • bass reducer什么意思_map filter foreach区别

    bass reducer什么意思_map filter foreach区别对于一些环境变量的配置文件,如想使更改后立即生效,多用souce+file执行后即可。如/etc/profile里加了配置,source和bash的区别:sourcefilenam

    2022年8月5日
    5
  • python安装的库在pycharm不显示_pycharm上无法安装各种库

    python安装的库在pycharm不显示_pycharm上无法安装各种库在使用pycharm安装库总是出现安装不成功的提示‘Non-zeroexitcode(2)’错误提示:最后找了很多方法都不能安装成功,最后发现可以降级pip就可以步骤:1、点击Terminal2、在里面输入“python-mpipinstallpip==20.2.4”对pip进行降级3、重新安装你需要的库或者模块…

    2022年8月26日
    4

发表回复

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

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