AJAX和JSP混合使用方法实例

 更新时间:2016年02月16日 11:45:58   作者:茶饮月  
AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。下面通过本文给大家介绍AJAX和JSP混合使用方法实例,感兴趣的朋友一起学习吧

首先要知道AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。

什么是 AJAX ?

AJAX = 异步 JavaScript 和 XML。

AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。AJAX 是一种用于创建快速动态网页的技术。

通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。

传统的网页(不使用 AJAX)如果需要更新内容,必需重载整个网页面。

AJAX工作原理

这里写图片描述

AJAX请求

ajax请求是依靠XMLHttpRequest对象,因此在请求前先要创建其对象

var xmlhttp;
//兼容性写法创建请求实例,IE5 6支持else里面的方法
if (window.XMLHttpRequest){
xmlhttp = new XMLHttpRequest();
}else {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}

接着向服务器发送请求

open函数有三个参数,请求方式,请求地址,请求是异步还是同步
send(String)函数有一个参数,只有当请求方式为post的时候,String参数才需要带上

那么GET和POST的区别呢?

与 POST 相比,GET 更简单也更快,并且在大部分情况下都能用。

然而,在以下情况中,请使用 POST 请求:

无法使用缓存文件(更新服务器上的文件或数据库)
向服务器发送大量数据(POST 没有数据量限制)
发送包含未知字符的用户输入时,POST 比 GET 更稳定也更可靠

//设置传送方式,地址,以及同步还是异步
xmlhttp.open("GET","Test.jsp?value="+escape(value),true);
xmlhttp.onreadystatechange = callback;//状态改变的时候执行这个函数,用来判断是否请求完毕
xmlhttp.send();//请求服务器,如果使用post方式,则send里面要带上传递的参数
//post方式
/**
xmlhttp.open("POST","Test.jsp",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("value="+value);
*/

然后服务器端处理并返回,这个放在实例里面有具体代码

在回调函数callback中设置对返回响应

onreadystatechange 存储函数(或函数名),每当 readyState 属性改变时,就会调用该函数。
readyState 存有 XMLHttpRequest 的状态。从 0 到 4 发生变化。

0: 请求未初始化
1: 服务器连接已建立
2: 请求已接收
3: 请求处理中
4: 请求已完成,且响应已就绪

status 200: “OK”

404: 未找到页面

相应服务器的类型

responseText 获得字符串形式的响应数据。

responseXML 获得 XML 形式的响应数据。 这个一般当open里面的url为xml文件的时候用

function callback(){
//请求完成表示
if(xmlhttp.readyState ==4 && xmlhttp.status==200){
//设置相应操作
}
}
}

总体来说就这几个步骤,下面是详细代码

实例

首先创建一个文本框,用于测试用户名,并且添加监听事件onblur,意思是当失去焦点则执行,并在其后面创建个span空标签,用来动态显示信息,表示名称是否被占用

<form method="post" action="AJAX.jsp">
<table>
<tr>
<td><input type="text" id="userid" onblur="checkuser()" ><span style="color: red" id="spanid"></span></td>
</tr>
</table>
</form>

接下来是JS代码,使用AJAX把输入的内容发送到服务器,服务器来检验

var xmlhttp;
function checkuser(){
var value = document.getElementById("userid").value;
//兼容性写法创建请求实例,IE5 6支持else里面的方法
if (window.XMLHttpRequest){
xmlhttp = new XMLHttpRequest();
}else {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
//设置传送方式,地址,以及同步还是异步
xmlhttp.open("GET","Test.jsp?value="+escape(value),true);
xmlhttp.onreadystatechange = callback;//状态改变的时候执行这个函数,用来判断是否请求完毕
xmlhttp.send();//请求服务器
}

然后服务器端获得数据后写回

<%
response.setHeader("Cache-Control","no-store");//HTTP1.1
response.setHeader("Pragma","no-cache");//HTTP1.0
response.setDateHeader("Expires",0);//禁止在服务器中缓存
String value = request.getParameter("value");//获取传送过来的参数
response.getWriter().write(value);//模拟数据写回
%>

客户端再回调函数中处理服务器写回的数据

/**
* 回调函数
*/
function callback(){
//请求完成表示
if(xmlhttp.readyState ==4 && xmlhttp.status==200){
alert(xmlhttp.responseText);//相应返回的text
// alert(xmlhttp.responseXML);//相应返回的xml
if (xmlhttp.responseText){//这里直接判断不为空,应该根据数据库返回值来进行不同的显示
var spanid = document.getElementById("spanid");
spanid.innerHTML = "注册成功";
}
}
}

效果就是当输入框失去焦点就立即判断,当然实际判断是要连接数据库的,为了简单就直接打印出来了

这里写图片描述

以上内容是针对AJAX和JSP混合使用方法实例,希望对大家有所帮助!

相关文章

  • AJAX实现省市县三级联动效果

    AJAX实现省市县三级联动效果

    这篇文章主要为大家详细介绍了AJAX实现省市县三级联动效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-10-10
  • AJAX javascript的跨域访问执行

    AJAX javascript的跨域访问执行

    在网站调用加载评论等信息的时候遇到了不同域名间javascript不能执行的问题,一直都在加载中显示不出来,而换个网址访问的话就能正确显示,一直没去注意浏览器提示的错误信息:
    2008-04-04
  • Ajax基础详解教程(一)

    Ajax基础详解教程(一)

    ajax技术在前端应用开发中经常会用到,是必须要掌握的知识。下面脚本之家小编给大家带来了Ajax基础详解教程(一),感兴趣的朋友跟着一起学习吧
    2016-06-06
  • AJAX POST数据中有特殊符号(转义字符)导致数据丢失的解决方法

    AJAX POST数据中有特殊符号(转义字符)导致数据丢失的解决方法

    这篇文章主要介绍了Ajax发送转义字符 、>、<、"接收数据不全问题,需要的朋友可以参考下
    2023-06-06
  • Ajax中浏览器的缓存问题解决方法

    Ajax中浏览器的缓存问题解决方法

    我们在做项目中,一般提交请求都会通过ajax来提交,但是测试的时候发现,每次提交后得到的数据都是一样的,调试可以排除后台代码的问题,所以问题肯定是出在前台
    2013-06-06
  • AJAX实现文件上传功能报错Current request is not a multipart request详解

    AJAX实现文件上传功能报错Current request is not a&n

    这篇文章主要介绍了AJAX文件上传功能实现中出现报错Current request is not a multipart request的问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • 无框架 Ajax分页(原创)

    无框架 Ajax分页(原创)

    最近想做一个Ajax的功能,网上一搜几乎全是基于某某框架的Ajax分页,要么需给页面加上<scriptManager></scriptManager>,要么需引入某dll,要么需使用类似于jquery的框架。
    2009-08-08
  • ajax编写简单的登录页面

    ajax编写简单的登录页面

    这篇文章主要为大家详细介绍了ajax编写简单登录页面的具体代码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-03-03
  • 利用AJAX实现鼠标悬浮获取值的代码

    利用AJAX实现鼠标悬浮获取值的代码

    ajax实现将鼠标放到图标上,下方会显示和该图有关的信息
    2009-12-12
  • 前后端ajax和json数据交换方式

    前后端ajax和json数据交换方式

    这篇文章主要介绍了前后端ajax和json数据交换方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06

最新评论