ajax-servlet该如何返回值给AJAX呢?

问题描述

servlet该如何返回值给AJAX呢?

js代码
//声明XMLHttpRequest对象
var xmlrequest;

//初始化XMLHttpRequest
function createXMLHttpRequest(){
if(window.XMLHttpRequest){
xmlrequest = new XMLHttpRequest();
}else if(window.ActiveXObject){
try{
xmlrequest = new ActiveXObject("Msxml2.XMLHTTP");
}catch(e){
try{
xmlrequest = new ActiveXObject("Microsoft.XMLHTTP");
}catch(e){

        }
    }
}

}

//定义回调函数
function processResponse(){
//响应完成
if(xmlrequest.readyState == 4){
//响应正常
if(xmlrequest.status == 200){
var head = xmlrequest.responseText;
alert(head);
}
}
}

//事件处理函数
function change(){
//初始化XMLHttpRequest对象
createXMLHttpRequest();

//设置请求的URI
var uri = "servlet/LoginServlet";

//打开与服务器响应地址的连接
xmlrequest.open("POST", uri, true);

//设置请求头
xmlrequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
//设置处理响应的回调函数
xmlrequest.onreadystatechange = processResponse;
var account = document.form.account.value;
var password = document.form.password.value;
//发送请求
xmlrequest.send("account=" + account + "&password=" + password);

}

servlet代码
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.println("post被触发了");
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");

    String account = request.getParameter("account");
    String password = request.getParameter("password");
    System.out.println(account);
    System.out.println(password);
    PrintWriter out = response.getWriter();
    out.print("124578");

}

配置文件
<?xml version="1.0" encoding="UTF-8"?>

shangGou

LoginServlet
servlet.LoginServlet

LoginServlet
/servlet/LoginServlet

请求页面:
响应后的页面:

请大神帮我解答解答,AJAX向服务器发送请求后,servlet要如何响应页面才不会刷新呢?

解决方案

response.setContentType(type + ";charset=UTF-8");
        response.setHeader("Pragma", "No-cache");
        response.setHeader("Cache-Control", "no-cache");
        response.setDateHeader("Expires", 0);
        PrintWriter writer = response.getWriter();
        writer.write(content);
        writer.flush();

解决方案二:

可以直接使用response.getOut()来write数据。ajax中success后function(value),value就是写出的内容。

解决方案三:

你用jquery的ajax,有个success回调,返回数据就会触发

解决方案四:

你用jquery的ajax,有个success回调,返回数据就会触发

解决方案五:

关注着问题的解决 ,,,具有借鉴意义啊

解决方案六:

你哪个控件触发的function change()事件,如果是放到表单中的submit按钮,要return false阻止表单的提交

 <input type="submit" onclick="change();return false"....../>

解决方案七:

你的请求并没有走change() 方法,你加上日志试试。 表单会自动提交到action里,更新整个页面。 你可以阻止form的默认请求,或者 不用表单。

解决方案八:

http://blog.csdn.net/better_mouse/article/details/46046411
可以用 string xml json 返回

解决方案九:

http://blog.csdn.net/better_mouse/article/details/46046411

解决方案十:

是要问ajax如何接收呢,还是servlet如何转呢。

时间: 2024-10-01 20:13:58

ajax-servlet该如何返回值给AJAX呢?的相关文章

Ajax异步提交数据返回值的换行问题实例分析_AJAX相关

本文实例分析了Ajax异步提交数据返回值的换行问题.分享给大家供大家参考,具体如下: 前面分析介绍了<Javascript基于AJAX回调函数传递参数>及<IE浏览器与FF浏览器关于Ajax传递参数值为中文时的区别>,学习了ajax回调函数传参与针对不同浏览器处理中文乱码问题的方法.这里就来分析一下ajax异步提交返回值中换行问题的处理技巧. 背景介绍: 需要实现的功能是:在下拉框中选择分类,提交到PHP根据选择的分类返回该分类下的成员名称,返回值各成员姓名以换行的形式显示到tex

