robot ha scritto:
Il tutto solo ed in unica pagina jsp
robot ha scritto:
Ed 1 solo servlet
Solo una servlet ed una jsp?? Verrebbe più difficile (oltre che meno buono come design, la servlet farebbe "troppe" cose ...).
Giusto come scenario ipotetico:
Una servlet ListaCandidatiServlet mappata su un url blablabla/lista-candidati.html
- il
doGet() estrae tutti i candidati e poi fa passare con forward ad una jsp es. lista-candidati.jsp
Una servlet EditazioneCandidatoServlet mappata su un url blablabla/editazione-candidato.html
- il
doGet() verifica innanzitutto se viene passato un id (es. blablabla/lista-candidati.html?
id=12345 ), quindi:
--- Se c'è Id, legge da DB il candidato e poi fa passare con forward ad una jsp es. editazione-candidato.jsp in cui vengono riempiti i campi (con il Id come campo "hidden")
--- Se non c'è Id, fa passare sempre a editazione-candidato.jsp ma per avere il form "vuoto" e pronto per un inserimento da parte dell'utente.
- il
doPost() si occupa di aggiornare
O inserire il candidato su DB, a seconda se c'è il parametro Id o no al submit del form.
Quando si fa un post ci sono sempre i soliti problemi del potenziale resubmit da parte dell'utente. Per evitare questi problemi si usa spesso il pattern
Post/Redirect/Get. Quindi nel doPost() puoi fare un redirect (quindi un GET che farà poi il browser) o alla lista o alla pagina di editazione.
Riguardo la eliminazione .... è da vedere, perché bisogna considerare alcuni aspetti. La eliminazione da dove parte? Dalla pagina di lista o dalla pagina di editazione del candidato? Se parte dalla lista, vuoi presentare prima una pagina di dettaglio (non modificabile) del candidato con la conferma della eliminazione? Fatta la eliminazione, vuoi tornare sulla lista o su una pagina che conferma la eliminazione?
Quello che vorrei farti capire è che in questi casi bisogna "ragionare" bene sul flusso delle richieste fatte dal browser e quindi come avviene la navigazione tra le varie pagine. Non "fissarti" solo sul "
voglio solo una jsp e una servlet".