如何使用ajax调用java类

Python015

如何使用ajax调用java类,第1张

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

//方式一:使用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(接收的参数)