2013-03-02 12 views
5

Sono un principiante nelle tecnologie Java EE. Mi chiedo quale sia la differenza tra il vaso jstl-api e il vaso jstl-impl.differenza tra jstl-api e jstl-impl

Perché l'API e l'implementazione sono separate? Significa che ci sono altre implementazioni disponibili?

risposta

6

L'API e l'implementazione sono separate, poiché Java EE funziona con una specifica standardizzata.

L'API fa parte di tale specifica e contiene un insieme di interfacce per lo più a cui tutti coloro che hanno partecipato alla creazione di detta specifica concordata. In teoria tutti possono realizzare un'implementazione che implementa l'API standardizzata pubblicata e si comporta come descritto nel documento delle specifiche associate. Sei autorizzato a chiamare la tua implementazione "certificata" quando passa il cosiddetto TCK (Technical Compliance Kit).

È un obiettivo dichiarato di questo sistema di specifiche per incoraggiare la concorrenza, mentre gli stessi utenti protetti sono bloccati in qualsiasi specifica implementazione.

JSTL in particolare fa parte della specifica JSP, che è stata sviluppata in JSR 245. Se desideri realizzare la tua implementazione, inizi a leggere lo spec document.

Potete indicarmi qualche tutorial che spiega come scrivere il nostro impl per jstl?

Per quanto ne so non esistono tutorial specifici per creare la propria implementazione di qualsiasi specifica Java EE. In quasi tutti i casi è praticamente un lavoro da esperto, e un lavoro che viene in genere eseguito solo da poche organizzazioni o individui selezionati. Questo tipo di materiale non si presta davvero a riscrivere come un tutorial, sebbene David Blevins (di fama TomEE) ci abbia dato qualche spunto occasionale nel lavoro che è approssimativamente coinvolto in questo.

+0

Il mio server glassfish ha 'javax.servlet.jsp. jstl.jar', ma non ha 'jstl-impl.jar'. Sarà un problema se voglio usare JSTL nei miei file JSP? Il mio tutorial usa GF3 e ha entrambi i jar, mentre il mio ambiente ha GF4 e jar servlet-jstl. – james

3

jstl-api contiene le interfacce che devono essere implementate. Jstl-impl contiene l'implementazione standard o predefinita di tali implementazioni. Perché hai bisogno di entrambi? perché se si desidera la funzionalità standard o predefinita si utilizza il jstl-impl, ma se si desidera implementare il proprio comportamento, è possibile sovrascrivere i metodi delle interfacce in jstl-api. Ecco cosa significa un'API: Application Programming Interface. I migliori saluti.

+0

potresti indicarmi dei tutorial che spiegano come scrivere il nostro impl per jstl? –

+0

http://www.noppanit.com/how-to-create-a-custom-function-for-jstl/ Spero che possa aiutarti. Questo è per le funzioni, ma ci sono per i tag personalizzati: http://www.codeproject.com/Articles/31614/JSP-JSTL-Custom-Tag-Library Cordiali saluti –