Come posso gestire in modo efficiente i dati di input senza un framework?

0

Sto lavorando su un progetto molto piccolo e il mio design avrebbe utilizzato tecnologie come JSP, servlet e POJOs .

Sto considerando un flusso di lavoro in cui una pagina JSP riceverà i dati di input, quindi li invierà a un servlet. Il servlet avrebbe quindi un sacco di POJO helper che farebbero tutto il vero lavoro.

Una cosa che ho notato con questo approccio molto presto è che è cresciuto in un numero enorme di istruzioni if-then-else.

C'è un modo migliore per realizzare ciò che sto cercando di fare senza dover ricorrere a un framework?

    
posta niccolo m. 19.12.2011 - 10:23
fonte

2 risposte

1

Le pagine JSP sono servite da un servlet, quindi la frase "una pagina JSP riceverà i dati di input, quindi la invierà a un servlet" mi sembra un approccio strano (forse non l'ho capito bene). Normalmente, per prima cosa vedi i tuoi dati nel "servlet", quindi esegui il rendering di un documento (cioè JSP) che viene inviato al browser client.

Se non vuoi utilizzare un framework web, finirai per scrivere molte cose comuni da te (analizzando i parametri, convertendoli dalle stringhe ai tipi necessari, convalidandoli, rendi i risultati disponibili al tuo JSP. ..), e sì, che ha bisogno di molto se / poi / else.

In termini molto generali, quello che vuoi fare è usare un singolo servlet che fornisce le tue richieste:

 public void doGet(HttpServletRequest req, HttpServletResponse res)
                               throws ServletException, IOException {

    // Parse the request and select an aproppriate POJO that services this action
    // Your service POJOS should have a common interface (i.e. validate(),
    // service()...)

    // Call a binding method that reads parameters from GET/POST and maps them
    // to properties of your POJO

    // Call the POJO "validate()" so you know that input is ok

    // Call the POJO "service()" so it runs the appropriate process:
    // This should return all needed data and the name of the "JSP" you will use

    // Generate and send JSP to client

  }

Ma in realtà, hai bisogno di molta più flessibilità: devi essere in grado di usare i reindirizzamenti dalla tua azione, dovrai gestire le eccezioni in modo ragionevole, dovresti considerare la codifica dei contenuti ... in breve, Vi consiglio caldamente di riconsiderare l'uso di un framework (Struts 2, Spring MVC, Tapestry .... ce ne sono così tanti), o in alternativa postare il codice che serve una delle vostre richieste in modo che le persone possano suggerire miglioramenti.

Spero che aiuti.

    
risposta data 19.12.2011 - 11:20
fonte
1

Vorrei provare a modellare l'applicazione sviluppando un DSL (linguaggio specifico del dominio).

Ciò farebbe leva sulla logica del protocollo, decodificando dall'effettivo input e tramite riflessione dovrebbe consentire l'esecuzione (istanza del POJO) dei doveri richiesti. La grammatica del protocollo potrebbe essere sviluppata e testata separatamente e in modo incrementale, con l'aiuto di un generatore di parser.

Ovviamente, se sei simile a "syntax love".

La risposta di @jjmontes è ovviamente un po 'più pratica.

    
risposta data 19.12.2011 - 11:55
fonte

Leggi altre domande sui tag