Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 33

Discussione: [Java] Servlet e Db

  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2002
    Messaggi
    655

    [Java] Servlet e Db

    Ho questa Servlet


    import javax.servlet.*;
    import javax.servlet.http.*;
    import java.io.*;
    import java.sql.*;

    public class Insert extends HttpServlet
    {
    public void init()
    {
    System.out.println("<<<[ Insert inizializzata ]>>>");
    }

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

    String nome = request.getParameter("nome");
    String cognome = request.getParameter("cognome");



    Connection con =null;
    Statement sta = null;
    try
    {
    Class.forName("org.gjt.mm.mysql.Driver");
    con = DriverManager.getConnection("jdbc:mysql://localhost/micro","root","root");
    sta = con.createStatement();

    sta.executeUpdate("INSERT INTO anagrafica VALUES('','"+nome+"','"+cognome+"');");


    PrintWriter out = response.getWriter();
    response.setContentType("text/plain");
    out.print("Parametri inseriti\nnome: " + nome +"\ncognome: " + cognome);
    }catch(Exception e)
    {
    System.out.println(e);
    }finally
    {
    try
    {

    if(sta!=null)sta.close();
    if(con!=null)con.close();
    }catch(Exception e)
    {
    System.out.println(e);
    }
    }
    }
    }
    mappata da :
    <?xml version="1.0"?><!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
    <web-app>
    <servlet>
    <servlet-name>alias</servlet-name>
    <servlet-class>Insert</servlet-class>
    </servlet>
    <servlet-mapping>
    <servlet-name>alias</servlet-name>
    <url-pattern>inserisci</url-pattern>
    </servlet-mapping>
    </web-app>
    Il tutto caricato su Tomcat 4.1 su Db Mysql.
    Il problema è che non riesco a scrivere nel DB. Che driver devo scaricare? Da cosa può dipendere?

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2002
    Messaggi
    655
    UP :quote:

  3. #3
    Utente di HTML.it L'avatar di Angelo1974
    Registrato dal
    Feb 2003
    Messaggi
    1,107
    Ciao. Ma il metodo service non dovrebbe essere sovrascritto; da quanto ne so, infatti, il metodo service() viene richiamato automaticamente quando arriva una richiesta alla servlet; esso, poi, in base al tipo di richiesta ( tanto per intenderci se è una richiesta di tipo POST oppure di tipo GET ) richiama il metodo giusto ( rispettivamente doPost oppure doGet ); penso che, sovrascrivendo il metodo service() e, quindi, avendone fatto l'overriding hai perso la sua funzionalità di richiamare il metodo doGet oppure doPost. Supponendo che faccia una richiesta di tipo GET io farei in questo modo:


    Codice PHP:
    import javax.servlet.*; 
    import javax.servlet.http.*; 
    import java.io.*; 
    import java.sql.*; 

    public class 
    Insert extends HttpServlet 

    public 
    void init() 

    System.out.println("<<<[ Insert inizializzata ]>>>"); 


    public 
    void doGet(HttpServletRequest requestHttpServletResponse response)throws IOException 


    String nome request.getParameter("nome"); 
    String cognome request.getParameter("cognome"); 



    Connection con =null
    Statement sta null
    try 

    Class.
    forName("org.gjt.mm.mysql.Driver"); 
    con DriverManager.getConnection("jdbc:mysql://localhost/micro","root","root"); 
    sta con.createStatement(); 

    sta.executeUpdate("INSERT INTO anagrafica VALUES('','"+nome+"','"+cognome+"');"); 


    PrintWriter out response.getWriter(); 
    response.setContentType("text/plain"); 
    out.print("Parametri inseriti\nnome: " nome +"\ncognome: " cognome); 
    }catch(
    Exception e

    System.out.println(e); 
    }finally 

    try 


    if(
    sta!=null)sta.close(); 
    if(
    con!=null)con.close(); 
    }catch(
    Exception e

    System.out.println(e); 




    Per quanto riguarda il driver verso MySql mi sembra quello giusto. Ciao
    Se vuoi trovare l'arcobaleno, devi sopportare la pioggia

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2002
    Messaggi
    655
    Io sto seguendo questo esempio ma a quanto pare non va. Riesco a visualizare la pagina inserisci ma senza alcun dato memorizzato nel db.
    CIAO

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2002
    Messaggi
    655
    Qualche esempio simile? Per capire bene il funzionamento delle Servlet?

  6. #6
    Se stai seguendo quell'esempio devi reimplementare il metodo doPost e non il doGet

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2002
    Messaggi
    655
    Lo so, però sempre lo stesso problema, quando inserisco i dato nel form nel Db non viene scritto nulla e la pagina registra rimane vuota

    Da cosa puo dipendere?

  8. #8
    boh nn lo so xò prova a fare così:
    codice:
    try{
       con.setAutoCommit(false);				             
       con.setTransactionIsolation(
                                  conn.TRANSACTION_SERIALIZABLE);
       sta.executeUpdate(query);
       con.commit();
       con.setAutoCommit(true);
       con.setTransactionIsolation(
                               conn.TRANSACTION_READ_COMMITTED);
    } catch

  9. #9
    Utente di HTML.it
    Registrato dal
    Jul 2002
    Messaggi
    655
    dove glielo aggiungo?

  10. #10
    Utente di HTML.it
    Registrato dal
    Jul 2002
    Messaggi
    655
    Forse sbaglio nel caricare il driver? Io faccio cosi: prendo il driver mysql-connector-java-3.0.11-stable-bin.jar lo copio in C:\j2sdk1.4.1_04\jre\lib\ext e lo linko nel CLASSPATH.
    Giusto?

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 © 2024 vBulletin Solutions, Inc. All rights reserved.