Newsgroup: it.comp.java
Titolo: Jsf e Servlet...quesito teorico...

Salve a tutti,
avrei da chiarirmi dei dubbi che mi stanno subentrando studiando JSF e
le servlet.
1)E' possibile realizzare un'applicazione web con JSF dotata di
login,gestione della sessione,accesso a db,query e visualizzazione di
risultati senza realizzare alcuna servlet?
Questo perchè in rete trovo sempre esempi con servlet ma su
"JSP-La guida completa" leggo testuali parole "le jsp hanno gli stessi
vantaggi delle servlet,perchè da loro derivano, in più ne hanno degli
altri". In che contesto quindi non si può fare a meno di una servlet?
2) Volendo recuperare con la mia applicazione un blob da un db,
decodificarlo in un array di stringhe (dove ogni stringa è la riga di
un file txt di dati) e visualizzarlo in una pagina jsp,cosa mi
consigliate?
Devo usare un datatable?
Non sapendo il numero di colonne a priori converrebbe mettere l'intera
stringa(una riga di un file) dell'array in una cella del datatable?
3) Ricollegandomi al problema 2 di visualizzazione del file.txt, esiste
un metodo per effettuare poi una query su queste linee di file
visualizzate(usando il datatable o altro?)?
Vi ringrazio e vi chiedo la cortesia di essere più dettagliati
possibili nelle spiegazioni, sono alle prime armi e sto cercando di
eliminare i dubbi man mano che mi arrivano...
grazie della vostra consueta disponibilità.


http://csvtosql.sf.net
Come si spegne questa macchina? -- Linus Torvalds, per l'upgrade di
linux.cs.helsinki.fi
, e dopo aver usato la macchina per parecchi mesi

Grazie mille ma:
1) quindi,essendo le jsp un'evoluzione delle servlet e poichè comincio
per la prima volta a sviluppare web application userò delle pagine
jsp.....non scriverò delle servlet.........(che poi le jsp vengano
tradotte in servlet va bene.....), cioè non dovrò implementare i
metodi service etc....
2) Devo assolutamente usare un blob per archiviare, il problema è che
quando estraggo i dati in array di stringhe dovrei usare un datatable
per mostrarli in una pagina jsp?
Quello che voglio dire è questo: so il numero di colonne ed ho per
esempio, estraendo il blob queste 3 stringhe caricate in un array di
string di cardinalità 3.
giuseppe antonio luca paolo
francesco 23,4 45,6 78,9
daniele 32,4 67,4 23,5
Mi daresti una mano a mostrarli in un datatable ?
E' possibile in un secondo momento fare una query su questi dati in
questo formato?
Grazie mille per la tua disponibilità

visualizzate(usando il datatable o altro?)?
Il dataTable ti visualizza i dati, non fa certo query.
Sono cose che la tua applicazione deve gestire, dovrai scrivere del codice 
Java per questo.

Ciao, riguardo al primo punto,
1) teoricamente PUOI fare a meno di usare le servlet, MA
di fatto per questioni di pulizia del codice, si usano le servlet per
scrivere la logica dell' apllicazione (nel tuo caso la query al db), le
jsp esclusivamente per visualizzare l'output
inoltre se per programmare usi un ambiente di sviluppo (es. eclipse),
l'ambiente di sviluppo ti da mooolto piu supporto nello scrivere una
servlet piuttosto che una jsp..
2) per la seconda domanda mi viene da chiederti: PERCHE' devi usare per
forza un blob?
potresti fare una seconda tabella che contiene record del tipo ID -
STRINGA
Su un array di stringhe non hai modo di fare query...al max per ogni
singola stringa puoi vedere se c'è una certe sottostringa! però per
il resto dovresti fartelo tu a manina (un motivo in piu per usare
un'altra tabella!).
per visualizzare l'output, il modo piu semplice semplice è qualcosa
del genere
<table>
     <%
         for(int i 0; i<myArray.length; i++)
        { %>
              <tr>
                    <td><%=myArray[i]%></td>
              </tr>
        <% }
     %>
</table>
ciao e a presto!
gbattine ha scritto:


Mi daresti una mano a mostrarli in un datatable ?
esponi al componente dataTable una lista di oggetti. Il trattamento dei dati 
lo devi fare tu.
Una volta che hai convertito il tuo BLOB in una lista di oggetti allora 
imposta questa lista come una propriet\'a di un bean:
public class Bean {
  List<UserData> list;
  ...
  public void loadData() {
    //qua potresti caricare il BLOB e convertirlo nella proprieta' list
  }
  ...
  //get e set
  ....
}
public class UserData {
  private String name;
  private String data1;
  private String data2;
  //get e set
  ...
}
nella JSP:
<h:dataTable value="#{bean.list}" var="user">
  <h:column>
    <h:outputText value="#{
user.name
}"/>
  </h:column>
  <h:column>
    <h:outputText value="#{user.data1}"/>
  </h:column>
  <h:column>
    <h:outputText value="#{user.data2}"/>
  </h:column>
</h:dataTable> 

Per la questione jsp-servlet siete stati chiarissimi!!!!!!
Grazie mille,mi avete chiarito ogni dubbio.
Per il blob in realtà mi è stato "imposto" dal mio
committente,esperto in materia,perchè questi file di cui faccio
l'upload hanno circa 50000/60000 righe e numero vario di colonne, sono
tantissimi e gestirli tramite classiche tabelle sarebbe risultato
oneroso.
Un dubbio mi rimane ancora:
Quando carico il blob e con un metodo da me preparato ricostruisco il
formato originale del file ho un array di stringhe fatto così
nome valore1 valore2 valore3
carlo 23,2 43,2 344,3
antonio 21.2 12,3 4,5
...........................
cioè ho una prima riga di intestazione e tra le 50000/60000 righe del
tipo delle altre(cioè stringa e tanti double).
Il numero di "colonne" è fisso per file.
Domanda che mi preme tantissimo,è fondamentale per me risolvere il
problema:
So che le datatable vengono usate per lo più per mostrare dati
prelevati da db.
Il file che voglio visualizzare ha un numero di righe e di colonne che
conosco quando vado a leggere il blob,quindi sono parametri che potrei
passare in qualche modo,se servono.
Che metodo mi consigliate per rappresentare queste circa 50000  righe
per un numero di colonne(il parametro da passare) nella maniera più
efficiente e "gradevole"?
Vi prego aiutatemi,non ho ancora capito se usare un datatable o una
panelgrid...
se poi fosse possibile vorrei passare come nome delle colonne i valori
della prima stringa(l'intestazione)...
mi date una mano con le idee e se possibile col codice?
Grazie,mi avete riacceso una speranza...

mi date una mano con le idee e se possibile col codice?
Se segui li link che ti ho dato, nella sezione "Usage" c'e' un esempietto.
Vedi il tag
<f:facet name="header" value="#{
column.name
}"/>?Serve per definire le 
intestazioni della tabella.