Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème JSP: État HTTP 500 Internal Server Error

Sujet résolu
12 mars 2020 à 16:50:01

Bonjour à toutes et à tous! J'ai beaucoup cherché dans les forums une solution à mon problème mais jusqu'à présent rien. Alors j'ai besoin de votre aide!

Actuellement je suis le cours de Java EE: "Développez des sites web avec Java EE" sur openclassrooms  et arrivé sur les JDBC suis bloqué.

Le principe consiste à lire des données dans la base à partir du code Java et de les afficher au niveau de la JSP. Mais l'affichage pose problème au niveau de la JSP. Merci de votre aide! Voici mon code de la JSP.

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>titre</title>
	</head>
	<body>
		<h1>Bienvenue dans mon site</h1>
		
		<ul>
			<c:forEach var="utilisateur" items="${ utilisateurs }" >
				<li><c:out value="${ utilisateurs.prenom }" /><c:out value="${ utilisateurs.nom }" /></li>
			</c:forEach>
		</ul>
	
	</body>
</html>


Le code de la servlet est le suivant:

import java.io.IOException;

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

import sn.mballo.bdd.Personnes;

@WebServlet("/bonjour")
public class Test extends HttpServlet {
	private static final long serialVersionUID = 1L;

	public Test() {
		super();

	}

	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		Personnes tablePersonnes = new Personnes();

		request.setAttribute("utilisateurs", tablePersonnes.recupererUtilisateurs());

		this.getServletContext().getRequestDispatcher("/WEB-INF/bonjour.jsp").forward(request, response);
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		doGet(request, response);
	}

}


Peut-être que vous en aurez besoin pour une meilleur compréhension. Donc je vous montre mon javaBeans et ma classe Personnes:


package sn.mballo.bdd;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

import sn.mballo.beans.Utilisateur;

public class Personnes {

	public List<Utilisateur> recupererUtilisateurs() {

		List<Utilisateur> listeUtilisateurs = new ArrayList<Utilisateur>();

		// Chargement du Driver
		try {
			Class.forName("org.postgresql.Driver");
//			System.out.println("Chargement Drvier ok");

		} catch (ClassNotFoundException e) {

		}

		// Connexion à la base de données
		Connection connexion = null;
		Statement statement = null;
		ResultSet resultat = null;

		try {
			String url = "jdbc:postgresql://localhost:5432/Utilisateur";
			String userName = "postgres";
			String passWord = "hama1005!";

//			Connection à la base de données
			connexion = DriverManager.getConnection(url, userName, passWord);
//			System.out.println("Connexion bien reusiie");

//			Creation de la zone d'execution
			statement = connexion.createStatement();
//			System.out.println("Zone de creation de requete créee");

//			Execution de la requête
			resultat = statement.executeQuery("SELECT prenom, nom FROM personne;");
//			System.out.println("Requete bien reussie");

//			Recupération des données
			while (resultat.next()) {

				String prenom = resultat.getString("prenom");
				String nom = resultat.getString("nom");

				System.out.println(prenom + " " + nom);

//				Remplisage de notre objet javaBeans
				Utilisateur utilisateur = new Utilisateur();
				System.out.println(utilisateur);

				utilisateur.setPrenom(prenom);
				utilisateur.setNom(nom);

				listeUtilisateurs.add(utilisateur);
			}

		} catch (SQLException e) {

		}

		finally {
//			Fermeture de la connexion
			try {
				if (resultat != null)
					resultat.close();
				if (statement != null)
					statement.close();
				if (connexion != null)
					connexion.close();

			} catch (SQLException ignore) {

			}
		}

//		System.out.println("Liste des utilisateurs");
		System.out.println(listeUtilisateurs);

		return listeUtilisateurs;

	}

}


JavaBeans Utilisateur:

package sn.mballo.beans;

public class Utilisateur {

	private String prenom;
	private String nom;

	public String getPrenom() {
		return prenom;
	}

	public void setPrenom(String prenom) {
		this.prenom = prenom;
	}

	public String getNom() {
		return nom;
	}

	public void setNom(String nom) {
		this.nom = nom;
	}
}


Encore une fois merci !


Merci je viens de voir mon erreur!


-
Edité par HamadouMballo 12 mars 2020 à 17:59:14

  • Partager sur Facebook
  • Partager sur Twitter
MBALLO
12 avril 2023 à 10:01:10

Bonjour j'ai un problème avec mon fichier JSP 

Quand je mets : 

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" préfixe="c" %>

Et quand je retire cette ligne la page charge sans problème , mais le code n'est pas contenu marché pas

Je reçois l'erreur 500 , pourtant j'ai bien inséré le fichier jstl-1.2.jar dans dans le  dossier lib 

Besoin d'aide 🙏

-
Edité par DzoyemTapeyemGiresse 12 avril 2023 à 10:02:44

  • Partager sur Facebook
  • Partager sur Twitter
12 avril 2023 à 11:24:41

@DzoyemTapeyemGiresse Bonjour, merci de ne pas squatter le sujet des autres, créer votre propre sujet dans le respect des règles du forum en nous indiquant le code que vous avez écrit et le contenu des fichiers log du serveur puisque vous avez une erreur 500.

Déterrage

Citation des règles générales du forum :

Avant de poster un message, vérifiez la date du sujet dans lequel vous comptiez intervenir.

Si le dernier message sur le sujet date de plus de deux mois, mieux vaut ne pas répondre.
En effet, le déterrage d'un sujet nuit au bon fonctionnement du forum, et l'informatique pouvant grandement changer en quelques mois il n'est donc que rarement pertinent de déterrer un vieux sujet.

Au lieu de déterrer un sujet il est préférable :

  • soit de contacter directement le membre voulu par messagerie privée en cliquant sur son pseudonyme pour accéder à sa page profil, puis sur le lien "Ecrire un message"
  • soit de créer un nouveau sujet décrivant votre propre contexte
  • ne pas répondre à un déterrage et le signaler à la modération

Je ferme ce sujet. En cas de désaccord, me contacter par MP.

  • Partager sur Facebook
  • Partager sur Twitter