JAVA的ajax方法?

Python09

JAVA的ajax方法?,第1张

//方式一:使用post请求的方式,不通过url传参,采用data传参

$.ajax({

url:"userAction_findMangerByDeptId",//访问的地址

type:"post",

data:{"传递到后台的参数名":参数},

dataType:'text',//后台返回的数据格式类型

success:function(data){

})

}

})

}

//方式二:这是get提交方法,会出现中文乱码,所以要 1.先将数据转码

参数名 = encodeURI(encodeURI(要转的参数))

$.ajax({

url:"userAction_findMangerByDeptId?参数名"+参数值,

type:"get",

dataType:'text',//后台返回的数据格式类型

success:function(data){

})

}

})

}

2.后台接收前端传递内容后要进行解码

String 参数名 = URLDecoder.decode(接收的参数)

jQuery Ajax 实例 全解析

jQuery确实是一个挺好的轻量级的JS框架,能帮助我们快速的开发JS应用,并在一定程度上改变了我们写JavaScript代码的习惯。

废话少说,直接进入正题,我们先来看一些简单的方法,这些方法都是对jQuery.ajax()进行封装以方便我们使用的方法,当然,如果要处理复杂的逻辑,还是需要用到jQuery.ajax()的(这个后面会说到).

1. load( url, [data], [callback] ) :载入远程 HTML 文件代码并插入至 DOM 中。

url (String) : 请求的HTML页的URL地址。

data (Map) : (可选参数) 发送至服务器的 key/value 数据。

callback (Callback) : (可选参数) 请求完成时(不需要是success的)的回调函数

这个方法默认使用 GET 方式来传递的,如果[data]参数有传递数据进去,就会自动转换为POST方式的。jQuery 1.2 中,可以指定选择符,来筛选载入的 HTML 文档,DOM 中将仅插入筛选出的 HTML 代码。语法形如 "url #some >selector"。

这个方法可以很方便的动态加载一些HTML文件,例如表单。

示例代码:

$(".ajax.load").load("http://www.cnblogs.com/yeer/archive/2009/06/10/1500682.html .post",

function (responseText, textStatus, XMLHttpRequest){

this//在这里this指向的是当前的DOM对象,即$(".ajax.load")[0]

//alert(responseText)//请求返回的内容

//alert(textStatus)//请求状态:success,error

//alert(XMLHttpRequest)//XMLHttpRequest对象

})

这里将显示结果。

注:不知道为什么URL写绝对路径在FF下会出错,知道的麻烦告诉下。下面的get()和post()示例使用的是绝对路径,所以在FF下你将会出错并不会看到返回结果。还有get()和post()示例都是跨域调用的,发现传上来后没办法获取结果,所以把运行按钮去掉了。

2. jQuery.get( url, [data], [callback] ):使用GET方式来进行异步请求

参数:

url (String) : 发送请求的URL地址.

data (Map) : (可选) 要发送给服务器的数据,以 Key/value 的键值对形式表示,会做为QueryString附加到请求URL中。

callback (Function) : (可选) 载入成功时回调函数(只有当Response的返回状态是success才是调用该方法)。

这是一个简单的 GET 请求功能以取代复杂 $.ajax 。请求成功时可调用回调函数。如果需要在出错时执行函数,请使用 $.ajax。示例代码:

$.get("./Ajax.aspx", {Action:"get",Name:"lulu"}, function (data, textStatus){

//返回的 data 可以是 xmlDoc, jsonObj, html, text, 等等.

this// 在这里this指向的是Ajax请求的选项配置信息,请参考下图

alert(data)

//alert(textStatus)//请求状态:success,error等等。

当然这里捕捉不到error,因为error的时候根本不会运行该回调函数

//alert(this)

})

点击发送请求:

jQuery.get()回调函数里面的 this ,指向的是Ajax请求的选项配置信息:

3. jQuery.post( url, [data], [callback], [type] ) :使用POST方式来进行异步请求

