Я конвертирую приложение, написанное на Java, для возможности запуска через браузер.Это приложение для ставок и прогнозирования результатов спортивных матчей.
Первая часть приложения позволяет всем пользователям этого раунда вводить свое имя.
Затем в doPost первого сервлета getParameter вызывает параметр «name» из jsp, который запрашивает отправку своих данных сервлету.Затем я создаю экземпляр нового объекта с именем, именем которого является этот параметр.Этот экземпляр объекта затем добавляется в список.Список определен в том же сервлете.
В другом сервлете я пытаюсь отобразить содержимое списка с помощью метода toString.Но этот список всегда оказывается пустым.Я ожидаю, что где-то делаю ошибку, но не могу понять.
Любой совет, как это сделать?Я никогда раньше не работал с сервлетами или файлами jsp, и у меня ограниченные знания HTML, поэтому я должен ошибаться в этом.Я пытался найти хорошие учебники, но это либо все Maven / Vaadin, либо другие файлы, и я работаю из Eclipse, используя Dynamic Web Project и никаких внешних библиотечных файлов.Ergo, я не могу понять.
Мой код:
Мой сервлет, который сначала перенаправляет в файл JSP, который имеет HTML-код для заполнения имени пользователя.Затем он пытается получить содержимое в doPost:
@WebServlet("/voerDeelnemersOp")
public class voerDeelnemersOp extends HttpServlet {
private static final long serialVersionUID = 1L;
private List<Deelnemer> deelnemers = new ArrayList<Deelnemer>();
public List<Deelnemer> getDeelnemers() {
return deelnemers;
}
public void setDeelnemers(List<Deelnemer> deelnemers) {
this.deelnemers = deelnemers;
}
public voerDeelnemersOp() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.sendRedirect("deelnemerOpvoeren.jsp");
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String naamDeelnemer = request.getParameter("naam");
Deelnemer deelnemer = new Deelnemer(naamDeelnemer);
deelnemers.add(deelnemer);
doGet(request, response);
}
}
И сервлет, который пытается отобразить массив:
@WebServlet("/bekijkDeelnemers")
public class bekijkDeelnemers extends HttpServlet {
private static final long serialVersionUID = 1L;
private voerDeelnemersOp voerDeelnemersOp;
private List<nl.WebApp.Deelnemer> deelnemers;
public void init() {
voerDeelnemersOp = new voerDeelnemersOp();
deelnemers = voerDeelnemersOp.getDeelnemers();
}
public bekijkDeelnemers() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
PrintWriter out = response.getWriter();
out.print("deelnemers: ");
out.print(deelnemers.toString());
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
Класс объекта
public class Deelnemer {
private String naam;
private Integer score;
public Deelnemer(String naam) {
super();
this.naam = naam;
}
public String getNaam() {
return naam;
}
public void setNaam(String naam) {
this.naam = naam;
}
public Integer getScore() {
return score;
}
public void setScore(Integer score) {
this.score = score;
}
@Override
public String toString() {
return "Deelnemer [naam=" + naam + ", score=" + score + "]";
}
}