How can I tell to GlassFish server, to store all JS, CSS and PNG files into browser cache in order to reduce HTTP GET requests?
I am using JSF and PrimeFaces.
Just make use of JSF builtin resource handler. I.e. use <h:outputStylesheet name>, <h:outputScript name> and <h:graphicImage name> with files in /resources folder instead of "plain vanilla" <link rel="stylesheet">, <script> and <img>.
<h:outputStylesheet name>
<h:outputScript name>
<h:graphicImage name>
/resources
<link rel="stylesheet">
<script>
<img>
<h:outputStylesheet name="css/style.css" /> <h:outputScript name="js/script.js" /> <h:graphicImage name="images/logo.png" />
This way you don't need to worry about resource caching at all. JSF builtin resource handler has already set the necessary response headers. The expiration time defaults already to 1 week.
In Mojarra you can control the expiration time by the following context parameter (the value is in millis):
<context-param> <param-name>com.sun.faces.defaultResourceMaxAge</param-name> <param-value>3628800000</param-value> <!-- 6 weeks. --> </context-param>
And in MyFaces:
<context-param> <param-name>org.apache.myfaces.RESOURCE_MAX_TIME_EXPIRES</param-name> <param-value>3628800000</param-value> <!-- 6 weeks. --> </context-param>
2.1m questions
2.1m answers
60 comments
57.0k users