Esame JSP!

di il
18 risposte

Esame JSP!

Salve ragazzi, x un esame sto facendo un sito in JSP, sono bloccato in un punto "concettuale" ke non riesco a risolvere:
Allora, ho creato un sito di creazione panini da ordinare, mediante un form a menu scegli pane,salumi,verdure... e poi confermi il panino e quanti ne vuoi. Chiaro no? Lo stesso x le bevande in un form sottostante.
Al submit di ogni form si crea sotto una riga di testo con la descrizione del panino ordinato "Panino con pane TOSCANO e i seguenti ingredienti: SALSICCIA, PEPERONI, CIPOLLA..." ricavati chiaramente dal form.
Ecco il punto:
Se l'utilizzatore vuole ordinare un altro panino con ingredienti diversi, avrei necessità di mostrare nelle riga di testo al 2° submit sia il primo che il secondo panino, ma chiaramente il primo me lo sovrascrive e mostra solo il 2°. Sto "bestemmiando" con session x tirar fuori qualcosa, ma ho qualche difficoltà.
Avrei bisogno di un'idea, qualcosa che mi ispiri.
Spero di essere stato chiaro nella descrizione, e spero ke qualcuno mi aiuti. Grazie tante!


.::ROHY::.

18 Risposte

  • Re: Esame JSP!

    Ciao non so se sia possibile farlo in jsp, ma potresti dichiarare un array di stringhe a livello di sessione.
    Ogni stringa rappresenta un' ordinazione di panino.

    Ciao
  • Re: Esame JSP!

    Sono d'accordo, come sempre, con Toki.
    Puoi, o creare a livello di sessione un'array di n elementi, oppure ti appoggi ad un db, dove memorizzi user e stringa creata. Al submit, leggi sempre il db, scrivi tutto quello che c'è d'entro, e poi riproponi il form da eventualmente ricompilare.
    Se non ti è chiaro, posta qui.
    Bye


    fabio
  • Re: Esame JSP!

    Oppure, altra soluzione:
    crei una variabile di sessione:

    Session("panino_scelto")

    Poi nella pagina scrivi:
    panino=request.form("strPanino")
    If isnull(Session("panino_scelto")) then
    Session("panino_scelto") = panino
    else
    Session("panino_scelto") = Session("panino_scelto") &
    ";" & panino
    end if
    Poi splitti la stringa
    matrice = split(Session("panino_scelto"),";")

    E crei un ciclo che scriva tutte i panini contenuti

    For i=0 to ubound(matrice)

    response.write matrice(i) & "<br>"

    next i

    Ok?
    Prova e fammi sapere
    Bye





    fabio
  • Re: Esame JSP!

    Tutto questo, però, in ASP!

    fabio
  • Re: Esame JSP!

    Io non ho capito molto!

    Quando sceglie il panino ed invia il submit, il panino viene registrato in un database ? se si perchè non lo recuperi al volo e lo scrivi sotto ?

    Invece di inviare il submit ogni volta io lo farei lavorare in javascript con array per poi inviare il tutto alla fine !

    Wolly
  • Re: Esame JSP!

    Non ho molta simpatia per JSP. Anche se uso linguaggio strutturalmente simili (PHP).
    Io farei invece il submit continuo.
    Quando il cliente preme invio, tu memorizzi il tutto: panino=(panino1,cipolla,caviale,maionese,aglio;)in una variabile di sessione, così:
    -----------
    If isnull(Session("panino_scelto")) then
    Session("panino_scelto") = panino
    else
    Session("panino_scelto") = Session("panino_scelto") &
    ";" & panino
    end if
    ------------
    nella variabile di sessione avrai quindi tante stringhe separate da ;, ognuna delle quali è composta da n ingredienti, giusto?
    Quando finalmente il cliente deciderà di acquistare, allora e solo allora comincerà l'inserimento nel db (ti ricordo che le connessioni al db, qualunque esso sia, sono la maggior causa di rallentamente in una comunicazione via web nei siti di e-commerce, è quindi meglio evitare continue aperture e chiusure di recordset!!!).
    Per inserire nel db procederai in questo modo (con ASP)

    fai lo split (che genera matrici) della stringa contenuta in
    session(panini)
    mtr_panini = split(session(panini),";")
    ottieni n matrici, ognuna con all'interno 1 panino e i suoi ingredienti
    creerai il ciclo,dopo la connessione unica al db

    'connessione db
    dim connessione
    set connessione=server.createobject("adodb.connection")
    'apertura tabella ordini
    dim tb_ordini
    set tb_ordini=server.createobject("adodb.recordset")
    tb_ordini.open ("tabella_ordini"),connessione

    For i=0 to ubound(mtr_panini)
    'e per ogni panino, farai lo split e l'inserimento nel db

    mtr_singolo_panino=split(mtr_panini(i),",")
    dim contatore_int=0

    tb_ordini.addnew

    'se ti basta inserire solo il panino con di seguito
    'gli ingredienti procedi così

    tb_ordini.field("tipo_panino")=mtr_panini(i)
    'e ovviamente ricordati di memorizzare anche lo user,
    'ti servirà poi per estrarre l'ordine


    tb_ordini.update


    next contatore_int

    next i

    Nella pagina di visualizzazzione, fai una select di tutti i record con data odierna, user e elenchi gli ordini inviati
    Eventualmente, puoi prevedere un campo stato, per la conferma dell'acquisto.

    Buon lavoro



    fabio
  • Re: Esame JSP!

    Riekkime qua!
    Intanto grazie x le risposte, so ke siamo odiosi noi newbies, ma ke ci volete fare, ci siamo passati tutti, no? Avevo pensato ank'io all'idea dell'array di stringhe, e sto infatti applicando quella... ma sia il db "provvisorio" ke la variabile di sessione mi hanno stuzziacto alquanto: fabio_v, ma lo split della matrice sai se esiste in JSP? Xkè io devo far tutto x forza con quello, con tanto di megaclassi.java x il management degli utenti... brrr!

    Wolly --> Dici ke si può fare tutto in javascript? Se puoi riesci a dirmi come in breve?

    fabio_v --> riguardo al "prova e fammi sapere" Ci sto dietro a tempo perso xkè sono molto impegnato con altri esami e coi corsi, quindi non penso di finirlo presto. Cmq quando avrò fatto (SE avrò fatto) vi farò sapere, e se viene un bel lavoro posso mettere il codice sul mio spazio web... ma di questo si parlerà più avanti.

    fabio_v ultimo post --> non l'ho ancora letto bene, he he devo ancora "studiarmelo", ma volevo darvi un segno di vita, ora me lo stampo e vedo.
    Ciao!

    .::ROHY::.
  • Re: Esame JSP!

    Puoi optare per due soluzioni, facendo un controllo!

    Trovami quello che naviga nel web con javascript disabilitato!!
    Forse tu per curiosità, ma prova a disabilitarlo e dimmi quanti siti riesci a vedere correttamente!

    Wolly
  • Re: Esame JSP!

    <BLOCKQUOTE id=quote><!--<font size= face="" id=quote>-->quote:<hr height=1 noshade id=quote>
    Salve ragazzi, x un esame sto facendo un sito in JSP, sono bloccato in un punto "concettuale" ke non riesco a risolvere:
    Allora, ho creato un sito di creazione panini da ordinare, mediante un form a menu scegli pane,salumi,verdure... e poi confermi il panino e quanti ne vuoi. Chiaro no? Lo stesso x le bevande in un form sottostante.
    Al submit di ogni form si crea sotto una riga di testo con la descrizione del panino ordinato "Panino con pane TOSCANO e i seguenti ingredienti: SALSICCIA, PEPERONI, CIPOLLA..." ricavati chiaramente dal form.
    Ecco il punto:
    Se l'utilizzatore vuole ordinare un altro panino con ingredienti diversi, avrei necessità di mostrare nelle riga di testo al 2° submit sia il primo che il secondo panino, ma chiaramente il primo me lo sovrascrive e mostra solo il 2°. Sto "bestemmiando" con session x tirar fuori qualcosa, ma ho qualche difficoltà.
    Avrei bisogno di un'idea, qualcosa che mi ispiri.
    Spero di essere stato chiaro nella descrizione, e spero ke qualcuno mi aiuti. Grazie tante!


    .::ROHY::.
    <hr height=1 noshade id=quote></BLOCKQUOTE id=quote><!--</font id=quote><font face="" size= id=quote>-->

    Ciao Rohypnol,
    perchè non utilizzi un'Hashtable che sarà fillata con un codice relativo a chi l'ha ordinata (ad esempio il tavolo) e l'ordinazione. A questo modo ad ogni submit potrai popolare ad esempio una tabella con tutte le ordinazioni del tavolo, senza perdere dati.

    Una gestione del genere ti permette 1) di evitare di utilizzare strutture come gli array, che sono a grandezza fissa e ti costringerebbero ad utilizzare più memoria di quanta te ne serve 2) evitare di scomodare un database per tre panini (un database per registrare le ordinazioni di un utente? )...

    Ciao

    Don't be worry, is only a piece
  • Re: Esame JSP!

    <BLOCKQUOTE id=quote><!--<font size= face="" id=quote>-->quote:<hr height=1 noshade id=quote>
    Salve ragazzi, x un esame sto facendo un sito in JSP, sono bloccato in un punto "concettuale" ke non riesco a risolvere:
    Allora, ho creato un sito di creazione panini da ordinare, mediante un form a menu scegli pane,salumi,verdure... e poi confermi il panino e quanti ne vuoi. Chiaro no? Lo stesso x le bevande in un form sottostante.
    Al submit di ogni form si crea sotto una riga di testo con la descrizione del panino ordinato "Panino con pane TOSCANO e i seguenti ingredienti: SALSICCIA, PEPERONI, CIPOLLA..." ricavati chiaramente dal form.
    Ecco il punto:
    Se l'utilizzatore vuole ordinare un altro panino con ingredienti diversi, avrei necessità di mostrare nelle riga di testo al 2° submit sia il primo che il secondo panino, ma chiaramente il primo me lo sovrascrive e mostra solo il 2°. Sto "bestemmiando" con session x tirar fuori qualcosa, ma ho qualche difficoltà.
    Avrei bisogno di un'idea, qualcosa che mi ispiri.
    Spero di essere stato chiaro nella descrizione, e spero ke qualcuno mi aiuti. Grazie tante!


    .::ROHY::.
    <hr height=1 noshade id=quote></BLOCKQUOTE id=quote><!--</font id=quote><font face="" size= id=quote>-->

    Ciao Rohypnol,
    perchè non utilizzi un'Hashtable che sarà fillata con un codice relativo a chi l'ha ordinata (ad esempio il tavolo) e l'ordinazione. A questo modo ad ogni submit potrai popolare ad esempio una tabella con tutte le ordinazioni del tavolo, senza perdere dati.

    Una gestione del genere ti permette 1) di evitare di utilizzare strutture come gli array, che sono a grandezza fissa e ti costringerebbero ad utilizzare più memoria di quanta te ne serve 2) evitare di scomodare un database per tre panini (un database per registrare le ordinazioni di un utente? )...

    Ciao

    Don't be worry, is only a piece
  • Re: Esame JSP!

    <BLOCKQUOTE id=quote><!--<font size= face="" id=quote>-->quote:<hr height=1 noshade id=quote>
    Salve ragazzi, x un esame sto facendo un sito in JSP, sono bloccato in un punto "concettuale" ke non riesco a risolvere:
    Allora, ho creato un sito di creazione panini da ordinare, mediante un form a menu scegli pane,salumi,verdure... e poi confermi il panino e quanti ne vuoi. Chiaro no? Lo stesso x le bevande in un form sottostante.
    Al submit di ogni form si crea sotto una riga di testo con la descrizione del panino ordinato "Panino con pane TOSCANO e i seguenti ingredienti: SALSICCIA, PEPERONI, CIPOLLA..." ricavati chiaramente dal form.
    Ecco il punto:
    Se l'utilizzatore vuole ordinare un altro panino con ingredienti diversi, avrei necessità di mostrare nelle riga di testo al 2° submit sia il primo che il secondo panino, ma chiaramente il primo me lo sovrascrive e mostra solo il 2°. Sto "bestemmiando" con session x tirar fuori qualcosa, ma ho qualche difficoltà.
    Avrei bisogno di un'idea, qualcosa che mi ispiri.
    Spero di essere stato chiaro nella descrizione, e spero ke qualcuno mi aiuti. Grazie tante!


    .::ROHY::.
    <hr height=1 noshade id=quote></BLOCKQUOTE id=quote><!--</font id=quote><font face="" size= id=quote>-->

    Ciao Rohypnol,
    perchè non utilizzi un'Hashtable che sarà fillata con un codice relativo a chi l'ha ordinata (ad esempio il tavolo) e l'ordinazione. A questo modo ad ogni submit potrai popolare ad esempio una tabella con tutte le ordinazioni del tavolo, senza perdere dati.

    Una gestione del genere ti permette 1) di evitare di utilizzare strutture come gli array, che sono a grandezza fissa e ti costringerebbero ad utilizzare più memoria di quanta te ne serve 2) evitare di scomodare un database per tre panini (un database per registrare le ordinazioni di un utente? )...

    Ciao

    Don't be worry, is only a piece
  • Re: Esame JSP!

    <BLOCKQUOTE id=quote><!--<font size= face="" id=quote>-->quote:<hr height=1 noshade id=quote>
    Non ho molta simpatia per JSP. Anche se uso linguaggio strutturalmente simili (PHP).
    Io farei invece il submit continuo.
    Quando il cliente preme invio, tu memorizzi il tutto: panino=(panino1,cipolla,caviale,maionese,aglio;)in una variabile di sessione, così:
    -----------
    If isnull(Session("panino_scelto")) then
    Session("panino_scelto") = panino
    else
    Session("panino_scelto") = Session("panino_scelto") &
    ";" & panino
    end if
    ------------
    nella variabile di sessione avrai quindi tante stringhe separate da ;, ognuna delle quali è composta da n ingredienti, giusto?
    Quando finalmente il cliente deciderà di acquistare, allora e solo allora comincerà l'inserimento nel db (ti ricordo che le connessioni al db, qualunque esso sia, sono la maggior causa di rallentamente in una comunicazione via web nei siti di e-commerce, è quindi meglio evitare continue aperture e chiusure di recordset!!!).
    Per inserire nel db procederai in questo modo (con ASP)

    fai lo split (che genera matrici) della stringa contenuta in
    session(panini)
    mtr_panini = split(session(panini),";")
    ottieni n matrici, ognuna con all'interno 1 panino e i suoi ingredienti
    creerai il ciclo,dopo la connessione unica al db

    'connessione db
    dim connessione
    set connessione=server.createobject("adodb.connection")
    'apertura tabella ordini
    dim tb_ordini
    set tb_ordini=server.createobject("adodb.recordset")
    tb_ordini.open ("tabella_ordini"),connessione

    For i=0 to ubound(mtr_panini)
    'e per ogni panino, farai lo split e l'inserimento nel db

    mtr_singolo_panino=split(mtr_panini(i),",")
    dim contatore_int=0

    tb_ordini.addnew

    'se ti basta inserire solo il panino con di seguito
    'gli ingredienti procedi così

    tb_ordini.field("tipo_panino")=mtr_panini(i)
    'e ovviamente ricordati di memorizzare anche lo user,
    'ti servirà poi per estrarre l'ordine


    tb_ordini.update


    next contatore_int

    next i

    Nella pagina di visualizzazzione, fai una select di tutti i record con data odierna, user e elenchi gli ordini inviati
    Eventualmente, puoi prevedere un campo stato, per la conferma dell'acquisto.

    Buon lavoro



    fabio
    <hr height=1 noshade id=quote></BLOCKQUOTE id=quote><!--</font id=quote><font face="" size= id=quote>-->


    Ciao Fabio,
    non conosco PHP ed avrei una domanda. Hai detto che PHP e simile a JSP, ma PHP permette la programmazione ad oggetti?

    Grazie,
    Asso Di Coppe

    Don't be worry, is only a piece
  • Re: Esame JSP!

    Array a grandezza fissa !!

    Wolly
  • Re: Esame JSP!

    <BLOCKQUOTE id=quote><!--<font size= face="" id=quote>-->quote:<hr height=1 noshade id=quote>
    Array a grandezza fissa !!

    Wolly
    <hr height=1 noshade id=quote></BLOCKQUOTE id=quote><!--</font id=quote><font face="" size= id=quote>-->

    Sì, in Java non è possibile utilizzare un array che non sia dimensionato a priori, d'altronde visto che è un linguaggio ad oggetti non ci interessa nemmeno una soluzione del genere, quanto meno non è "elegante".

    Sia che trattiamo variabili primitive o oggetti, possiamo sfruttare delle liste dinamiche, cioè oggetti Vector, ArrayList etc., per sfruttare la possibilita di immaganizzare, ciclare e quant'altre operazioni specifiche eseguire sul nostro oggetto "lista".

    Un array è un unsieme di variabili primitive o di oggetti che si utilizza principalmente per l'acquisizione di dati in partenza (start up dell'applicazione o del metodo!). E' possibile sfruttare queste liste anche quando abbiamo array caricati inizialmente, sfruttando appositi metodi passiamo all'oggetto "lista" l'intero array.

    Spero come sempre che sia riuscito a spiegarmi ,
    ciao

    Don't be worry, is only a piece
Devi accedere o registrarti per scrivere nel forum
18 risposte