大家都知道ajax并非一种新的技术,而是几种原有技术的结合体。它由下列技术组合而成。
1.使用CSS和XHTML来表示。
2. 使用DOM模型来交互和动态显示。
3.使用XMLHttpRequest来和服务器进行异步通信。
4.使用javascript来绑定和调用。
--------------------------------------------------------------------------------------------------------------------------------------------------
在上面几中技术中,除了XmlHttpRequest对象以外,其它所有的技术都是基于web标准并且已经得到了广泛使用的,XMLHttpRequest虽然目前还没有被W3C所采纳,但是它已经是一个事实的标准,因为目前几乎所有的主流浏览器都支持它。
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<script type="text/javascript">
var boo=false;
function sub(){
if(boo){
var f = document.getElementById("f1");
f.submit();
}
}
function val(obj){
var name = obj.value;
//alert(name);
if(name!=null){//按理还应该防护空串
document.getElementById("regName").value=name;
}
//document.getElementById("ff1").submit();
ff1.submit();//可以直接用id号来访问页面中的元素对象---该句等价于var f = document.getElementById("f1");
}
function back(res){
if(res==1){
boo = false;
msg.innerHTML="该用户名已存在,请换一个!";
}else{
boo = true;
msg.innerHTML="恭喜,该用户名可以注册!";
}
}
</script>
</head>
<body>
<h2>注册页面的表单验证----Ajax原理技术演示</h2>
<form id="f1" action="<%=path%>/RegServlet" method="post"><!--通过写一个RegServlet的java代码-->
Name:<input type="text" name="name" onblur="val(this);"/>
<label id="msg" style="color:red;"></label>
<br/>
Pwd:<input type="password" name="pwd"/><br/>
Tel:<input type="text" name="tel"/><br/>
QQ:<input type="text" name="qq"/><br/>
<input type="button" onclick="sub();" value="注册">
</form>
<!-- 专用于帮我们进行ajax提交用户名的小表单 -->
<form target="df" id="ff1" action="<%=path%>/ValServlet" method="post"><!--target必须是name属性,否则 不会显示 -->
<!--
<input id="regName" type="text" name="name" />
-->
<input id="regName" type="hidden" name="name" /><!--hidden是一个隐藏帧-->
</form>
<iframe name="df" > <!-- <iframe name="df" style="display:none; >这里是不展示出来-->
</iframe><!-- iframe标签是画中画-->
</body>
</html>
-----以上代码是通过在下面专门写一个ajax提交表单来验证信息的准确性来通过java代码重定向到另一个jsp页面中显示来显示信息--------------------------