用户必须键入链接/ creationClient才能看到创建表单放置信息,并且使用我的servlet我会检查这些信息并将用户转发到另一个页面以显示他所放置的信息。问题出在我的doGet方法上。这是代码。
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//processRequest(request, response);
this.getServletContext().getRequestDispatcher("/CreerClient.jsp").forward(request, response);
String nom= request.getParameter("nomClient");
String prenom = request.getParameter("prenomClient");
String adresse = request.getParameter("adresseClient");
String telephone= request.getParameter("telephoneClient");
String email= request.getParameter("emailClient");
String message;
if(nom.trim().isEmpty() || telephone.trim().isEmpty() || adresse.trim().isEmpty()){
message= "Erreur, Remplissez tous les champs obligatoires.</br> <a href=\"CreerClient.jsp\" Retour au formulaire de creation d'un Client";
}else
{
message="Creation résussie!";
}
Client client = new Client();
client.setNom(nom);
client.setPrenom(prenom);
client.setAdresse(adresse);
client.setTelephone(telephone);
client.setEmail(email);
request.setAttribute("client", client);
request.setAttribute("message", message);
this.getServletContext().getRequestDispatcher("AfficherClient.jsp").forward(request, response);
}
答案 0 :(得分:0)
如果您已将数据保存到数据库,则可以从第二页再次检索数据。
由于您的代码目前没有显示任何数据库活动,我会说您最好的选择是将数据存储在session中。请参阅示例How do you store Java objects in HttpSession?
答案 1 :(得分:0)
这是你的问题,你的doGet方法的第一行:
this.getServletContext().getRequestDispatcher("/CreerClient.jsp").forward(request, response);
在你方法的最后一行,你有另一个前锋:
this.getServletContext().getRequestDispatcher("AfficherClient.jsp").forward(request, response);
不确定为什么你有2次调用forward()。尝试删除第一行代码。
答案 2 :(得分:-1)
我看到了自己的错误。首先,我必须删除第4行转发。 然后我不得不通过它的名称(CreerClient.jsp)调用填充表单页面我直接调用它的servlet模式(/ creationClient)我之所以推出第一个转发使其显示。 现在,如果我用它的名字命名并提交表格,我会得到正确的结果。 谢谢大家的帮助。 最后一个问题,如果我找到你,我不应该在同一个doGet方法中使用两个转发吗?