Exemples de programmes JSP : formulaire d'inscription et de connexion

โšก Rรฉsumรฉ intelligent

Les exemples de programmes JSP prรฉsentรฉs ici construisent trois modules : un formulaire dโ€™inscription, un formulaire de connexion et de dรฉconnexion, et une page de traitement de formulaire. Chacun relie une vue JSP ร  un contrรดleur de servlet afin que la sรฉparation MVC reste visible pour les dรฉbutants.

  • (I.e. Flux d'inscription : Register_1.jsp collecte six champs et les envoie au servlet guru_register, qui redirige vers une page de succรจs uniquement lorsque tous les champs sont remplis.
  • โ˜‘๏ธ Connexion et dรฉconnexion : Register_3.jsp envoie les identifiants ร  guru_login ; Register_4.jsp accueille l'utilisateur et le redirige vers la page de connexion pour se dรฉconnecter.
  • โœ… Rรดles MVC : Les pages JSP font office de vue, le servlet de contrรดleur, et RequestDispatcher dรฉplace la requรชte entre eux.
  • ๐Ÿงช Traitement des formulaires : Les mรฉthodes getParameter(), getParameterValues(), getParameterNames() et getInputStream() lisent les donnรฉes soumises dans une JSP ou une servlet.
  • ๏ธ GET versus POST : GET ajoute des valeurs encodรฉes ร  la URL et sa longueur est limitรฉe ; la mรฉthode POST transmet des valeurs dans le corps de la requรชte, ce qui convient aux mots de passe.
  • โš ๏ธ Note de version : Ces listes importent javax.servlet, elles fonctionnent donc sur Tomcat 9 ou antรฉrieur ; Tomcat 10 et versions ultรฉrieures nรฉcessitent les packages jakarta.servlet.

Exemples de programmes de formulaires d'inscription et de connexion JSP

Ces exemples pratiques montrent comment dรฉvelopper des programmes d'exemple avec JSP et comment implรฉmenter l'architecture MVC autour de ces programmes. Trois modules sont construits successivement :

  • Formulaire d'inscription
  • Formulaire de connexion et de dรฉconnexion
  • Formulaire JSP

Comment crรฉer un formulaire d'inscription en JSP

Dans un formulaire d'inscription, nous avons un formulaire ร  remplir avec toutes les informations, notamment le nom, le nom d'utilisateur, le mot de passe, l'adresse, le numรฉro de tรฉlรฉphone, etc.

Ce formulaire nous permet de nous inscrire ร  l'application. Il recueille toutes nos informations et les stocke dans un systรจme. base de donnรฉes ou cache.

Dans cet exemple, nous allons prendre le ยซGuru ยซ Formulaire dโ€™inscription ยป, qui comporte les champs suivants :

  1. Prรฉnom
  2. Nom de famille
  3. Nom d'utilisateur ( Ou : Nom d'รฉpouse )
  4. Mot de passe
  5. Adresse
  6. Tรฉlรฉphone

Une fois tous ces dรฉtails renseignรฉs, nous disposons d'un bouton ยซ Soumettre ยป ; en cliquant sur ce bouton, toutes les informations sont envoyรฉes au servlet.

Exemple 1 : Register_1.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Guru Registration Form</title>
</head>
<body>
<h1>Guru Register Form</h1>
<form action="guru_register" method="post">
			<table style="with: 50%">
				<tr>
					<td>First Name</td>
					<td><input type="text" name="first_name" /></td>
				</tr>
				<tr>
					<td>Last Name</td>
					<td><input type="text" name="last_name" /></td>
				</tr>
				<tr>
					<td>UserName</td>
					<td><input type="text" name="username" /></td>
				</tr>
					<tr>
					<td>Password</td>
					<td><input type="password" name="password" /></td>
				</tr>
				<tr>
					<td>Address</td>
					<td><input type="text" name="address" /></td>
				</tr>
				<tr>
					<td>Contact No</td>
					<td><input type="text" name="contact" /></td>
				</tr></table>
			<input type="submit" value="Submit" /></form>
