Как именно jsp файлы и сервлеты взаимодействуют друг с другом? - PullRequest
0 голосов
/ 12 февраля 2019

Я конвертирую приложение, написанное на 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 + "]";
}

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...