Traitement de formulaire avec JSP

Signaler
Messages postés
292
Date d'inscription
lundi 6 novembre 2006
Statut
Membre
Dernière intervention
12 mai 2013
-
 ahmeddums2i -
salut tout le monde

j'ai une page html et page jsp et je veux controler la saisies des champs

la page html contient un formulaire je veux afficher message devant chaque type="text" ,par exemple si agent ne saisie pas ou oublie de saisir le nom alors un message sera afficher d'erreur devant la case

je vous montre

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">

<html>
<head><title>Messages</title></head>



<form action="jagent.jsp" method="post">
Nom,
,

----

Prénom,





</form>

</html>



et
jagent
<%@page import="java.sql.*"%>
<%@page import="oracle.jdbc.*"%>
<%@page import="oracle.sql.*"%>


<%

String nom = request.getParameter("nom");
String prénom= request.getParameter("prénom");

out.println("le nom de l'agnet " + nom + " et le prénom =" + prénom);

Connection conn=null;
try {

Connection connection = null;
// Load the JDBC driver
String driverName = "oracle.jdbc.driver.OracleDriver";
Class.forName(driverName);

// Create a connection to the database
String serverName = "10.133.0.25";
String portNumber = "1521";
String sid = "fin";
String url = "jdbc:oracle:thin:@" + serverName + ":" + portNumber +":" + sid;


String username = "DEV";
String password = "MUSTAPHA";


connection = DriverManager.getConnection(url, username, password);

Statement instruction = connection.createStatement();

if (nom.length()<1 ) {
out.println("cette information est obligatoire " +"
" );


}

else {
int jagent = instruction.executeUpdate("INSERT INTO agent(nom,prénom)VALUES ('"+nom+"','"+prénom+"')");
}

}
catch (Exception gD) {
System.out.println("ERREUR1 " + gD);

}
%>
je veux afficher ce message "cette information est obligatoire" devant la case nom

6 réponses

Messages postés
7
Date d'inscription
mercredi 1 décembre 2010
Statut
Membre
Dernière intervention
19 avril 2011
1
Il faut changer le code dans la jsp aussi:

connexion.jsp:
<%
if (request.getParameter("ok1") != null && request.getParameter("ok2") != null)
{
   out.println("<tr><td colspan="0">Veuillez remplir le nom et le prénom!!</td></tr>");
}else
{
   if (request.getParameter("ok1") != null)
   {
      out.println("<tr><td colspan="0">Veuillez remplir le nom!!</td></tr>");
   }
   if (request.getParameter("ok2") != null)
   {
      out.println("<tr><td colspan="0">Veuillez remplir le prénom!!</td></tr>");
   }
}
%>


Ceci devrait fonctionner.
Messages postés
7
Date d'inscription
mercredi 1 décembre 2010
Statut
Membre
Dernière intervention
19 avril 2011
1
Bonjour,

Pourquoi utiliser une page html et jsp: c'est sensiblement la même chose. Je pense qu'il vaudrait mieux passer par une jsp qui affiche les champs de saisis et une servlet qui gère les informations transmises.

Voici les codes des 2 pages :

Dans la jsp(connexion.jsp par exemple):

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">

<html>
<head><title>Messages</title></head>



<form action="jagent" method="post">
<%
if (request.getParameter(\"ok\") != null)
{
out.println(\"----
Veuillez remplir tous les champs!!, \");
}
%>

----

Nom,
,

----

Prénom,




</form>

</html> 


Et pour la servlet qui va controler si les champs sont remplis (si oui: connexion a la base, si non: retour à la jsp) (jagent.java):

String nom = request.getParameter("nom");
String prenom = request.getParameter("prenom");

if (nom.equals("") || prenom.equals("")) {
response.sendRedirect("connexion.jsp?ok=true");
} else {
 //Connexion base de donnée etc...
}



Voila, j'espère que tu comprendras, sinon n'hésites pas à poser des questions.
Messages postés
292
Date d'inscription
lundi 6 novembre 2006
Statut
Membre
Dernière intervention
12 mai 2013
1
merci je m'avance mais comment faire tester si le nom est vide afficher message Veuillez remplir le Nom"
sinom si le prénpm est vide afficher message "Veuillez remplir le prénom"

car ça fonctionne pas le teste :

if (nom.equals("") ){
response.sendRedirect("exemple.jsp?ok1=true");
}
else if (prenom.equals(""))
{
response.sendRedirect("exemple.jsp?ok2=true");
}
Messages postés
292
Date d'inscription
lundi 6 novembre 2006
Statut
Membre
Dernière intervention
12 mai 2013
1
voila les deux fichier exemple.jsp
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">

<html>
<head><title>Messages</title></head>



<form action="test" method="post">
<%
if (request.getParameter(\"ok1\") != null && request.getParameter(\"ok2\") != null)
{

out.println(\" Veuillez remplir les champs !!, \");
}
%>

----

Nom,

,
<%
if (request.getParameter(\"ok1\") != null)
{
out.println(\" Veuillez remplir le nom!!, \");
}
%>

----

Prénom,
,
<%
if (request.getParameter(\"ok2\") != null)
{
out.println(\" Veuillez remplir le prénom!!, \");
}
%>




</form>

</html>


et le fichier servlet test.java



import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
* Servlet implementation class test
*/
@WebServlet("/test")
public class test extends HttpServlet {
private static final long serialVersionUID = 1L;

/**
* @see HttpServlet#HttpServlet()
*/
public test() {
super();
// TODO Auto-generated constructor stub
}

/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

}

/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
PrintWriter out = response.getWriter();
String nom = request.getParameter("nom");
String prenom = request.getParameter("prenom");


if (nom.equals("") || prenom.equals("")) {
response.sendRedirect("exemple.jsp?ok1=true?ok2=true");
}
else if (nom.equals("") ){
response.sendRedirect("exemple.jsp?ok1=true");
}
else if (prenom.equals(""))
{
response.sendRedirect("exemple.jsp?ok2=true");
}



}

}


mais ça marche pas je ne sais pas pk
Messages postés
7
Date d'inscription
mercredi 1 décembre 2010
Statut
Membre
Dernière intervention
19 avril 2011
1
Bonjour,

Je pense que le problème vient du fait que la page .jsp s'appelle exemple, le programme démarre par défaut sur index.jsp.

2 solutions:

1) Renommer exemple.jsp par index.jsp et changer les renvoi a cette page dans la servlet
2) Créer le fichier web.xml qui dira que le programme doit lancer exemple.jsp par défaut:

créer un nouveau fichier web/Standard Deployment Descriptor (web.xml) et y rajouter ce code:


<welcome-file-list>
<welcome-file>exemple.jsp</welcome-file>
</welcome-file-list>

Ceci devrait donner:

<web-app>
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>exemple.jsp</welcome-file>
</welcome-file-list>
</web-app>


Après tu auras des problème de NullPointerException et quand tu ne mettras ni le nom ni le prénom, les 3 messages s'afficheront.

Voila, en espérant avoir aidé,

Bonne journée.

tu dois creer une page html: pour le format de saisir les champs de text
ensuite une page servlet ou jsp qui contient un code java de traitement en liant une liaison entre deux page et afficher les resultats