</body>
</html>

Explication du code :

Code Ligne 11: Nous utilisons ici un formulaire qui comporte une action, ร  savoir la servlet ร  laquelle la requรชte sera soumise ; cette servlet se nomme guru_register.java. La requรชte sera traitรฉe via la mรฉthode POST.

Code Ligne 14-16: Ici, le type d'entrรฉe est du texte et le nom est first_name.

Code Ligne 18-20: Ici, le type d'entrรฉe est du texte et le nom est last_name.

Code Ligne 22-24: Ici, le type d'entrรฉe est du texte et le nom est ยซ username ยป.

Code Ligne 26-28: Ici, nous prenons comme type d'entrรฉe ยซ mot de passe ยป (cela masque le mot de passe pendant sa saisie) et comme nom ยซ mot de passe ยป.

Code Ligne 30-32: Ici, le type d'entrรฉe est du texte et le nom est une adresse.

Code Ligne 34-36: Ici, le type d'entrรฉe est du texte et le nom est un contact.

Code Ligne 37: Nous utilisons ici un bouton de type ยซ Envoyer ยป dont la valeur est รฉgalement ยซ Envoyer ยป. En cliquant sur ce bouton, l'action est redirigรฉe vers le servlet guru_register correspondant, oรน toutes les valeurs des paramรจtres sont transmises dans la requรชte.

ร€ noter: l'attribut de table dans Code La ligne 12 se lit style="with: 50%"La propriรฉtรฉ CSS correcte est width, la liste est donc reproduite exactement telle que publiรฉe, mais le tableau ne sera pas dimensionnรฉ tant que cette faute de frappe n'aura pas รฉtรฉ corrigรฉe dans votre propre copie.

Exemple 2: Guru_register.java

package demotest;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class guru_register
 */
public class guru_register extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    
     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		String first_name = request.getParameter("first_name");
		String last_name = request.getParameter("last_name");
		String username = request.getParameter("username");
		String password = request.getParameter("password");
		String address = request.getParameter("address");
		String contact = request.getParameter("contact");
		
		if(first_name.isEmpty() || last_name.isEmpty() || username.isEmpty() || 
				password.isEmpty() || address.isEmpty() || contact.isEmpty())
		{
			RequestDispatcher req = request.getRequestDispatcher("register_1.jsp");
			req.include(request, response);
		}
		else
		{
			RequestDispatcher req = request.getRequestDispatcher("register_2.jsp");
			req.forward(request, response);
		}
	}

}

Explication du code :

Code Ligne 14: Nous dรฉfinissons ici le servlet guru_register, qui รฉtend HttpServlet.

Code Ligne 18: Il s'agit de la mรฉthode doPost(), qui est appelรฉe lorsque nous spรฉcifions POST comme attribut de mรฉthode dans le formulaire JSP ci-dessus.

Code Ligne 20-25: Ici, nous rรฉcupรฉrons les valeurs de la requรชte, ร  savoir first_name, last_name, username, password, address et contact, en utilisant request.getParameter.

Code Ligne 27-32: Nous utilisons ici une condition ยซ si ยป pour vรฉrifier si l'un des paramรจtres rรฉcupรฉrรฉs de la requรชte est vide. Si c'est le cas, le contrรดle entre dans cette condition (first_name.isEmpty() || last_name.isEmpty() || username.isEmpty() || password.isEmpty() || address.isEmpty() || contact.isEmpty()) et nous rรฉcupรฉrons un objet RequestDispatcher ร  partir de l'objet requรชte, qui renvoie la requรชte ร  register_1.jsp. Nous incluons รฉgalement ici les objets requรชte et rรฉponse.

Code Ligne 33-37: Cette branche s'exรฉcute lorsqu'aucun paramรจtre n'est vide. Nous rรฉcupรฉrons un objet RequestDispatcher ร  partir de l'objet requรชte, qui transmet la requรชte ร  register_2.jsp. Ici, nous transmettons les objets requรชte et rรฉponse.

