首页编程java编程ajax调用java后台方法是什么 ajax怎么传值到后台,java的

ajax调用java后台方法是什么 ajax怎么传值到后台,java的

编程之家2023-10-1196次浏览

今天给各位分享ajax调用java后台方法是什么的知识,其中也会对ajax怎么传值到后台,java的进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

ajax调用java后台方法是什么 ajax怎么传值到后台,java的

Ajax()方法如何与后台交互

Ajax全称为“Asynchronous JavaScript and XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。Ajax技术是目前在浏览器中通过JavaScript脚本可以使用的所有技术的集合。Ajax以一种崭新的方式来使用所有的这些技术,使得古老的B/S方式的Web开发焕发了新的活力。

ajax()方法是jQuery底层的ajax实现,通过HTTP请求加载远程数据。

ajax调用java后台方法是什么 ajax怎么传值到后台,java的

$.ajax({

type:"GET",

url:"handleAjaxRequest.action",

ajax调用java后台方法是什么 ajax怎么传值到后台,java的

data:{paramKey:paramValue},

async: true,

dataType:"json",

success: function(returnedData){

alert(returnedData);

//请求成功后的回调函数

//returnedData--由服务器返回,并根据 dataType参数进行处理后的数据;

//根据返回的数据进行业务处理

},

error: function(e){

alert(e);

//请求失败时调用此函数

}

});

}

参数说明:

type:请求方式,“POST”或者“GET”,默认为“GET”。

url:发送请求的地址。

data:要向服务器传递的数据,已key:value的形式书写(id:1)。GET请求会附加到url后面。

async:默认true,为异步请求,设置为false,则为同步请求。

dataType:预期服务器返回的数据类型,可以不指定。有xml、html、text等。

在开发中,使用以上参数已可以满足基本需求。

如果需要向服务器传递中文参数,可将参数写在url后面,用encodeURI编码就可以了。

var chinese="中文";

var urlTemp="handleAjaxRequest.action?chinese="+chinese;

var url= encodeURI(urlTemp);//进行编码

$.ajax({

type:"GET",

url: url,//直接写编码后的url

success: function(returnedData){

alert(returnedData);

//请求成功后的回调函数

//returnedData--由服务器返回,并根据 dataType参数进行处理后的数据;

//根据返回的数据进行业务处理

},

error: function(e){

alert(e);

//请求失败时调用此函数

}

});

}

struts2的action对请求进行处理:

public void handleAjaxRequest(){

HttpServletRequest request= ServletActionContext.getRequest();

HttpServletResponse response= ServletActionContext.getResponse();

//设置返回数据为html文本格式

response.setContentType("text/html;charset=utf-");

response.setHeader("pragma","no-cache");

response.setHeader("cache-control","no-cache");

PrintWriter out=null;

try{

String chinese= request.getParameter("chinese");

//参数值是中文,需要进行转换

chinese= new String(chinese.getBytes("ISO--"),"utf-");

System.out.println("chinese is:"+chinese);

//业务处理

String resultData="hello world";

out= response.getWriter();

out.write(resultData);

//如果返回json数据,response.setContentType("application/json;charset=utf-");

//Gson gson= new Gson();

//String result= gson.toJson(resultData);//用Gson将数据转换为json格式

//out.write(result);

out.flush();

}catch(Exception e){

e.printStackTrace();

}finally{

if(out!= null){

out.close();

}

}

}

struts.xml配置文件:不需要写返回类型

<action name="handleAjaxRequest" class="com.test.TestAction"

method="handleAjaxRequest">

</action>

分享AJAX前后台交互方法

注:ajax通过async参数决定是异步还是同步,false同步,true异步;

异步执行顺序是先执行后续动作,再执行success里代码;

同步是先执行success里代码,再执行后续代码;

验证:同步时数据量大是否会卡顿?例如从后台搜索大量数据时,页面是否卡死?

1、(异步)方法调用,后续代码不需要等待它的执行结果

后台<C#>:

using System.Web.Script.Services;

public static string GetStr(string str1, string str2)

{

return str1+ str2;

}

前台<JQuery>:

function Test(strMsg1,strMsg2)

{

$.ajax({

type:"Post",

url:"Demo.aspx/GetStr",

async: true,

//方法传参的写法一定要对,与后台一致,区分大小写,不能为数组等,str1为形参的名字,str2为第二个形参的名字

data:"{'str1':'"+strMsg1+"','str2':'"+strMsg2+"'}",

contentType:"application/json; charset=utf-8",

dataType:"json",

success: function(data){

//返回的数据用data.d获取内容

alert(data.d);

},

error: function(err){

alert(err);

}

});

//隐藏加载动画

$("#pageloading").hide();

}

2、(同步)方法调用,可用于需要得到返回值是执行后续代码的前提

后台<C#>:

using System.Web.Script.Services;