参数:

url (String) : 发送请求的URL地址.

data (Map) : (可选) 要发送给服务器的数据,以 Key/value 的键值对形式表示。

callback (Function) : (可选) 载入成功时回调函数(只有当Response的返回状态是success才是调用该方法)。

type (String) : (可选)官方的说明是:Type of data to be sent。其实应该为客户端请求的类型(JSON,XML,等等)

这是一个简单的 POST 请求功能以取代复杂 $.ajax 。请求成功时可调用回调函数。如果需要在出错时执行函数,请使用 $.ajax。示例代码:

Ajax.aspx:

Response.ContentType = "application/json"

Response.Write("{result: '" + Request["Name"] + ",你好!(这消息来自服务器)'}")

jQuery 代码:

$.post("Ajax.aspx", { Action: "post", Name: "lulu" },

function (data, textStatus){

// data 可以是 xmlDoc, jsonObj, html, text, 等等.

//this// 这个Ajax请求的选项配置信息,请参考jQuery.get()说到的this

alert(data.result)

}, "json")

点击提交:

这里设置了请求的格式为"json":

如果你设置了请求的格式为"json",此时你没有设置Response回来的ContentType 为:Response.ContentType = "application/json"那么你将无法捕捉到返回的数据。

注意一下,alert(data.result)由于设置了Accept报头为“json”,这里返回的data就是一个对象,并不需要用eval()来转换为对象。

ajax调用java后台的方法,其实是通过url链接来访问,示例如下:package com.xxxx.xxxx.servlet

import java.io.IOException

import java.sql.Connection

import java.sql.PreparedStatement

import java.sql.ResultSet

import java.sql.SQLException

import javax.naming.Context

import javax.naming.InitialContext

import javax.servlet.ServletException

import javax.servlet.http.HttpServlet

import javax.servlet.http.HttpServletRequest

import javax.servlet.http.HttpServletResponse

import javax.sql.DataSource

public class oaLoginLimitedServlet extends HttpServlet {

private static final long serialVersionUID = 1L

private static Connection conn=null

private static PreparedStatement pstmt=null

public oaLoginLimitedServlet() {

super()

}

public void destroy() {

super.destroy()

}

public static String getCount(String userid)

{

String v_sql="....."

String v_count=""

try {

pstmt = conn.prepareStatement(v_sql)

pstmt.setString(1, userid)

ResultSet rs = pstmt.executeQuery()

while(rs.next()){

v_count = rs.getString(1)

}

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace()

}finally{

try {

pstmt.close()

conn.close()

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace()

}

}

return v_count

}

public static Connection getConnection(){

Context ctx = null

try {

ctx = new InitialContext()

DataSource ds = (DataSource)ctx.lookup("jndiname")

conn = ds.getConnection()

} catch (Exception e) {

e.printStackTrace()

}

return conn

}

public void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

String v_userid=request.getParameter("userid")

System.out.println(v_userid)

getConnection()

String v_count=getCount(v_userid)

response.setCharacterEncoding("UTF-8")

response.getWriter().write(v_count)

response.flushBuffer()

}

public void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

doPost(request,response)

}

}

如果要前端能够访问到该servlet,需要将该servlet注册到 web.xml文件中。需要在web.xml文件中添加以下内容

[html] view plaincopy

<servlet>

<servlet-name>oaLoginLimitedServlet</servlet-name>

<servlet-class>com.xxxx.xxxx.servlet.oaLoginLimitedServlet</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>oaLoginLimitedServlet</servlet-name>

<url-pattern>/oaLoginLimitedServlet</url-pattern>

</servlet-mapping>

重启相关服务。

通过ajax就可以调用了。

[html] view plaincopy

var msg = $.ajax({

type: "post",

url: ....+'/oaLoginLimitedServlet?userid='+ $('#act').val(),

async:false

}).responseText

https://zhidao.baidu.com/question/2201763852265627548.html