Ajax&Java
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 + "<br>";
}
}
其中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");
}
}
客户端代码:
<html>
<head>
<script> 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 + "<br>";
}
}
} window.onload = function () {
var button = document.getElementById("button");
button.onclick = function () {
loadGetHttp("AddServlet", cfunc);
}
} </script>
</head>
<body> <input type="button" id="button" value="test"/> <div id="test"></div> </body>
</html>
这里写了两个通用的函数loadGetHttp和loadPostHttp来实现请求的加载,这样在使用时只要传人对应的URL和回调函数即可。
这里只是简单的举例子,实际使用中会将数据打包成XML或JSON格式,也有很多方便的实现Ajax的类库(如Jquery、EXT.JS......)
Ajax&Java的更多相关文章
- End-to-End Tracing of Ajax/Java Applications Using DTrace
End-to-End Tracing of Ajax/Java Applications Using DTrace By Amit Hurvitz, July 2007 Aja ...
- ajax java base64 图片储存
js代码 //利用formdata上传 var dataUrl = $('#canvas').getDataUrl(); var img = $('<img>').attr('src', ...
- Struts2 Spring Hibernate Ajax Java总结(实时更新)
1. 在form表单的onload属性里的方法无法执行? 若忘记了在<%=request.getSession().getAttribute("userName")%> ...
- React+ajax+java 上传图片并预览
之前有在网上找ajax上传图片的资料,大部分的人写得都是用jQuery,但是在这里用JQuery就大才小用了,所以我就自己写了,先上图. 由上图,首先点击上面的选择文件,在选择图片之后,将会自动上传图 ...
- JWT ajax java spingmvc 简洁教程
1.添加依赖 <dependency> <groupId>io.jsonwebtoken</groupId> <artifactId>jjwt</ ...
- html5 ajax Java接口 上传图片
html5图片上传[文件上传]在网上找了很多资料,主要也就2种 1.from表单提交的方式 <form action="pushUserIcon" method=" ...
- Ajax+Java实现大文件切割上传
技术体系:html5(formdata) + java + servlet3.0+maven + tomcat7 <!DOCTYPE html> <html> <head ...
- 利用AJAX JAVA 通过Echarts实现豆瓣电影TOP250的数据可视化
mysql表的结构 数据(数据是通过爬虫得来的,本篇文章不介绍怎么爬取数据,只介绍将数据库中的数据可视化): 下面就是写代码了: 首先看一下项目目录: 数据库层 业务逻辑层 pac ...
- extjs ajax java简单精美验证码实现 有图
前端:利用ExtJs的autoEl功能加载图片. var imgCheckValid = new Ext.create('Ext.Component',{ width: 70, //图片宽度 heig ...
随机推荐
- JavaScript中的闭包和匿名函数
JavaScript中的匿名函数及函数的闭包 1.匿名函数 2.闭包 3.举例 4.注意 1.匿名函数 函数是JavaScript中最灵活的一种对象,这里只是讲解其匿名函数的用途.匿名函数:就是没 ...
- [linux系统]--常用命令
1.shell实现找到当前目录以及子目录中名字包含king的文件 find ./ | grep king 2.tcpdump抓包参数 -nne分别代表什么意思 -nn:直接以 IP 及 port nu ...
- Windows平台Tomcat服务搭建
1. 下载 JDK下载 下载地址 Tomcat下载 下载地址 2. 安装配置 JDK安装配置 安装过程不再赘述. 配置: 环境变量: JAVA_HOME,变量值为:C:\JDK(具体请根据JDK ...
- readline,readlines,read函数
readline是读取每一行,包括'\n'.读出来是一个含'\n'的字符串. realines是读取整个文件,返回所有行的一个list(写代码的时候你需要一个文件的某几行,就可以用这个函数去切分) r ...
- C#导出csv文件
/// <summary> /// 将DataTable中数据写入到CSV文件中 /// </summary> /// <param name="dt" ...
- 学习git与github的二三事 (一)
前一段时间看到了一个参加机器人比赛的同学写的经验之谈,他提到了在比赛时,希望同学们学习一下git来管理代码,于是我就某度了一下,发现了廖雪峰老师的网站,受益匪浅,持续学习中,拜谢大神,顺便记录一下自己 ...
- Spring+quartz整合问题
今天一开始在弄quartz的时候用的2.0.2的jar包整合Spring3.0.5的时候报错 Java.lang.IncompatibleClassChangeError: class org.spr ...
- 微信小程序-位置坐标
wx.getLocation(OBJECT) 获取当前的地理位置.速度. OBJECT参数说明: success返回参数说明: 示例代码: wx.getLocation({ type: 'wgs84' ...
- test lab ~ triangle test by using junit and coverage
first set up a new folder as your test class place, and then let your package in test class folder b ...
- Servlet 工程 web.xml 中的 servlet 和 servlet-mapping 标签
本文转载自 陈蒙的博客 最近在学习JavaEE轻量级框架,对于servlet-mapping中的url-partten标签以及网页访问时的执行顺序不是很清楚,搜索了很多遍终于找到了这篇博文(搜索也是个 ...