The caching options are perfect for pages which update periodically. For example, a page which displays the outside temperature every 1 minute, could look like the following: <%@ cache_simple_html="true" %> <%@ cache_recycle_millis="m1" %>

This outside temp is <%= bTemp.getTemp() %>.

Another example maybe a "daily's specials" menu for a restaurant which is changed daily and pulled from a database. <%@ cache_simple_html="true" %> <%@ cache_recycle_millis="h1" %>

The specials are: <% for( int i=0; i

Another type of page which could use caching are pages which take a querystring and return different results. If the number of different pages are small, then you can turn on caching (supports different querystrings). You don't have to use the old trick of manually generating static renditions! For example, the following code returns a different application depending on the querystring "appID" (no recycle time): <%@ cache_simple_html="true" %> <%= bApps.getApp( request.getParamter("appID") ) %> If your page queries a database and can generate too many variations to make caching worthwhile, you can still cache the most often requested versions! For example, I have some query pages which always show the same page the first time a user accesses it without any parameters, so I can catch the no parameters case: <%@ cache_simple_html="true" %>

Your key is: <% String strUserID = request.getParamter( "userID" ); if( strUserID != null ) { out.print( bKeys.getKey(strUserID) ); // turn off caching for this case response.setHeader( ".pragma", "no-cache" ); } %>

If you like to see a small site in action, try: http://www.rcreations.com It's an old server with a cable modem capped at 12k uploads. Enjoy!