public static string GetStr(string str1, string str2)

{

return str1+ str2;

}

前台<JQuery>:

function Test(strMsg1,strMsg2)

{

var str=“”;

$.ajax({

type:"Post",

url:"Demo.aspx/GetStr",

async: false,

//方法传参的写法一定要对,与后台一致,区分大小写,不能为数组等,str1为形参的名字,str2为第二个形参的名字

data:"{'str1':'"+strMsg1+"','str2':'"+strMsg2+"'}",

contentType:"application/json; charset=utf-8",

dataType:"json",

success: function(data){

//返回的数据用data.d获取内容

str= data.d;

},

error: function(err){

alert(err);

}

});

return str;

jquery ajax json java后台怎么处理

一、$.ajax的一般格式

[javascript] view plain copy

$.ajax({

type:'POST',

url: url,

data: data,

success: success,

dataType: dataType

});

二、$.ajax的参数描述

参数描述

url必需。规定把请求发送到哪个 URL。

data可选。映射或字符串值。规定连同请求发送到服务器的数据。

success(data, textStatus, jqXHR)可选。请求成功时执行的回调函数。

dataType

可选。规定预期的服务器响应的数据类型。

默认执行智能判断(xml、json、script或 html)。

[javascript] view plain copy

//1.$.ajax带json数据的异步请求

var aj=$.ajax({

url:'productManager_reverseUpdate',//跳转到 action

data:{

selRollBack: selRollBack,

selOperatorsCode: selOperatorsCode,

PROVINCECODE: PROVINCECODE,

pass2: pass2

},

type:'post',

cache:false,

dataType:'json',

success:function(data){

if(data.msg=="true"){

// view("修改成功!");

alert("修改成功!");

window.location.reload();

}else{

view(data.msg);

}

},

error: function(){

// view("异常!");

alert("异常!");

}

});

//2.$.ajax序列化表格内容为字符串的异步请求

[javascript] view plain copy

function noTips(){

var formParam=$("#form1").serialize();//序列化表格内容为字符串

$.ajax({

type:'post',

url:'Notice_noTipsNotice',

data:formParam,

cache:false,

dataType:'json',

success:function(data){

}

});

}

//3.$.ajax拼接url的异步请求

[javascript] view plain copy

var yz=$.ajax({

type:'post',

url:'validatePwd2_checkPwd2?password2='+password2,

data:{},

cache:false,

dataType:'json',

success:function(data){

if( data.msg=="false")//服务器返回false,就将validatePassword2的值改为pwd2Error,这是异步,需要考虑返回时间

{

textPassword2.html("<font color='red'>业务密码不正确!</font>");

$("#validatePassword2").val("pwd2Error");

checkPassword2= false;

return;

}

},

error:function(){}

});

//4.$.ajax拼接data的异步请求

[javascript] view plain copy

$.ajax({

url:'${basePath}/jobs/Dictionary/post',

type:'post',

data:'merName='+values,

async: false,//默认为true异步

error:function(){

alert('error');

},

success:function(data){

//后台传过来的是list<Map>或者是list<Object>

var jsonObj=eval("("+data+")");

$.each(jsonObj, function(i, item){

//$("#taskClass").append("<option value='"+item.+"."+item.fieldName+"'>"+item.statuDesc+"</option>");

alert(item.value+","+ item.desc);

});

$("#"+divs).html(data);

}

});

后台action

JSON-lib这个Java类包用于把bean,map和XML转换成JSON并能够把JSON转回成bean和DynaBean。

下载地址:http://json-lib.sourceforge.net/

还要需要的第3方包:

org.apache.commons(3.2以上版本)

org.apache.oro

net.sf.ezmorph(ezmorph-1.0.4.jar)

nu.xom

[java] view plain copy

@RequestMapping(value="post")

public void post(HttpServletRequest request,HttpServletResponse response){

List<Map<String,String>> listMap= new ArrayList<Map<String,String>>();

for(int i= 0; i< 6; i++){

Map<String,String> map= new HashMap<String,String>();

map.put("value","id"+i);

map.put("desc", i+"");

listMap.add(map);

}

System.out.println(JSONArray.fromObject(listMap).toString());

StringUtil.write(response, JSONArray.fromObject(listMap).toString());

}

public static void write(HttpServletResponse response,String message){

try{

response.setContentType("text/html");

response.setCharacterEncoding("utf-8");

response.getWriter().write(message);

response.getWriter().flush();

} catch(IOException e){

e.printStackTrace();

}

}

ajax怎么传值到后台,java的

给你个例子,用得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);

}

}

OK,关于ajax调用java后台方法是什么和ajax怎么传值到后台,java的的内容到此结束了,希望对大家有所帮助。

游戏器支持java是什么意思,手机支持JAVA是什么意思java咖啡是什么(Java和咖啡有什么关系吗)