La diffรฉrence entre les deux branches est importante : include() exรฉcute register_1.jsp et renvoie le contrรดle au servlet, tandis que forward() La requรชte est transmise ร  register_2.jsp et ne revient pas.

Exemple 3 : Register_2.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Guru Success Page</title>
</head>
<body>
           <a><b>Welcome User!!!!</b></a>
</body>
</html>

Explication du code :

Code Ligne 10: Nous affichons ici le message de bienvenue. Cette page JSP est appelรฉe lorsque tous les paramรจtres sont renseignรฉs.

Lorsque vous exรฉcutez le code ci-dessus, vous obtenez le rรฉsultat suivant.

Sortie :

La page d'inscription affiche les six champs รฉtiquetรฉs avec un seul bouton ยซ Soumettre ยป, comme indiquรฉ ci-dessous.

Guru Formulaire d'inscription JSP avec champs prรฉnom, nom, nom d'utilisateur, mot de passe, adresse et contact

Une fois tous les champs remplis et aprรจs avoir cliquรฉ sur ยซ Soumettre ยป, guru_register redirige vers register_2.jsp et la page de confirmation apparaรฎt.

Page de confirmation Register_2.jsp affichant le message de bienvenue aprรจs l'inscription

Lorsque nous cliquons sur register_1.jsp, un formulaire s'affiche avec les champs prรฉnom, nom, nom d'utilisateur, mot de passe, adresse et coordonnรฉes. Une fois tous les champs remplis et le bouton ยซ Envoyer ยป cliquรฉ, le message ยซ Bienvenue ! ยป apparaรฎt.

Comment crรฉer un formulaire de connexion et de dรฉconnexion en JSP

Comme pour le formulaire d'inscription, nous allons maintenant crรฉer un formulaire de connexion et de dรฉconnexion.

Dans cet exemple, nous avons utilisรฉ un formulaire de connexion comportant deux champs, ยซ nom d'utilisateur ยป et ยซ mot de passe ยป, et un bouton de soumission.

Lorsque nous cliquons sur le bouton ยซ Envoyer ยป, nous recevons un message de bienvenue avec un bouton de dรฉconnexion.

Lorsque nous cliquons sur le bouton de dรฉconnexion, nous revenons au formulaire de connexion.

Exemple 1 : Register_3.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Guru Login Form</title>
</head>
<body>
<form action="guru_login" method="post">
		<table style="with: 50%">

			<tr>
				<td>UserName</td>
				<td><input type="text" name="username" /></td>
			</tr>
				<tr>
				<td>Password</td>
				<td><input type="password" name="password" /></td>
			</tr>
		</table>
		<input type="submit" value="Login" /></form>
</body>
</html>

Explication du code :

Code Ligne 10: Nous utilisons ici un formulaire dont l'action est la servlet guru_login.java. La mรฉthode de transmission des donnรฉes est POST.

Code Ligne 13-16: Nous utilisons ici un champ de saisie ยซ nom dโ€™utilisateur ยป, qui est de type texte.

Code Ligne 17-20: Nous utilisons ici un champ de saisie ยซ mot de passe ยป, qui est de type mot de passe.

Code Ligne 22: Nous utilisons ici un bouton ยซ Soumettre ยป dont la valeur est ยซ Connexion ยป. En cliquant dessus, le contrรดle est transfรฉrรฉ au servlet guru_login, oรน les deux champs sont lus ร  l'aide de l'objet requรชte.

Exemple 2: Guru_login.java (servlet)

package demotest;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class guru_login
 */
public class guru_login extends HttpServlet {