Ajax异步提交数据返回值的换行问题实例分析

本文实例分析了Ajax异步提交数据返回值的换行问题.分享给大家供大家参考,具体如下: 前面分析介绍了<Javascript基于AJAX回调函数传递参数>及<IE浏览器与FF浏览器关于Ajax传递参数值为中文时的区别>,学习了ajax回调函数传参与针对不同浏览器处理中文乱码问题的方法.这里就来分析一下ajax异步提交返回值中换行问题的处理技巧. 背景介绍: 需要实现的功能是:在下拉框中选择分类,提交到PHP根据选择的分类返回该分类下的成员名称,返回值各成员姓名以换行的形式显示到tex

ajax调用wcf后返回的结果.ajax里面运行error错。

问题描述 ajax调用wcf后返回的结果.ajax里面运行error错. ajax调用wcf后返回的结果为list,这个list中又有一个list.ajax里面运行error错. [WebInvoke(RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)] 配置没有问题,因为把list=null;就能够正常运行.

急救在ajax 调用action action返回值问题

问题描述 我写了一个ajax用来做省市及联菜单我先是把省的值读到页面上来了,当下拉加列表值改变时就调用ajax代码如下/**创建一个ajax进行及联菜单的异步调用*showCity()显示省份/市区显示行业/和求职职业*///创建httpRequestvarcreateAjaxObj=function(){varhttpRequest=false;if(window.XMLHttpRequest){//如果为Mozilla,Safari等浏览器httpRequest=newXMLHttpRequ

jquery ajax返回值与无返回值问题

  jquery ajax 返回值有很多类型如有html,text,json,xml类型了,我们这些值都可以在ajaxp处理是直接使用匿名函数来直接获取,下面我整理内个jquery ajax 返回值的例子给各位参考参考. jquery中常用的ajac有 $.ajax() , $.post , $.get() ,$.load()了. 例子  代码如下   $.post("test.jsp",  { name: "cssrain", time: "2008/0

spring-项目中ajax返回值的问题

问题描述 项目中ajax返回值的问题 项目类似于微博系统,struts2+springjquery的Ajax提交并返回值是个map对象.现在的问题是: 我发布一条微博时想无刷新的在下面出现一条加入的记录,这个基本就是在前台将返回的值拼字符串,然后插入到记录显示,因为会有大量的这个拼接字符串的地方,我想问下有没有其他的简单的方式来实现无刷新的提交并回显 解决方案 可以 改用创建 对象 .获取到同样样式的最后一个对象.jquery对象.clone()方法克隆该jquery对象再给对象用js更改后台获

JQuery异步获取返回值中文乱码的解决方法_jquery

用jqgrid异步获取列表值,遇到个问题,服务器端从数据库取到的数据没有出现中文乱码问题(日志打出来是没有乱码的),但是异步传到客户的时候却出现了乱码. 服务器端已经编码过了(UTF-8编码).开始一直怀疑是客户端的问题,比如客户端和服务器端编码不一致啊,也怀疑是不是jqGrid工具函数中少配了 contentType: "application/x-www-form-urlencoded; charset=utf-8",   等等问题. 结果都不是,纠结了几个小时,后来经过大牛的提醒

获取JavaScript异步函数的返回值_javascript技巧

今天研究一个小问题: 怎么拿到JavaScript异步函数的返回值? 1.错误尝试 当年未入行时,我的最初尝试: <script> function getSomething() { var r = 0; setTimeout(function() { r = 2; }, 10); return r; } function compute() { var x = getSomething(); alert(x * 2); } compute(); </script> 2.回调函数

ajax返回值

问题描述 我想用ajax执行完servlet检查服务器文件是否文件后,得到返回值,请各位高手执教. 解决方案 解决方案二:serlet:response.getWriter().println("1");js:functioncollection(href){varurl="http://...";varmyAjax=newAjax.Request(//这个是phototype的Ajax url, { method:'get', onComplete:showRes