Servlet,jsp,html

Fermé
hey - 23 mai 2010 à 16:25
BadGuitarist Messages postés 367 Date d'inscription dimanche 12 octobre 2008 Statut Membre Dernière intervention 20 octobre 2013 - 23 mai 2010 à 17:53
Bonjour,

Je fais une appli web av tomcat.

J'ai un formulaire avec une methode post, et qui actionne un servlet mais sa ne fonctionne pas trés bien.

En admettant que je laisse le champ vide, quand je clique sur envoyer je devrais avoir le message d'erreur du jsp

voici le code html:

<form method="post" action="/projet/WEB-INF/classes/IdentificationServlet/">

<TABLE BORDER=0>
<tr>
<td>Nom</td>
<td>
<INPUT type=text name="nomUtilisateur">
</td>
</tr>
<INPUT type="submit" value="Envoyer">
</form>



le code de la servlet:

public class IdentificationServlet extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException,ServletException
{
response.sendRedirect("/projet/index.html");
}

public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException,ServletException
{
String nomUtilisateur= request.getParameter("nomUtilisateur");

if(nomUtilisateur.length()==0)
{
request.setAttribute("erreur","le nom d'utilisateur n'a pas été renseigné !");
getServletContext().getRequestDispatcher("/jsp/erreur.jsp").forward(request,response);
}
}


erreur.jsp:

<html>
<body>
<h1> Erreur d'identification </h1>

<%=request.getAttribute("erreur") %>

</body>
</html>




le web.xml:

<servlet>
<servlet-name>IdentificationServlet</servlet-name>
<servlet-class>IdentificationServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>IdentificationServlet</servlet-name>
<url-pattern>/servlet/IdentificationServlet</url-pattern>
</servlet-mapping>


Quand j'execute sa me met erreur 404....
Help me please!!
merci

A voir également:

3 réponses

BadGuitarist Messages postés 367 Date d'inscription dimanche 12 octobre 2008 Statut Membre Dernière intervention 20 octobre 2013 27
23 mai 2010 à 16:55
Bonjoiur Hey,

Essaie cela :

if(nomUtilisateur==null || nomUtilisateur.length()==0) 
{ 
  request.setAttribute("erreur","le nom d'utilisateur n'a pas été renseigné !"); 

  RequestDispatcher rd = getServletContext().getRequestDispatcher("/jsp/erreur.jsp");

  rd.forward(request,response);
}


D'autre part, as-tu vérifié si ta servlet était bien configurée en la lançant directement dans ton navigateur (sans passer par ton application) : faire un truc du genre :

http://127.0.0.1/tonSiteWeb/servlet/IdentificationServlet

Si ta servlet est bien configurée, tu devrais obtenir ta page d'erreur.
0
j'arrive meme pas a voir si ma servlet est bien configurée^^ je te donne larchitecture de l'appli:

apache6.0
|->webapps
|->projet


Dans projet il y a un repertoire jsp, un repertoire WEB-INF, et un fichier index.html

Est ce que l'erreur ne viendrait elle^pas du chemin dans le formulaire apré action="..." ?!
0
BadGuitarist Messages postés 367 Date d'inscription dimanche 12 octobre 2008 Statut Membre Dernière intervention 20 octobre 2013 27
23 mai 2010 à 17:53
Hey,

Tu vas légèrement changer le code de ta servlet pour vérifier si c'est la recherche de ta jsp erreur.jsp qui pose problème :

import java.io.PrintWriter;
import javax.servlet.*;
import javax.servlet.http.*;

public class IdentificationServlet extends HttpServlet
{ 

  private static final String CONTENT_TYPE = "text/html; charset=windows-1252";


  public void init(ServletConfig config) throws ServletException
  {
    super.init(config);
  }


  public void doGet(HttpServletRequest request, HttpServletResponse response) 
  throws IOException,ServletException 
  { 
      response.sendRedirect("/projet/index.html"); 
   } 


  public void doPost(HttpServletRequest request, HttpServletResponse response) 
  throws IOException,ServletException 
  { 
     String nomUtilisateur= request.getParameter("nomUtilisateur"); 

    response.setContentType(CONTENT_TYPE);
    
    PrintWriter out = response.getWriter();

    out.println("<br>");


     if(nomUtilisateur==null || nomUtilisateur.length()==0) 
         out.println("<h1>Utilisateur non connecté.</h1>");
     else
         out.println("<h1>Utilisateur "+nomUtilisateur+" connecté.</h1>");

     out.close();

  }

} 




Cela permet déjà de vérifier la config de ta servlet.

Remarque : d'après ta config, ta servlet ne fait pas partie d'un package.
0