gpt4 book ai didi

javascript - 在 JavaScript 中从 Servlet 引用 Java 列表

转载 作者:行者123 更新时间:2023-12-02 03:23:39 25 4
gpt4 key购买 nike

我有一个从 Postgres 数据库中提取的列表,我需要能够使用 JavaScript 引用/操作它。

我已更新代码,如下所示:

这是 Servlet 的 doGet 方法:

protected void doGet(HttpServletRequest req, HttpServletResponse json) 
throws ServletException, IOException {

List<Employee> employees = uds.findAll();
req.setAttribute("employees", employees);
json.setContentType("application/json");
json.getWriter().write(String.valueOf(employees));


}

这是我目前在 JavaScript 中拥有的内容:

var ajax = new XMLHttpRequest();

ajax.open("GET", "http://localhost:8080/project1attempt/servlet", true);

// send request
ajax.send();

// event to get response
ajax.onreadystatechange = function() {
// Case state is 4 e o http.status for 200, your request is OK.
if (ajax.readyState == 4 && ajax.status == 200) {
var data = ajax.responseText;
// the return
console.log(data);
}
}
}

我现在遇到的问题是客户端没有接收 JSON 格式的数据。如果我记录如上所示的数据,日志将产生如下内容:

[Employee{, employee_id='123456', email='lt@gmail.com', firstName='Juan', 
lastName='Terri'}, Employee{, employee_id='2', email='sstark@mail.com',
firstName='Sansa', lastName='Stark'}]

这是正确的数据,但不是有用的格式。

但是,如果我尝试执行 console.log(JSON.parse(data)),则会收到 Uncaught SyntaxError: Unexpected token E in JSON atposition 1 .

我相信这是我在 servlet 中的一个简单语法错误,但不确定如何修复它。

最佳答案

您应该使用 request.getAttribute():

<%
List<Employee> theEmployees = request.getAttribute("employees");
%>

但是如果你想在你的javascript中有效地使用它,建议将其转换为json。

关于javascript - 在 JavaScript 中从 Servlet 引用 Java 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56916289/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com