java servlet ajax,如何从servlet获取数据到ajax成功

I am trying to get data from servlet to ajax in post but it always go to error part that saying like "undefined" am new to ajax kinldy help on this.

Insert part working good but am trying to fetch value to go error part??

servlet

package Servlet;

import java.io.IOException;

import java.sql.Connection;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.util.ArrayList;

import javax.servlet.ServletException;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import Databases.databases;

/**

* Servlet implementation class Form

*/

@WebServlet(asyncSupported = true, urlPatterns = { "/Form" })

public class Form extends HttpServlet {

private static final long serialVersionUID = 1L;

/**

* @see HttpServlet#HttpServlet()

*/

public Form() {

super();

// TODO Auto-generated constructor stub

}

/**

* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)

*/

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

// TODO Auto-generated method stub

}

/**

* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)

*/

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

// TODO Auto-generated method stub

System.out.println("sssssssss");

//System.out.println("input are====>"+input);

//response.setContentType("text/plain;charset=UTF-8");

response.setContentType("text/html");

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

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

System.out.println("name===>"+name);

System.out.println("job===>"+job);

ArrayList al=new ArrayList();

String a="";

String b="";

//databases d=new databases();

try {

Connection con=databases.getconnection();

String sql="insert into senthiil(name,job)values(?,?)";

PreparedStatement ps=con.prepareStatement(sql);

ps.setString(1, name);

ps.setString(2, job);

System.err.println("sql===>"+ps);

// ps.execute();

//con.commit();

String select="select name,job from senthiil";

PreparedStatement psselect=con.prepareStatement(select);

System.out.println("select======>"+psselect);

ResultSet rs=psselect.executeQuery();

while(rs.next())

{

al.add(rs.getString(1));

al.add(rs.getString(2));

System.out.println("al====>"+al);

request.setAttribute("data", al);

/*a=rs.getString(1);

b=rs.getString(2);

*/

}

//response.getWriter().write(a);

response.getWriter().write("{issue:true}");

response.getWriter().print(al);

response.getWriter().close();

}

catch (ClassNotFoundException | SQLException e)

{

// TODO Auto-generated catch block

e.printStackTrace();

System.out.println("e");

}

}

}

js:

$(document).ready(function()

{

$("#submit").click(function(){

alert("senthil");

var name=$("#name").val();

var job=$("#job").val();

// var datastring="name" + + "&job=" + job; // option one type:'post',

//alert("datastring=======>"+datastring);

$.ajax({

url: "Form",

data: {"name": name, "job": job},

dataType: 'text/html',

type: 'post',

success: function(data)

{

alert("ssssss");

alert("data===>"+data);

console.log(data);

},

error: function(e) {

alert('Error: ' + e.message);

}

});

});

});

解决方案

You should format your data to json type so the client side can receive it withour error. At your server side, please changes your response content Type to : "application/json"

response.setContentType("application/json");

At your ajax call changes dataType to json, and change the console log to check if it work:

dataType: 'json',

alert("data===>"+data.issue);

You should format your a1 List to a json string and append the string to the response object at response.getWriter().write("{issue:true}");, this library can help you to parse java object to json string:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值