3 回答
TA贡献1827条经验 获得超7个赞
你应该使用 request.getAttribute():
<% List<Employee> theEmployees = request.getAttribute("employees");%>
但是如果你想在你的 javascript 中有效地使用它,建议将它转换为 json。
TA贡献1777条经验 获得超3个赞
尝试将您的 servlet 响应更改为 json 并使用 Ajax 获取数据这是一个示例!
var ajax = new XMLHttpRequest();
ajax.open("GET", "your_url_here", 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);
}
}
TA贡献1789条经验 获得超8个赞
对于像我这样的其他菜鸟,我已经为这个问题编制了以下完整的解决方案:
Servlet 应该看起来像这样:
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws
ServletException, IOException {
resp.setContentType("application/json");
List<Employee> employees = uds.findAll();
String json = new ObjectMapper().writeValueAsString(employees);
resp.getWriter().write(json);
uds.findAll()是一个返回对象列表的方法。ObjectMapper 是 Jackson 实用程序(我相信 Gson 是另一种选择)。这会将列表放入 JSON 格式。
HTML 或 JSP 应如下所示:
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(JSON.parse(data));
}
}
这将以可用格式获取对象列表,然后您可以使用 JavaScript 对其进行操作以执行任何您喜欢的操作。希望这会帮助别人!
添加回答
举报