ajax一直不能进入到success方法总是error

Pittttttttt 2017-12-27 02:55:11
public class UserDaoImpl implements UserDao {
@Override
public User login(User user) {
Connection con = null;
PreparedStatement ps = null;
ResultSet rs = null;
ArrayList<User> barArr = new ArrayList<User>();
try {
con = BaseDao.getCon();
String sql = "select * from user where name=? and password=?";
ps = con.prepareStatement(sql);
ps.setString(1, user.getName());
ps.setString(2, user.getPassword());
rs = ps.executeQuery();
User users;
if (rs.next()) {
users = new User();
users.setId(rs.getInt("id"));
users.setName(rs.getString("name"));
users.setPassword(rs.getString("password"));
users.setEmail(rs.getString("email"));
users.setPhone(rs.getString("phone"));
users.setMoney(rs.getString("money"));
barArr.add(users);
return users;
} else {
return null;
}
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}

@Override
public boolean register(User user) {
String sql = "insert into user values(0,?,?,?,?,?) ";
List<Object> list = new ArrayList<Object>();
list.add(user.getName());
list.add(user.getPassword());
list.add(user.getEmail());
list.add(user.getPhone());
list.add(user.getMoney());

boolean flag = BaseDao.addUpdateDelete(sql, list.toArray());
if (flag) {
return true;
} else {
return false;
}
}

public ArrayList<User> query() {
Connection con = null;
ArrayList<User> barArr = new ArrayList<User>();
try {
con = BaseDao.getCon();
PreparedStatement stmt = con.prepareStatement("select * from user");
ResultSet rs = stmt.executeQuery();
while (rs.next()) {
User bar = new User();
bar.setName(rs.getString("name"));
bar.setEmail(rs.getString("email"));
bar.setMoney(rs.getString("money"));
bar.setPassword(rs.getString("password"));
bar.setPhone(rs.getString("phone"));
barArr.add(bar);
}
con.close();
} catch (SQLException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return barArr;
}

}


@WebServlet("/user/userlogin")
public class UserLoginServlet extends HttpServlet {

private static final long serialVersionUID = 1L;

@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);
}

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
User user = new User();
// 获取login.jsp页面提交的账号和密码
String name = request.getParameter("name");
String password = request.getParameter("password");
String money=request.getParameter("money");
// 测试数据
System.out.println(name + " " + password+" "+money);
// 获取login.jsp页面提交的账号和密码设置到实体类User?
user.setName(name);
user.setPassword(password);
HttpSession session = request.getSession();
// 引入数据交互层
UserDao dao = new UserDaoImpl();
User us = dao.login(user);
// 测试返回的值
System.out.println(us);
if (us != null) {
session.setAttribute("user", user);
request.getRequestDispatcher("/index/echarts.jsp").forward(request, response);

// request.setAttribute("info", "登录成功");
} else {
request.setAttribute("info", "登录失败");
request.getRequestDispatcher("/index/info.jsp").forward(request, response);

}

UserDaoImpl barDao = new UserDaoImpl();
ArrayList<User> barArr = barDao.query();
response.setContentType("text/html; charset=utf-8");
JSONArray json = JSONArray.fromObject(barArr);
System.out.println("得到的数据:"+json.toString());
PrintWriter writer = response.getWriter();
writer.println(json);
writer.flush();
writer.close();
}
}



