ajax是一种用来改善用户体验的技术,其实质是利用浏览器内置的一个特殊的对象
(XMLHttpRequest对象,一般称之为ajax对象)异步地(当ajax对象发请求时,浏览
器不会销毁当前页面,用户任然可以对当前页面做其他操作)向服务器发送请求,
服务器送回部分数据(并不是一个完整的页面),利用这些数据更新当前页面。整
个过程,页面无刷新,不打断用户的操作
编程步骤:
step1,获得ajax对象
比如:
var xhr=getXhr();
step2,发请求:
方式一:get请求
xhr.open('get','check_username.do?username=zs',true);
请求参数、请求资源路径、是否异步
注意:
a,get请求必须将请求参数添加到请求资源路径的后面。
b,true表示异步请求、false表示同步请求。
异步请求:发请求时,浏览器不会销毁当前页面,用户可以对当前页面做
其他操作。
同步请求:发送请求时,浏览器不会销毁当前页面,用户不可以对当前页面
做其他操作。
xhr.onreadystatechange=f1;
xhr.send(null);
方式二:post请求
xhr.open('post','','')
step3,编写服务器端的处理程序,一般服务器只需要返回部分的数据。
step4,编写事件处理函数。
function f1(){
if(xhr.readyState==4){
var txt=xhr.responseText;
使用txt更新当前页面...
}
}
java服务器端处理ajax发送的请求,和处理其他请求是一样的,只是在客户端页面表现的不同,比如:执行页面发送删除请求,服务器端在执行删除后,页面是需要刷新的。
ajax最经典的用法是验证码,注册页面如果因为验证码输入错误要刷新,之前的信息重填,估计用户会崩溃,采用ajax异步发送请求,就不会影响之前填写的信息
哥,在java上怎么接收ajax发的请求啊
你先要知道普通请求服务器端是怎么处理的,其实他们没有任何区别,我拿servlet举例,也可以使用struts2等框架来处理。
你看这句,xhr.open('get','check_username.do?username=zs',true);
里面'check_username.do?username=zs',找你到web项目的web.xml配置文件,内容如下:
RegistServlet
web.RegistServlet
RegistServlet
/check_username
根据配置再找到对应java类看代码
public void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
String username = request.getParameter("username");
if ("张三".equals(username)) {
//out.println("用户名被占用");
out.print("error");
} else {
//out.println("可以使用");
out.print("ok");
}
out.close();
}
service方法进行处理,这就是进行ajax请求的处理啊