展开全部
给你个例子,用得servlet,你可以改改
index.html
<html>
<head>
<title>第1个ajax例子</title>
<script type="text/javascript">
var xmlHttp;//局部刷新的关键,通过这个对象与服务器连接
//将xmlHttp实例化
function init()
{
try{
xmlHttp= new ActiveXObject('Msxml2.XMLHTTP');
}
catch(e)
{
try{
xmlHttp= new ActiveXObject('Microsoft.XMLHTTP');
}
catch(e)
{
try{
xmlHttp= new XMLHttpRequest();
}catch(e){}
}
}
}
//调用此方法与服务器互动
function ajax(name)
{
init();
if(name.length==0)
{
document.getElementById("divname").innerHTML="必须输入用户名";
document.getElementById("name").focus();
return;
}
var url="ajax?name="+name+"&&date="+Date();//向servlet传递参数
xmlHttp.open("get",url,true);//向servlet传递参数,设置传递模式和url
xmlHttp.onreadystatechange=handleCheckName;//设置回调方法为handleCheckName
xmlHttp.send(null);
}
function handleCheckName()
{
if(xmlHttp.readyState==4)
{
if(xmlHttp.status==200)
{
if(xmlHttp.responseText=="1") //xmlHttp.responseText为服务器返回的数据
{
document.getElementById("divname").innerHTML="对不起,用户已存在!";
document.getElementById("divname").style.color="black";
}
if(xmlHttp.responseText=="2")
{
document.getElementById("divname").innerHTML="用户名只能是3-10位字母,数字";
document.getElementById("divname").style.color="black";
}
if(xmlHttp.responseText=="3")
{
document.getElementById("divname").innerHTML="恭喜你,用户名可以继续注册!";
document.getElementById("divname").style.color="red";
}
}
}
}
</script>
</head>
<body>
<input type="text" name="name" onkeyup="ajax(this.value);" />
<div id="divname"></div>
</body>
</html>
web.xml
<?xml version="1.0" encoding="ISO-8859-1" ?>
<web-app>
<servlet>
<servlet-name>ReturnName</servlet-name>
<servlet-class>ajax.servlet.ReturnName</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ReturnName</servlet-name>
<url-pattern>/ajax</url-pattern>
</servlet-mapping>
</web-app>
ReturnName.java
package ajax.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ReturnName extends HttpServlet{
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String name=request.getParameter("name");
int a=0;
if(name.equals("asdasd")){
a=1;
}else if(!name.matches("[a-zA-Z0-9]{3,10}")){
a=2;
}else{
a=3;
}
response.getWriter().print(a);
}
public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req,resp);
}
}
index.html
<html>
<head>
<title>第1个ajax例子</title>
<script type="text/javascript">
var xmlHttp;//局部刷新的关键,通过这个对象与服务器连接
//将xmlHttp实例化
function init()
{
try{
xmlHttp= new ActiveXObject('Msxml2.XMLHTTP');
}
catch(e)
{
try{
xmlHttp= new ActiveXObject('Microsoft.XMLHTTP');
}
catch(e)
{
try{
xmlHttp= new XMLHttpRequest();
}catch(e){}
}
}
}
//调用此方法与服务器互动
function ajax(name)
{
init();
if(name.length==0)
{
document.getElementById("divname").innerHTML="必须输入用户名";
document.getElementById("name").focus();
return;
}
var url="ajax?name="+name+"&&date="+Date();//向servlet传递参数
xmlHttp.open("get",url,true);//向servlet传递参数,设置传递模式和url
xmlHttp.onreadystatechange=handleCheckName;//设置回调方法为handleCheckName
xmlHttp.send(null);
}
function handleCheckName()
{
if(xmlHttp.readyState==4)
{
if(xmlHttp.status==200)
{
if(xmlHttp.responseText=="1") //xmlHttp.responseText为服务器返回的数据
{
document.getElementById("divname").innerHTML="对不起,用户已存在!";
document.getElementById("divname").style.color="black";
}
if(xmlHttp.responseText=="2")
{
document.getElementById("divname").innerHTML="用户名只能是3-10位字母,数字";
document.getElementById("divname").style.color="black";
}
if(xmlHttp.responseText=="3")
{
document.getElementById("divname").innerHTML="恭喜你,用户名可以继续注册!";
document.getElementById("divname").style.color="red";
}
}
}
}
</script>
</head>
<body>
<input type="text" name="name" onkeyup="ajax(this.value);" />
<div id="divname"></div>
</body>
</html>
web.xml
<?xml version="1.0" encoding="ISO-8859-1" ?>
<web-app>
<servlet>
<servlet-name>ReturnName</servlet-name>
<servlet-class>ajax.servlet.ReturnName</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ReturnName</servlet-name>
<url-pattern>/ajax</url-pattern>
</servlet-mapping>
</web-app>
ReturnName.java
package ajax.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ReturnName extends HttpServlet{
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String name=request.getParameter("name");
int a=0;
if(name.equals("asdasd")){
a=1;
}else if(!name.matches("[a-zA-Z0-9]{3,10}")){
a=2;
}else{
a=3;
}
response.getWriter().print(a);
}
public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req,resp);
}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
AJAX 是一个HTTP后台请求 不管是怎么样的请求都是HTTP的 只要是HTTP的他就有post或者get
每个SERLVET / JSP 都有一个全世界唯一的URL
AJAX都现在的话你还没使用JS框架那我也就没必要回答你的问题了``
推荐使用下 Prototype 或者 JQuery 有兴趣的话的 也可以看看EXt等这个带UI的
这里说下prototype的AJAX请求
new Ajax.Request(url/*Serlvet的访问地址*/,{
onSuccess : function(r){
//r.responseText 这就是你的servlet返回的html
}
},parameters:{xx:'xx'})
然后你就可以这样拉``````
每个SERLVET / JSP 都有一个全世界唯一的URL
AJAX都现在的话你还没使用JS框架那我也就没必要回答你的问题了``
推荐使用下 Prototype 或者 JQuery 有兴趣的话的 也可以看看EXt等这个带UI的
这里说下prototype的AJAX请求
new Ajax.Request(url/*Serlvet的访问地址*/,{
onSuccess : function(r){
//r.responseText 这就是你的servlet返回的html
}
},parameters:{xx:'xx'})
然后你就可以这样拉``````
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
再遇JS框架fans,向来不爽三方JS框架。
回答楼主问题:
首先我对楼主的提问不太明白,什么叫做不要XML?
你可以用Post请求
在send方法中如:
send('param1=1¶m2=2');
如果‘不要XML’
你可以用JSON,但是问题是JSON官方提供的新版JSON jar包中删去了string转JSONObject的方法。所以你如果请求发送过来是JSON字符串的话,现在是没办法解析的。因为用Java解析JSON字符串很容易出现问题,而且代码逻辑复杂,效率低。如果你用C#貌似是可以的。
我想说的是,如果你使用的是JSP技术,而你现在又想成批的提交用户数据(比如两个对象以上)那么你还要用XML,因为XML在后台好解析并且速率高。
回答楼主问题:
首先我对楼主的提问不太明白,什么叫做不要XML?
你可以用Post请求
在send方法中如:
send('param1=1¶m2=2');
如果‘不要XML’
你可以用JSON,但是问题是JSON官方提供的新版JSON jar包中删去了string转JSONObject的方法。所以你如果请求发送过来是JSON字符串的话,现在是没办法解析的。因为用Java解析JSON字符串很容易出现问题,而且代码逻辑复杂,效率低。如果你用C#貌似是可以的。
我想说的是,如果你使用的是JSP技术,而你现在又想成批的提交用户数据(比如两个对象以上)那么你还要用XML,因为XML在后台好解析并且速率高。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
ajax 中
xmlHttp.open("post","TestServlet?arg0=aa&arg1=bb");
这样就可以了
xmlHttp.open("post","TestServlet?arg0=aa&arg1=bb");
这样就可以了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询