重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
因为要获取xmlHttpRequest对象,只存在于浏览器容器,ajax只能写在jsp或者jsp引用的js里面。
创新互联建站是专业的仪陇网站建设公司,仪陇接单;提供做网站、网站设计,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行仪陇网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
不想把ajax请求的url暴露给客户端,就把ajax过程写在js文件里,然后用jsp调用。
1新建一个servlet xml中相应配置(一般自动)
2创建service方法
3接受参数,做操作,返回数据
比如页面发送ajax请求到SomeServlet
$.post("SomeServlet的请求路径",{param:"param"},function(data){ //data为返回的e799bee5baa6e997aee7ad94e58685e5aeb931333337613931数据以json形式 alert(data.id + " " + data.name + " " + data.age );},"json");
Servlet
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 param = request.getParameter("param");//获取参数 //你的操作 //返回数据 String json = "{\"id\":1,\"name\":\"张三\",\"age\":18}"; out.print(json);}
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异步发送请求,就不会影响之前填写的信息
建议你用JQUERY,这个原生代码写起来太麻烦了。
用
$.post("server.jsp",{time:new date().getTime()},function(d){
//d就是返回的值,server.jsp就是服务器,第二个参数就是发送的数据
d = eval(d);
});
java后台可以返回对象的字符串形式,获取后再用eval转化。
比如server.jsp打印出来"{data:[0,1,2,3],msg:'获取成功!',status:'sucess'}"
你就可以通过d.status来判断是否获取成功,还可以把其它一些错误信息封装到里面。
我的项目上都是这么用的,非常方便。
ipt发送请求方式的封装。首先要
引入两个jar包到你项目的webcontent/WEB-INF/lib文件夹下,这两个包是ajax
的包分别叫做commons-logging.jar和dwr.jar.然后需要两个配置文件,配置在
WEB-INF文件夹下。一个是web.xml,另一个是dwr.xml。web.xml文件总需要配置
你的ajax的dwr的servlet,这个类在你引入的包中存在的。这个servlet被实例
化之后,用来处理你所有通过ajax发送的请求。然后来配置dwr.xml。这个配置
文件的作用是将你页面中script标签下制定的方法中的js对象和你自己写出来
的java类的实例化的对象一一对应起来。这样,你就可以通过发送ajax请求来调
用你后台写好的类中的方法。该方法你可以通过ajax传入参数,也可以通过ajax
来处理该方法的返回值。大概流程就是这样。
我也是新手,希望能够帮忙到你。共同进步!
1.将你需要的处理的东西在服务器端写成action 或者servlet,总之你能调用到就行2.在你需要的页面进行ajax操作,请求你写的服务端程序3再ajax回调函数来处理服务器端返回的数据。