Partage
  • Partager sur Facebook
  • Partager sur Twitter

Connection a la base depuis un JSP

besoin d`aide urgent

    18 décembre 2009 à 16:58:02

    Salut a tous..j`ai realisee une simple JSP qui fait appel a une Javabean ayant pour metier d`etablir la connection Connection cnx aussi bien qu`un tube de communicationStatement lien. Mais j`avais un probleme lorsque le fichier index.jsp est invoquer..merci de m`avoir aider a s`en sortir..Ne paniquez pas..c`est long parail mais c`est rien..au moins pour vous :D
    DBConnection.java (le javabean):
    import java.io.Serializable;
    import java.sql.*;
    import java.util.Enumeration;
    import java.util.Properties;
    public class DBConnection implements java.io.Serializable{
    	//Definition des proprietes
    	private Connection cnx;
    	private Statement lien=null;
    	//Methodes d`acces en lecture
    	public Connection getCnx(){
    		if(etablirConnexion()){
    			return cnx;
    		}else{
    			return null;
    		}
    	}
    	public Statement getLien(Connection cnx){
    		if(construireStatement(cnx)){
    			return lien;
    		}else{
    			return null;
    		}
    	}
    	//Methodes invisibles (metier)
        //Etablit la connection
        private boolean etablirConnexion(){
        	boolean statusConnection=false;
        	try{
        		Class.forName("org.postgresql.Driver");
        		String url = "jdbc:postgresql://localhost:5432/Application";
    			String user = "postgres";
    			String password = "18082007";
    			cnx=DriverManager.getConnection(url,user,password);
    			statusConnection=true;
        	}catch(Exception e){
        		statusConnection=false;
        	}
        	return statusConnection;
        	}
        	private boolean construireStatement(Connection cnx){
        		boolean statusStatement=false;
        		try{
        			lien=cnx.createStatement();
        			statusStatement=true;
        		}catch(Exception e){
        			statusStatement=false;
        		}
        		return statusStatement;
        	}
    }
    

    Fichier index.jsp:
    <jsp:usebean id="dbcnx" class="beans.dbtools.DBConnection"></jsp:usebean>
    <%@ page import="java.sql.*" %>
    <%@ page import="java.util.*" %>
    <!-- //Recuperation de la connection -->
    <% 
    Connection cnx=dbcnx.getCnx();
     %>
     <!-- //Creation du tube de communication avec la base de donnees -->
     <% Statement lien=dbcnx.getLien(cnx); %>
     <!-- //On teste si la connection et le tuble de communication sont etablis correctement -->
     <% if((cnx!=null)&&(lien!=null)) 
     out.println("Connection et tube de communication sont etablis avec succes");
     out.println("<br>");
     else
     out.println("y a un probleme");
     out.println("<br>");
     %>
    

    le message envoyer par le conteneur web Apache :
    type Exception report

    message

    description The server encountered an internal error () that prevented it from fulfilling this request.

    exception

    org.apache.jasper.JasperException: /index.jsp(1,6) Invalid standard action
    org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:39)
    org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:376)
    org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:90)
    org.apache.jasper.compiler.Parser.parseStandardAction(Parser.java:1249)
    org.apache.jasper.compiler.Parser.parseElements(Parser.java:1559)
    org.apache.jasper.compiler.Parser.parse(Parser.java:126)
    org.apache.jasper.compiler.ParserController.doParse(ParserController.java:220)
    org.apache.jasper.compiler.ParserController.parse(ParserController.java:101)
    org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:203)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:461)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:442)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:430)
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:511)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:274)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
    note The full stack trace of the root cause is available in the Apache Tomcat/5.0.25 logs.
    • Partager sur Facebook
    • Partager sur Twitter
      19 décembre 2009 à 21:43:39

      Alors..quelqu`un a une idee ?
      • Partager sur Facebook
      • Partager sur Twitter
        22 décembre 2009 à 14:53:40

        Salut
        pour Lucaazori,tu peux tester ceci :
        DBconnecxion.java
        package Beans.BDConnection ;
        import java.io.Serializable ;
        import java.sql.*;
         
        public class DBConnexion implements java.io.Serializable {
        	
        //Définition des propriétés
        private String login;
        private String password ;
        private String hostname;
        private String port;
        private String nomDeLaBase;
        private Connection cnx;
        	
        // Methodes d'acces en écriture
        // Enregistre le nom de login
        public void setLogin (String valeur) {
        	login = valeur ;
        }
        // Enregistre le mot de passe	
        public void setPassword (String valeur) {
        	password = valeur ;
        }
        // Enregistre le nom du Host	
        public void setHostname (String valeur) {
        	hostname = valeur ;
        }
        // Enregistre le numéro de port		
        public void setPort (String valeur) {
        	port = valeur ;
        }
        // Enregistre le nom de la base de données	
        public void setNomDeLaBase (String valeur) {
        	nomDeLaBase = valeur ;
        }	
        	
        // Methodes d'acces en lecture
        public Connection getCnx() {
        if (etablirConnexion()) {
            return cnx;	
           } else {
           return null;
           }
        }	
        // Méthodes invisibles (métier)
        // Construit l'URL
        private String construireUrlJdbc() {
         String urlJdbc ;
         urlJdbc = "jdbc:mysql://"+hostname+":" + port + "/" +   nomDeLaBase ;
         urlJdbc = urlJdbc + "?user=" + login + "&password=" +  password ;
         return urlJdbc ;
        }
        // Etablit la connexion	
        private boolean etablirConnexion() {
            boolean statusConnexion = false;
            String urlJdbc ;
            try { 
                     Class.forName("com.mysql.jdbc.Driver");
                     urlJdbc=construireUrlJdbc();
                     cnx=DriverManager.getConnection(urlJdbc);
                     statusConnexion = true;
                  } catch ( Exception e ) {
        	statusConnexion = false;
        	System.out.println(e);
                   }
                    return statusConnexion;
                 }
        	
        }
        

        avec le 2e bean DBLien.java
        package Beans.BDConnection ;
        import java.io.Serializable ;
        import java.sql.*;
        
        public class DBLien implements java.io.Serializable {
        //Définition des propriétés
        private Statement lien = null;
        	
        // Methodes d'acces en lecture
        public Statement getLien(Connection cnx) {
           if (construireStatement(cnx)) {
        	return lien;
           } else {
        	return null;
           }
        }
        // Methodes invisibles
        private boolean construireStatement (Connection cnx) {
          boolean statusStatement = false;
          try {
                   lien=cnx.createStatement();
                   statusStatement = true ;
                   } catch ( Exception e ) {
                   statusStatement = false;
                   System.out.println(e);
                    }
                  return statusStatement;	
               }
        }
        

        et la page jsp pour faire le test:
        <!-- La page JSP manipule des objets de type Connection et Statement -->
        <%@ page import="java.sql.*" %>
        
        <!--// DBConnexion Bean-->
        <jsp:useBean id="dbcnx" class="Beans.BDConnection.DBConnexion">
        
        <!--// Code d'initialisation //-->
        <jsp:setProperty name= "dbcnx" property="login" value="root"/>
        <jsp:setProperty name= "dbcnx" property="password" value=""/>
        <jsp:setProperty name= "dbcnx" property="hostname" value="localhost"/>
        <jsp:setProperty name= "dbcnx" property="port" value="3306"/>
        <jsp:setProperty name= "dbcnx" property="nomDeLaBase" value="nom_de_la base"/>
        </jsp:useBean>
        
        <!--// DBLien Bean -->
        <jsp:useBean id="dblien" class="Beans.BDConnection.DBLien"/>
        
        <html>
        <body>
        <table width=700><tr><td>
        <h1><font face=arial>Test de Connexion à une Base de données </h1>
        <h3><font face=arial>La connexion avec la base de données</h3>
        
        <font face=arial size=2 color=black>1ère étape : Création d'une connexion vers la base de données :<br>
        <%
          // Récupération de la connexion
          Connection cnx = dbcnx.getCnx();
          if (cnx == null) {
            out.println("<font color=red>Connexion impossible : " + cnx + "</font>");
          } else {
            out.println("<font color=green>Connexion établie : " + cnx + "</font>");
          }
        %>
        
        <br><br>
        <font face=arial size=2 color=black>2ème étape : Création d'un tube de communication :<br>
        
        <%
          // Création du tube de communication avec la base de données
          Statement lien = dblien.getLien(cnx);
          if (lien == null) {
            out.println("<font color=red>Communication impossible : "+ lien + "</font>");
          } else {
            out.println("<font color=green>Communication établie : " + lien + "</font>");
          }
        %>
        </td></tr></table>
        </body>
        </html>
        


        • Partager sur Facebook
        • Partager sur Twitter

        Connection a la base depuis un JSP

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown