Если вы хотите что то передать в JavaScript, лучше предварительно перевести это в json, в вашем случае это коллекция.
Передать данные в JavaScript/ JQuery можно двумя способами:
- Непосредственно в код javascript;
- Сделать ajax запрос на сервер.
Передать данные при загрузки странице
Сервлет
@WebServlet(urlPatterns = "/home") // javax.servlet-api 3.0
public class HomeServlet extends HttpServlet {
private final Gson gson = new Gson();
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
List<String> users = Arrays.asList("Vaya", "Petya", "Fedya");
String json = gson.toJson(users);
req.setAttribute("usersJson", json);
req.getRequestDispatcher("/home.jsp").forward(req,resp);
}
}
Страница
<html>
<head>
<script src="js/jquery-1.9.1.js"></script>
</head>
<body>
<script>
var users = ${usersJson};
$.each(users, function(i, val) {
.....................
});
</script>
</body>
</html>
Получение данных с помощью AJAX запроса
Сервлет
@WebServlet(urlPatterns = "/json")
public class JsonServlet extends HttpServlet {
private final Gson gson = new Gson();
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
List<String> users = Arrays.asList("Vaya", "Petya", "Fedya");
resp.addHeader("Content-Type", "application/json");
String json = gson.toJson(users);
resp.getWriter().print(json);
resp.flushBuffer();
}
}
Страница
<html>
<head>
<script src="js/jquery-1.9.1.js"></script>
</head>
<body>
<script>
$.get('json', function(data) {
$.each(data, function(i, val) {
..............................
});
});
</script>
</body>
</html>