1. Übersicht
In Webanwendungen kann die Erstellung einiger Berichte lange dauern, bis die Datenbank Wetterinformationen bereitstellt, was den Zugriff auf einen Remote-Server erfordert, um einen SOAP-Aufruf zum Abrufen von Temperaturinformationen durchzuführen. All dies sind Beispiele für komplexe Informationen. Das Hinzufügen zu vieler komplexer Informationen zu einer Webseite kann zu einer Überlastung des Webservers und des Datenbankservers führen. jsp (die erste Wahl für SUN-Anwendungen auf Unternehmensebene) (die erste Wahl für SUN-Anwendungen auf Unternehmensebene) Die Pufferung von Codeblöcken bietet Entwicklern die Freiheit, nach Belieben verschiedene komplexe Informationen hinzuzufügen.
jsp (die erste Wahl für SUN-Anwendungen auf Unternehmensebene) (die erste Wahl für SUN-Anwendungen auf Unternehmensebene) kann komplexen Java-Code in der Tag-Bibliothek kapseln und ausführen, was die JSP (die erste Wahl für SUN-Anwendungen auf Unternehmensebene) macht. (erste Wahl für SUN-Anwendungen auf Unternehmensebene) Level-Anwendungen) Auslagerungsdateien. Es gibt bereits viele Tag-Bibliotheken, bei denen es sich entweder um kommerzielle Produkte oder Open-Source-Produkte handelt. Die meisten dieser Produkte verwenden jedoch nur Tag-Bibliotheken, um Funktionen zu implementieren, die mit einem einfachen Java-Scriptlet implementiert werden können. Nur wenige Produkte verwenden benutzerdefinierte Tags auf kreative Weise, um JSP (SUN-Anwendungen auf Unternehmensebene) bereitzustellen Die Implementierung einer benutzerdefinierten Tag-Bibliothek für SUN-Anwendungen auf Unternehmensebene war bisher fast unmöglich.
Die OSCache-Tag-Bibliothek wurde von OpenSymphony entwickelt. Es handelt sich um eine bahnbrechende benutzerdefinierte Tag-Anwendung von JSP (SUN Enterprise-Level Application's First Choice), die die Möglichkeit bietet, vorhandene JSP (SUN Enterprise-Level Application's First Choice) zu verwenden Wahl)(Die erste Wahl für SUN-Anwendungen auf Unternehmensebene) realisiert die Funktion der schnellen Speicherpufferung innerhalb der Seite. Es gibt zwar einige Anbieter, die Caching-Produkte in verschiedenen Formen anbieten, es handelt sich jedoch bei allen um herstellerspezifische Produkte. OSCache kann auf jedem JSP-1.1-kompatiblen Server ausgeführt werden. Es kann nicht nur vorhandene JSP-Anwendungen zwischenspeichern ) für alle Benutzer. Die erste Wahl für Anwendungen) Codeblöcke und können pro Benutzer gepuffert werden. OSCache enthält außerdem einige erweiterte Funktionen zur Verbesserung der Skalierbarkeit, z. B. Pufferung auf Festplatte, programmierbare Pufferlöschung, Ausnahmekontrolle usw. Darüber hinaus wird der Code von OSCache wie andere OpenSymphony-Produkte unter einer Open-Source-Lizenz frei verbreitet.
In diesem Artikel wird ein imaginärer Designprozess einer Auktionswebsite als Beispiel verwendet, um den Arbeitsprozess von OSCache vorzustellen. Diese imaginäre Website enthält: eine Verwaltungsseite, die aktuelle Auktionsaktivitäten meldet; eine voll funktionsfähige Homepage mit verschiedenen Werbeinformationen und eine spezielle Navigationsleiste, die Informationen über alle noch nicht abgewickelten Auktionsaktivitäten des Benutzers enthält;
2. Verwaltungsseite
Die Auktionswebsite enthält einen Verwaltungsbericht und es dauert einige Sekunden, bis der Datenbankserver einen solchen Bericht erstellt. Es ist wichtig, dass die Erstellung des Berichts lange dauert, da möglicherweise mehrere Administratoren den Betrieb des Systems überwachen und wir vermeiden möchten, dass der Bericht bei jedem Besuch des Administrators neu erstellt wird. Um dies zu erreichen, kapseln wir die gesamte Seite in ein Puffer-Tag auf Anwendungsebene, das stündlich aktualisiert wird. Einige Produkte anderer Anbieter verfügen über ähnliche Funktionen, nur dass OSCache diese besser beherrscht als diese.
Der Einfachheit halber konzentrieren wir uns nicht zu sehr auf Formatierungsfragen. Beim Schreiben der Verwaltungsseite fügen wir zunächst die Tag-Bibliotheksdeklaration zur Seite hinzu:
<%@ taglib uri="cachetags" prefix="cache" %>
Als nächstes müssen wir die gesamte Seite mit Cache-Tags umgeben. Die Standard-Cache-Zeit für Cache-Tags beträgt 1 Stunde.
<cache:cache> .... Komplexe Verwaltungsberichte.... </cache:cache>
Die Verwaltungsseite wurde jetzt zwischengespeichert. Wenn der Administrator innerhalb einer Stunde nach der Generierung der Seite erneut auf dieselbe Seite zugreift, sieht er die zuvor zwischengespeicherte Seite und es ist nicht erforderlich, dass der Datenbankserver diesen Bericht erneut generiert.
3. Startseite
Auf der Startseite der Auktionswebsite werden Website-Aktivitäten angezeigt und Auktionen beworben, die kurz vor dem Ende stehen. Wir möchten die Anzahl der laufenden Auktionen, die Anzahl der aktuell angemeldeten Benutzer, eine Liste der Auktionen, die in naher Zukunft enden werden, und die aktuelle Uhrzeit anzeigen. Für diese Nachrichten gelten unterschiedliche Anforderungen an die Zeitgenauigkeit. Auktionen auf der Website dauern in der Regel mehrere Tage, daher können wir die Zeit zum Puffern der Anzahl gültiger Auktionen auf 6 Stunden einstellen. Die Anzahl der Benutzer wird sich natürlich häufiger ändern, hier werden wir diesen Wert jedoch für jeweils 15 Minuten zwischenspeichern. Schließlich möchten wir, dass die auf der Seite angezeigte aktuelle Uhrzeit immer genau die Zeit ist, zu der die Seite aufgerufen wurde.
Nachdem wir die Tag-Bibliothek auf der Startseite deklariert haben, geben wir zunächst das aktuelle Datum ohne Pufferung direkt aus:
Jetzt lautet es: <%=new java.util.Date()%>
Als nächstes wollen wir eine Liste der Auktionen anzeigen die kurzfristig enden:
<cache:cache> <ul> <% // Konstruiere einen Iterator mit den neuesten Auktionen. Iterator Auctions = .... while (auctions.hasMore()) { Auction Auction = (Auction) Auctions .next(); %><li><%=auction%></li%< } %> </ul> </cache:cache>