Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12

Discussione: Jsp E Mysql

  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    4

    Jsp E Mysql

    salve
    sto iniziando ora a studiare il JSP è ho trovato dei problemi nell'interfacciarlo con mysql.

    in poche parole volevo provare a fare l'esempio del sondaggio che si trova sul manuale di html.it ma usando mysql cmq database.

    Ho messo il connector j nella cartella della JDK (e anke della JRE x sicurezza) ho fatto la pagina di prova con questo comando x la connessione

    conn=DriverManager.getConnection("jdbc:mysql://localhost/s","admin","pass");

    quando provo x esempio a selezionare un radio dalla pagina sondaggio e fare vota diciamo mi passa alla pagina vota.jsp ma mi dice ke c'è un errore di sintassi nel mysql alla riga 1. riposto qui il codice sql del database

    CREATE DATABASE s;
    USE s;

    CREATE TABLE `frequenza`
    (
    `risp` varchar(50) ,
    `frequenze` int(50)
    ) ;

    CREATE TABLE `ip_tab`
    (
    `ip` text (50)
    );


    sapete darmi una mano?

    grazie in anticipo

  2. #2
    Utente di HTML.it L'avatar di ziz
    Registrato dal
    Jun 2008
    Messaggi
    52
    Hai aggiunto anche le altre righe di codice che richiamano il driver? E poi perchè non lo inserisci nella cartella di NetBeans (o Eclipse, o qualsiasi altro programma che stai usando)? E' il metodo più sicuro per gestire i driver....l'ho provato sulla mia pelle!!
    Comunque le righe di codice di cui parlo sono del tipo:

    codice:
    Class.forName("com.mysql.jdbc.Driver").newInstance();
    connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/s","admin","pass");
    statement = connection.createStatement();
    Ah, altra cosa!! Ricordati di indicare la porta, che per mysql è la 3306!!!!

    Spero di esserti stato utile, ciao!

  3. #3
    Utente di HTML.it L'avatar di Ed_Bunker
    Registrato dal
    Jul 2003
    Messaggi
    1,119
    E visto che ci siamo... meglio utilizzare PreparedStatement anziche' Statement.
    Giusto per cercare di evitare "fastidiose" SQL injection...

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    4
    allora le righe di codice ke hai scritto tu le avevo messe, mi mancava solo la porta di mysql, cmq ho notato ke tipo la prima volta ke provo a cliccare il tasto "vota" mi viene fuori questo errore.
    Comunque non uso netBeans uso Scite, un normalissimo editor, mi consigliate di passare a netBEans?

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

    exception
    org.apache.jasper.JasperException: Unable to compile class for JSP

    An error occurred at line: 10 in the jsp file: /vota.jsp
    Generated servlet error:
    risposta cannot be resolved


    org.apache.jasper.servlet.JspServletWrapper.handle JspException(JspServletWrapper.java:510)
    org.apache.jasper.servlet.JspServletWrapper.servic e(JspServletWrapper.java:375)
    org.apache.jasper.servlet.JspServlet.serviceJspFil e(JspServlet.java:314)
    org.apache.jasper.servlet.JspServlet.service(JspSe rvlet.java:264)
    javax.servlet.http.HttpServlet.service(HttpServlet .java:802)


    poi se torno alla pagina faccio aggiorna e riclicco vota mi dice errore nella sintassi mysql

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    4
    se nn vi disp mi posto il codice cosi magari notate qualke errore

    <html>
    <head>
    <title>Sondaggio</title>
    </head>
    <body>

    <font face="verdana" color="#3300ff" size="2">
    <%@ page errorPage = "PaginaErrore.jsp" %>
    <%@ page language="java" import="java.sql.*" %>
    <%
    Connection conn =null;

    //carica il file di classe del driver
    Class.forName("com.mysql.jdbc.Driver").newInstance ();

    //crea la connessione con l'origine dei dati
    conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/s","root","root");

    //crea lo statement
    Statement st = conn.createStatement();

    //legge il paramentro contenente la riposta
    String preferenza = new String(request.getParameter("risposta"));
    out.println(risposta);
    String ip = new String(request.getRemoteAddr());

    ResultSet rs = st.executeQuery("SELECT ip FROM ip_tab WHERE ip like "+ip+" ");
    if(!rs.next()){
    // l'ip non ha mai votato

    //esito dell'aggiornamento del database
    int esito;

    //crea la stringa SQL per l'aggiornamento
    String stringaSql = new String ("INSERT INTO ip_tab(ip) VALUES("+ip+")");
    esito=st.executeUpdate(stringaSql);

    //controlla ke tutto sia andato bene

    if(esito==1)
    out.println("Votazione eseguita con successo");
    else
    out.println("Errore, non è stato possibile eseguire la votazione");
    }//if

    else{//l'utente ha gia votato
    out.println("Spiacenti, hai gia votato!
    ");
    out.println("Per ragioni di credibilità del sondaggio
    ");
    out.println("ogni visitatore può votare solo una volta

    ");
    }//else
    st.close();
    conn.close();
    %>



    Visualizza i risultati parziali
    </font>
    </body>
    </html>

  6. #6
    Originariamente inviato da sala086
    Comunque non uso netBeans uso Scite, un normalissimo editor, mi consigliate di passare a netBEans?
    Si

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

    exception
    org.apache.jasper.JasperException: Unable to compile class for JSP

    An error occurred at line: 10 in the jsp file: /vota.jsp
    Generated servlet error:
    risposta cannot be resolved
    ...
    L'eccezione parla chiaro... utilizzi la variabile risposta senza averla prima definita. Ed infatti:

    Originariamente inviato da sala086
    ...
    //legge il paramentro contenente la riposta
    String preferenza = new String(request.getParameter("risposta"));
    out.println(risposta);
    ...
    Al mio segnale... scatenate l'inferno!

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    4
    scusa mi sono dimenticato di dire ke come prima pagine c'è un file sondaggio.htm ke inoltra la variavile risposta posto il codice

    <html>
    <title>Sondaggio</title>
    </head>
    <body>

    <big> Domanda</big>
    <form action="vota.jsp">
    <input name="risposta" type="radio" value="0"> Risposta 1

    <input name="risposta" type="radio" value="1"> Risposta 2

    <input name="risposta" type="radio" value="2"> Risposta 3

    <input name="risposta" type="radio" value="3"> Risposta 4

    <input type="submit" value="vota!">
    </form>
    Visualizza i risultati parziali
    </body>
    </hmtl>

  8. #8
    Non c'entra nulla. Lì stai inoltrando un "parametro" non una "variabile Java".

    Nel codice postato precedentemente utilizzi una variabile Java chiamata risposta che non dichiari da nessuna parte.
    Al mio segnale... scatenate l'inferno!

  9. #9
    Utente di HTML.it L'avatar di Ed_Bunker
    Registrato dal
    Jul 2003
    Messaggi
    1,119
    Ma non facevi prima a dirgli che erroneamente ha scritto
    codice:
    out.println(risposta)
    anziche'
    codice:
    out.println(preferenza)
    ?!?

    Mi sembra un banale errore di "distrazione" e nulla piu'.

  10. #10
    Originariamente inviato da Ed_Bunker
    Ma non facevi prima a dirgli che erroneamente ha scritto
    codice:
    out.println(risposta)
    anziche'
    codice:
    out.println(preferenza)
    ?!?

    Mi sembra un banale errore di "distrazione" e nulla piu'.
    Indipendentemente dall'errore di distrazione... cmq dalla sua risposta mi sa che ha un pò di confusione tra parametro e variabile... Se non si chiarisce prima questa differenza, l'errore di distrazione non lo scovi mai
    Al mio segnale... scatenate l'inferno!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.