    public guru_login() {
        super();
        // TODO Auto-generated constructor stub
    }

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		String username = request.getParameter("username");
		String password = request.getParameter("password");
		if(username.isEmpty() || password.isEmpty() )
		{
			RequestDispatcher req = request.getRequestDispatcher("register_3.jsp");
			req.include(request, response);
		}
		else
		{
			RequestDispatcher req = request.getRequestDispatcher("register_4.jsp");
			req.forward(request, response);
		}
	}

}

Explication du code :

Code Ligne 5-9: Nous importons ici les classes nรฉcessaires dans le code.

Code Ligne 14: Nous dรฉclarons ici le servlet guru_login, qui รฉtend HttpServlet.

Code Ligne 21: Nous utilisons ici la mรฉthode doPost(), car le formulaire utilise la mรฉthode POST.

Code Ligne 23-24: Ici, nous lisons les paramรจtres ร  l'aide de l'objet requรชte, c'est-ร -dire le nom d'utilisateur et le mot de passe.

Code Ligne 25-29: Nous utilisons ainsi une condition ยซ si ยป qui vรฉrifie si le nom d'utilisateur et le mot de passe sont vides. Si l'un des deux est vide, nous obtenons un objet RequestDispatcher qui renvoie le contrรดle ร  register_3.jsp avec les objets de requรชte et de rรฉponse.

Code Ligne 30-34: Cette branche s'exรฉcute si les deux valeurs ne sont pas vides ; elle transmet ensuite la requรชte ร  register_4.jsp avec les objets requรชte et rรฉponse.

Exemple 3 : Register_4.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Guru Logged In</title>
</head>
<body>
	<table style="with: 50%">
	<tr><td>
	<% String username = request.getParameter("username"); %>
<a>Welcome   <% out.println(username); %> User!!!! You have logged in.</a></td></tr>
<tr></tr><tr><td></td><td></td><td><a href="register_3.jsp"><b>Logout</b></a></td></tr>
</table>
</body>
</html>

Explication du code :

Code Ligne 12: Ici, nous rรฉcupรฉrons le paramรจtre ยซ username ยป de lโ€™objet requรชte et le stockons dans lโ€™objet chaรฎne de caractรจres username. Cela fonctionne car la fonction forward() conserve intactes la requรชte dโ€™origine, et donc ses paramรจtres.

Code Ligne 13: Ici, nous avons un message de bienvenue avec le nom d'utilisateur.

Code Ligne 14: Voici le lien de dรฉconnexion, qui renvoie l'utilisateur ร  register_3.jsp.

Lorsque vous exรฉcutez le code ci-dessus, vous obtenez le rรฉsultat suivant.

Sortie :

L'ouverture du fichier register_3.jsp affiche les deux champs d'identification et un bouton de connexion.

Guru Formulaire de connexion en JSP affichant les champs nom d'utilisateur et mot de passe avec un bouton Connexion

Aprรจs avoir cliquรฉ sur le bouton Connexion, vous recevrez le message ci-dessous ainsi qu'un lien Dรฉconnexion.

L'รฉcran d'accueil Register_4.jsp accueille l'utilisateur connectรฉ et propose un lien de dรฉconnexion.

Cliquer sur le lien ยซ Dรฉconnexion ยป vous ramรจne ร  la page de connexion affichรฉe ici.

La page de connexion s'affiche ร  nouveau dans le navigateur aprรจs que l'utilisateur a cliquรฉ sur Dรฉconnexion.

ร€ noter: Cet exemple ne compare que les valeurs vides ; par consรฉquent, tout nom dโ€™utilisateur non vide est acceptรฉ. En production, lโ€™authentification doit รชtre vรฉrifiรฉe auprรจs dโ€™un systรจme de stockage de donnรฉes et les mots de passe doivent รชtre hachรฉs, jamais stockรฉs en clair.

Traitement du formulaire JSP ร  l'aide de getParameter()

Les formulaires sont la mรฉthode courante de collecte de donnรฉes pour le traitement web. Il faut envoyer des informations au serveur web, puis les rรฉcupรฉrer cรดtรฉ serveur.

Il existe deux mรฉthodes couramment utilisรฉes pour envoyer et rรฉcupรฉrer des informations au serveur Web.

Mรฉthode GET :

  • Il s'agit de la mรฉthode par dรฉfaut pour transmettre les informations du navigateur au serveur Web.
  • Il envoie les informations encodรฉes ajoutรฉes ร  la page URL, sรฉparรฉs par un caractรจre ?.
  • Il existe รฉgalement une limite de taille ; la recommandation classique est dโ€™environ 1024 caractรจres par requรชte, bien que la limite rรฉelle soit fixรฉe par le navigateur et le serveur plutรดt que par la spรฉcification HTTP.
  • Il convient d'รฉviter d'envoyer des mots de passe et des informations sensibles via la mรฉthode GET.

Mรฉthode POST :

  • La mรฉthode POST est la mรฉthode la plus fiable pour envoyer des informations au serveur.
  • Il envoie les informations sous forme de corps de message sรฉparรฉ plutรดt que dans la barre d'adresse.
  • Parce que les valeurs n'apparaissent jamais aprรจs le ? dans le URLElles ne sont pas stockรฉes dans l'historique du navigateur ni dans les journaux d'accรจs au serveur.
  • Il est couramment utilisรฉ pour transmettre des informations sensibles.

JSP gรจre le traitement des donnรฉes de formulaire ร  l'aide des mรฉthodes suivantes :

  1. getParameter() : utilisรฉ pour obtenir la valeur d'un seul paramรจtre de formulaire.
  2. getParameterValues() : utilisรฉ pour renvoyer les multiples valeurs d'un paramรจtre.
  3. getParameterNames() : utilisรฉ pour obtenir les noms de tous les paramรจtres.
  4. getInputStream() : utilisรฉ pour lire les donnรฉes binaires envoyรฉes par le client.

Exemple :

Dans cet exemple, nous avons utilisรฉ un formulaire comportant deux champs, ยซ nom dโ€™utilisateur ยป et ยซ mot de passe ยป, et un bouton de soumission.

Action_form.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Guru Form</title>
</head>
<body>
<form action="action_form_process.jsp" method="GET">
UserName: <input type="text" name="username">
<br />
Password: <input type="text" name="password" />
<input type="submit" value="Submit" />
</form>
</body>
</html>

Action_form_process.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>

<h1>Form Processing</h1>

<p><b>Welcome User:</b>
   <%= request.getParameter("username")%>
</p>

</body>
</html>

Explication du code : Action_form.jsp

Code Ligne 10: Nous avons ici dรฉfini un formulaire dont l'action est traitรฉe par un autre. JSPDans l'attribut action, nous ajoutons la page JSP ร  laquelle le formulaire doit รชtre soumis via la mรฉthode GET.

Ici, nous utilisons la mรฉthode GET pour transmettre les informations, c'est-ร -dire le nom d'utilisateur et le mot de passe.

Code Ligne 11-14: Ici, nous utilisons des champs comme le nom d'utilisateur et le mot de passe, qui sont des champs de texte, et nous rรฉcupรฉrons les donnรฉes saisies par l'utilisateur.

Ces donnรฉes peuvent รชtre rรฉcupรฉrรฉes ร  l'aide de la mรฉthode getParameter. Un bouton ยซ Envoyer ยป permet รฉgalement de transmettre les valeurs des champs ร  action_form_process.jsp.

Action_form_process.jsp

Code Ligne 14: Ici, nous rรฉcupรฉrons les valeurs des champs de saisie de action_form.jsp en utilisant la mรฉthode getParameter de l'objet requรชte.

Lorsque nous exรฉcutons le code ci-dessus, nous obtenons le rรฉsultat suivant.

Sortie :

Action_form.jsp affiche d'abord le formulaire ร  deux champs prรฉsentรฉ ci-dessous.

Le fichier Action_form.jsp affiche les champs de texte Nom d'utilisateur et Mot de passe avec un bouton Soumettre.