public class BaseDao {

private static String driver;
private static String url;
private static String user;
private static String password;
private static String money;

static {
driver = ResourceBundle.getBundle("db").getString("driver");
url = ResourceBundle.getBundle("db").getString("url");
user = ResourceBundle.getBundle("db").getString("user");
password = ResourceBundle.getBundle("db").getString("password");
}

public static Connection getCon() throws ClassNotFoundException, SQLException {
Class.forName(driver);
System.out.println("测试加载数据库成功");
Connection con = DriverManager.getConnection(url, user, password);
System.out.println("测试数据库连接成功");
return con;
}

public static void close(Connection con, PreparedStatement ps, ResultSet rs) {
if (rs != null) {// 关闭
try {
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if (ps != null) {
try {
ps.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if (con != null) {
try {
con.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

public static boolean addUpdateDelete(String sql, Object[] arr) {
Connection con = null;
PreparedStatement ps = null;
try {
con = BaseDao.getCon();// 第一步 :连接数据库的操作
ps = con.prepareStatement(sql);// 第二步:预编译
// 第三步:设置值
if (arr != null && arr.length != 0) {
for (int i = 0; i < arr.length; i++) {
ps.setObject(i + 1, arr[i]);
}
}
int count = ps.executeUpdate();// 第四步:执行sql语句
if (count > 0) {
return true;
} else {
return false;
}
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return false;
}
}

<%@page import="org.apache.catalina.connector.Request"%>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Hello ECharts</title>
<!-- 使用单文件引入的方式使用ECharts.JS -->
<script type="text/javascript" src="../scripts/echarts-all.js"></script>
<script type="text/javascript" src="../scripts/jquery.js"></script>
</head>
<body>
您的用户名是: ${user.name}
<div id="myDiv" style="height: 400px"></div>
<script type="text/javascript">
function loadData(option) {
$.ajax({
type : 'post', //传输类型
async : false,
url : 'users.do', //web.xml中注册的Servlet的url-pattern
data : {
name : name
},
dataType : 'json', //返回数据形式为json

success : function(result) {
if (result) {
option.legend.data = [];
option.series[0].data = [];
for (var i = 0; i < result.length; i++) {
alert(result[i].name + "---" + result[i].money);
option.legend.data.push(result[i].name);
option.series[0].data.push({
name : result[i].name,
value : result[i].money
});
}
myChart.setOption(option);
}
},
error : function(errorMsg) {
alert("加载数据失败"+errorMsg);


}
});//AJAX
}//loadData()
var myChart = echarts.init(document.getElementById('myDiv'));
var option = {
title : {
text : '某站点用户访问来源',
subtext : '纯属虚构',
x : 'center'
},
tooltip : {
trigger : 'item',
formatter : "{a} {b} : {c} ({d}%)"
},
legend : {
orient : 'vertical',
left : 'left',
data : []
},
series : [ {
name : '访问来源',
type : 'pie',
radius : '55%',
center : [ '50%', '60%' ],
data : [],
itemStyle : {
emphasis : {
shadowBlur : 10,
shadowOffsetX : 0,
shadowColor : 'rgba(0, 0, 0, 0.5)'
}
}
} ]
};
//加载数据到option
loadData(option);
//设置option
</script>
</body>


...全文
1478 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
小忧伤18 2018-02-11
  • 打赏
  • 举报
回复
楼上都不在一个频道上,话说2个月了解决没,可远程
Demonor_ 2018-02-08
  • 打赏
  • 举报
回复
liu5645849 2018-01-26
  • 打赏
  • 举报
回复
把errorMsg转换成字符串alert出来(JSON.stringify(errorMsg)),看看是报的什么错! 在users.do对应的servlet里打个断点,看看这个ajax请求到底有没有请求到这个路径!
lifewell1 2018-01-22
  • 打赏
  • 举报
回复
代入参数错误,后台访问
qq_39395218 2018-01-19
  • 打赏
  • 举报
回复
跨域问题吧,或者你的ip绑定了域名了,你就不能使用ip访问你的后台方法了,会执行你的后台方法,但它会一直进你的error方法
小了白了兔O.O 2018-01-19
  • 打赏
  • 举报
回复
这是传说中的servlet么,我建议你直接贴users.do这个对应的方法和ajax方法就好了,其他的都感觉用处不大, 话说,我对servlet真心不熟,不过我给你个建议,你先正常试试这个users.do是好用的么,比如直接在页面中通过表单试试, 先确定这个没有问题.额,然后也没有然后,我只能想到这里了,,正常的ajax请求什么时候会报错,你可以从这个原因处分析分析, 希望鞥帮到你,毕竟我也是一只菜鸟,来混混分,哈哈哈
小了白了兔O.O 2018-01-19
  • 打赏
  • 举报
回复
代码太长不想看系列.....
fengbozhi92 2018-01-17
  • 打赏
  • 举报
回复
好长一坨...
ooo-ooo 2018-01-17
  • 打赏
  • 举报
回复
servlet、controller或者action呢?
无涯子Gary 2018-01-09
  • 打赏
  • 举报
回复
代码太长不想看系列
cloudyzhao 2018-01-09
  • 打赏
  • 举报
回复
是不是跨域的问题
冬天那么冷 2018-01-08
  • 打赏
  • 举报
回复
一般出现这种情况跟ajax的同步异步有关系,不过此处你用的是同步,建议先把echars相关的代码注释掉,只单独访问这个接口。如果还是返回error,就有可能是你后台的数据量访问太大,超过ajax默认的访问时间。
Pittttttttt 2017-12-27
  • 打赏
  • 举报
回复
得到的数据:[{"password":"dz","money":"520","phone":"13245678999","name":"dz","id":0,"email":"dasdsadsa@163.com"},{"password":"qq","money":"998","phone":"13700010101","name":"qq","id":0,"email":"592400000@qq.com"}] 这个是那个UserLoginServlet下面 在控制台打印的json .toString 老哥们需要什么代码 我立马补
Pittttttttt 2017-12-27
  • 打赏
  • 举报
回复
引用 1 楼 hp961218 的回复:
代码太长不想看系列
哇老哥帮帮忙,解决了我扫你支付宝红包!哈哈
hp961218 2017-12-27
  • 打赏
  • 举报
回复
代码太长不想看系列

50,523

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