Caching mit OSCache Teil 3
Tuesday, August 21st, 2007Mit der Taglibrary von OSCache können einzelne Segmente innerhalb einer JSP gecached werden. Das “cache”-Tag führt den Tag-Body aus und cached anschliessend das Ergebnis (also den Output). Dabei kann der JSP-Entwickler entscheiden, wie lange und in welchem Scope (Application oder Session) der Body Content gecached werden soll.
Die Konfiguration des Algorithmus sowie die maximale Anzahl Objekte im Cache werden in einem property-File (oscache.properties) vorgenommen, welches in das WEB-INF/classes Verzeichnis platziert wird.
Das nachfolgende Beispiel cached zwei Datumsobjekte. Das erste wird für 5 Sekunden im Application Scope gecached. Das zweite für 10 Sekunden im Session Scope (jede Session bekommt also ein eigenes gecachetes Objekt).
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- </head>
- <body>
- <h1>Cached Object 1</h1>
- <cache:cache time="5" >
- <jsp:useBean id="now" scope="page" class="java.util.Date"/>
- <c:out value="${now}"/>
- </cache:cache>
- <-- now ist nur dann vorhanden, wenn der Body des obigen Cache Tag ausgewertet wird (beim ersten Mal und nach Ablauf der Cache Zeit) -->
- <c:out value="${now}"/>
- <h1>Cached Object 2</h1>
- <cache:cache time="10" scope="session" >
- <jsp:useBean id="nowInSession" scope="page" class="java.util.Date"/>
- <c:out value="${nowInSession}"/>
- </cache:cache>
- </body>
- </html>
Die (sehr gute Dokumentation) der Taglibrary gibts unter
http://www.opensymphony.com/oscache/wiki/JSP%20Tags.html#JSPTags-cache