Aprรจs la soumission, action_form_process.jsp affiche le nom d'utilisateur lu avec getParameter().

Page de sortie Action_form_process.jsp affichant l'en-tรชte ยซ Traitement du formulaire ยป et le message de bienvenue

Lorsque nous exรฉcutons action_form.jsp, un formulaire s'affiche avec deux champs : nom d'utilisateur et mot de passe, ainsi qu'un bouton ยซ Envoyer ยป. Aprรจs avoir saisi ces informations, nous cliquons sur ยซ Envoyer ยป, et la requรชte est traitรฉe par la page suivante, qui affiche la page de traitement du formulaire avec un message de bienvenue.

Note de version : Les deux servlets ci-dessus importent javax.servlet, ce qui est correct pour Tomcat 9 et les versions antรฉrieures. Jakarta EE 9 a renommรฉ l'API ; par consรฉquent, sur Tomcat 10 et versions ultรฉrieures, toute importation de javax.servlet devient jakarta.servlet, ou l'application doit รชtre convertie avec l'outil de migration Apache Tomcat pour Jakarta EE.

FAQ

Ces listes concernent Tomcat 9 et les versions antรฉrieures, oรน l'API se trouve dans javax.servlet. Jakarta EE 9 ayant renommรฉ l'espace de noms, Tomcat 10 et les versions ultรฉrieures nรฉcessitent l'importation de jakarta.servlet et une recompilation, ou l'utilisation de l'outil de migration Tomcat.

Ne stockez jamais cette donnรฉe en clair. Hachez-la avec un algorithme lent et salรฉ comme BCrypt ou Argon2 avant de l'enregistrer dans la base de donnรฉes, et comparez les hachages lors de la connexion. Le servlet d'exemple vรฉrifie uniquement les valeurs vides ; le hachage doit donc รชtre ajoutรฉ.

La fonction `include()` exรฉcute la ressource cible et rend le contrรดle au servlet appelant ; les deux rรฉsultats s'affichent donc. La fonction `forward()` transmet la requรชte complรจte ร  la cible et ne revient jamais ; le servlet n'a donc pas nรฉcessairement validรฉ la rรฉponse au prรฉalable.

Les pages JSP constituent la vue, la servlet est le contrรดleur qui lit les paramรจtres et dรฉtermine la destination des requรชtes, et une base de donnรฉes ou une couche de beans fournit le modรจle. RequestDispatcher assure la liaison entre le contrรดleur et la vue.

Les assistants IA peuvent rรฉdiger des branches de validation, repรฉrer les vรฉrifications de valeurs nulles manquantes dans `getParameter()`, suggรฉrer des bibliothรจques de hachage et expliquer la pile d'exรฉcution. trace. Considรฉrez chaque suggestion comme une รฉbauche : vรฉrifiez la version de lโ€™API Servlet et testez le code gรฉnรฉrรฉ avant la mise en production.ping le

Copilot excelle dans la gestion du code rรฉpรฉtitif, comme les stubs doPost, la lecture des paramรจtres et les appels au dispatcher. Il utilise souvent par dรฉfaut d'anciennes importations javax.servlet ; vรฉrifiez donc l'espace de noms, la logique de validation et la gestion des exceptions.ping de toute entrรฉe utilisateur qu'il produit.

Ajoutez une couche JDBC ร  la servlet : ouvrez une connexion mutualisรฉe, utilisez un PreparedStatement pour lโ€™insertion ou la recherche dโ€™informations dโ€™identification, et fermez les ressources dans un bloc finally. ร‰vitez dโ€™inclure du code SQL dans la JSP afin que la vue reste purement informative.

En effet, guru_login vรฉrifie uniquement si les champs sont vides. Un nom d'utilisateur ou un mot de passe vide entraรฎne la rรฉaffichage de la page de connexion au lieu de la rediriger, ce qui constitue une simple mesure de validation et non une vรฉritable authentification.

Rรฉsumez cet article avec :