I'm working to try to get an app that runs on a rather old version of jBoss to disallow caching on Opera browsers in some critical places. The jBoss version in question is 3.something, I think--2002 vintage or so.
Background. The application is a library automation system at a university. Without going into a lot of detail, when a user is connected via an Opera browser, what's happening is that a particular form gets cached and so if the user tries to ask the library for 3 books, instead of sending, 3 independent, distinct sets of info (one for each book title), the same book info gets sent to the server every time and the web app just throws the 2nd and 3rd away as spurious dupes--the users get mad when only the first submission actually takes.
Unfortunately, it appears that to solve this problem for Opera users, I need to send something in the HTTP header itself. The following are in the critical web pages served up by jBoss already (it builds the pages from XSL templates so we just added these to the templates in question; it didn't solve the problem on Opera):
<META http-equiv="Pragma" content="no-cache">
<META http-equiv="Cache-Control" content="no-cache">
They already had this one (and we left it in):
<META http-equiv="expires" content="0">
Adding the no-cache pragma and cache-control META tags solved the problem for Firefox browsers. And, on test Opera setups, if we configure it so it does not do caching no matter what, everything works great. So it's pretty clear the problem is the unwanted caching. It's not practical to tell Opera users to just disable all caching when they interact with this one site....
As described here:
the no-cache directives need to be in the HTTP header of the response, rather than in META tags--at least for Opera (the caching mostly leads to problems for Mac users--overwhelmingly the faculty members have Macs...).
So, the question: is there a way to configure jBoss to send these values in the HTTP headers or do we have to try to find the code that builds the JSPs (apparently done on the fly--the vendor is being no help at all: grrr!) and decompile it and add this to the HTTP response construction?
Any suggestions welcomed!