2013-03-02 3 views
5

Ich bin ein Anfänger in Java EE-Technologien. Ich frage mich, was der Unterschied zwischen dem jstl-api Glas und dem jstl-impl Glas ist.Unterschied zwischen jstl-api und jstl-impl

Warum sind API und Implementierung getrennt? Bedeutet es, dass andere Implementierungen verfügbar sind?

Antwort

6

Die API und die Implementierung sind getrennt, da Java EE mit einer standardisierten Spezifikation arbeitet.

Die API ist Teil dieser Spezifikation und enthält eine Reihe von meist Schnittstellen, an die alle, die an der Erstellung der Spezifikation beteiligt waren, zugestimmt haben. Theoretisch kann jeder eine Implementierung durchführen, die die veröffentlichte standardisierte API implementiert und sich verhält, wie im zugehörigen Spezifikationsdokument beschrieben. Sie dürfen Ihre Implementierung "zertifiziert" nennen, wenn sie das so genannte TCK (Technical Compliance Kit) besteht.

Es ist ein erklärtes Ziel dieses Spezifizierungssystems, den Wettbewerb zu fördern, während geschützte Benutzer gleichzeitig in eine bestimmte Implementierung eingeschlossen sind.

JSTL ist insbesondere Teil der JSP-Spezifikation, die unter JSR 245 entwickelt wurde. Wenn Sie Ihre eigene Implementierung erstellen möchten, beginnen Sie mit dem Lesen der spec document.

Könnten Sie mich auf Tutorials hinweisen, die erklären, wie Sie unser eigenes impl für jstl schreiben?

Soweit ich weiß, gibt es keine spezifischen Tutorials zum Erstellen einer eigenen Implementierung der Java EE Spezifikation. Es ist in fast allen Fällen ziemlich ein Experte Job, und eine Arbeit, die in der Regel nur durch eine Auswahl von wenigen Organisationen oder Einzelpersonen durchgeführt wird. Diese Art von Material eignet sich nicht wirklich für Tutorial-ähnliche Aufsätze, obwohl David Blevins (von TomEE-Ruhm) uns gelegentlich einen Einblick in die Arbeit gegeben hat, die damit ungefähr verbunden ist.

+0

Mein Glassfish-Server hat 'javax.servlet.jsp. jstl.jar', aber es hat kein 'jstl-impl.jar'. Ist das ein Problem, wenn ich JSTL in meinen JSP-Dateien verwenden möchte? Mein Tutorial verwendet GF3 und hat beide Gläser, während meine Umgebung GF4 und Servlet-JSTL Glas hat. – james

3

jstl-api enthält die Schnittstellen, die implementiert werden müssen. Das jstl-impl enthält die Standard- oder Standardimplementierung dieser Implementierungen. Warum brauchst du beides? Wenn Sie die Standard- oder Standardfunktionalität verwenden möchten, verwenden Sie das JSTL-IMPL. Wenn Sie jedoch Ihr eigenes Verhalten implementieren möchten, können Sie die Methoden der Schnittstellen in JSTL-API überschreiben. Das bedeutet eine API: Anwendungsprogrammierschnittstelle. Freundliche Grüße.

+0

kannst du mich auf Tutorials verweisen, die erklären, wie man unser eigenes impl für jstl schreibt? –

+0

http://www.noppanit.com/how-to-create-a-custom-function-for-jstl/ Ich hoffe, es könnte Ihnen helfen. Das ist für Funktionen, aber es gibt für benutzerdefinierte Tags: http://www.codeproject.com/Articles/31614/JSP-JSTL-Custom-Tag-Library Mit freundlichen Grüßen –