我正在转换一个用Java编写的应用程序,以便能够通过浏览器运行。这是一个用于下注并预测体育比赛结果的应用程序。
应用程序的第一部分允许该回合的所有用户输入其姓名。
然后在第一个servlet的doPost中,getParameter从jsp调用“ name”参数,该参数请求将其数据发送到servlet。 然后,我使用名称实例化一个新对象,该名称就是该参数。 然后将该实例化的对象添加到列表中。该列表在同一servlet中定义。
在另一个servlet中,我试图通过toString方法显示List的内容。但是,此列表始终最终为空。 我希望我在某处犯了一个错误实例化错误,但我无法弄清楚。
有关如何进行此操作的任何建议?我以前从未使用过servlet或jsp文件,并且对HTML的了解有限,所以我一定会在这方面犯错误。我试图寻找好的教程,但是它要么全部是Maven / Vaadin要么是其他文件,并且我正在使用动态Web项目从Eclipse开始工作,并且没有外部库文件。嗯,我不知道。
我的代码:
我的servlet首先重定向到具有html代码以填写用户名的jsp文件。然后,它尝试检索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);
}
}
以及试图显示数组的servlet:
@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 + "]";
}
}