Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    10

    Stampa dati di un database

    salve a tutti ho un piccolo problema:ho questa servlet che si connette ad un database e mi stampa di valori riferiti all'id corrispondende:
    package gianpy.database;

    import java.io.IOException;
    import java.sql.*;

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

    import java.sql.*;

    /**
    * Servlet implementation class OutputDatabase
    */
    public class OutputDatabase extends HttpServlet {
    private static final long serialVersionUID = 1L;

    private DataAccess connection = null;

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    HttpSession sess=request.getSession();
    System.out.println("Sono in output database");
    String db=request.getParameter("db");
    System.out.println(db);
    String database="id="+db;
    String query="SELECT * FROM utente WHERE " +database;
    System.out.println(query);
    try {

    ResultSet res = connection.GenericQuery(query);
    while (res.next()) {

    System.out.println("ID: "+ res.getInt("Id"));
    System.out.println("Nickname: "+ res.getString("Nickname"));
    System.out.println("Indirizzo: "+ res.getString("Indirizzo"));
    System.out.println("Email: "+ res.getString("Email"));
    }

    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }

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

    }

    public void init() throws ServletException {
    super.init();
    connection=DataAccess.newDataAccess();
    }

    }


    la mia domanda è questa se volessi creare una classe apposita per la stampa dei dati senza appunto inserire all'interno di questa servlet i 4 system.out.println come potrei fare?
    grazie per l'aiuto saluti atomix

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Stampa dati di un database

    Originariamente inviato da atomix84
    la mia domanda è questa se volessi creare una classe apposita per la stampa dei dati senza appunto inserire all'interno di questa servlet i 4 system.out.println come potrei fare?
    Ma non è molto chiaro cosa vuoi fare .... e sopratutto il perché ....

    Vuoi generare una pagina HTML?? Perché adesso, come hai fatto, non scrivi un bel nulla sulla "response"!! Scrivi su System.out che potrebbe essere visualizzato tipicamente in una console del servlet container.

    Se vuoi generare una pagina HTML con i dati formattati in un certo modo hai 2 soluzioni: o lo fai dalla servlet o lo fai da una pagina JSP.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    10
    esatto si io vorrei che l'output venga gestito da una servlet a parte che generi una pagina web..il problema e che non saprei come passare o gestire i dati res dalla servlet output

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    10
    funziona se facessi così:
    while (res.next()) {
    nickname=res.getString("Nickname");
    indirizzo=res.getString("Indirizzo");
    email=res.getString("Email");
    id=res.getInt("Id");
    RequestDispatcher rd=request.getRequestDispatche("Stampa_html");
    rd.forward(request,response);
    }

    è corretto?

  5. #5
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da atomix84
    è corretto?
    No, non è affatto corretto. Non puoi fare un forward più volte. (e comunque non avrebbe senso in un ciclo del genere ...)

    La cosa tipica e "pulita" (nell'ottica MVC) che si può fare è questa: la servlet, magari con l'uso di altre classi dedicate alle query su db, ottiene i dati in una forma più "object oriented" come ad esempio, vedendo il tuo caso, un java.util.List di oggetti Utente. Quindi imposta questa collezione come "attributo" nel request scope. E alla fine fa un forward ad una pagina JSP.
    La pagina JSP potrà iterare sulla collezione e mandare in output i dati, con dello scriptlet o magari, molto meglio, con l'uso di custom tag come quelli di JSTL (o altro).
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    10
    A ecco ora ho capito(o almeno credo)..quindi praticamente devo copiare i valori richiesti all'interno di una lista che sarà facilmente leggibile da un file jsp o servlet che potrà mandarli in output html?

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.