Ceci n’est pas un bug mais le fonctionnement de base de JEEJava Entreprise Edition qui crée une session. Ne sachant pas si le navigateur du client possède la fonctionnalité des cookies, java préfère passer la session dans l’url.
Pour ce faire, il suffit de créer un filter comme expliqué dans l’excellent post suivant:
http://java.dzone.com/articles/java-jsessionid-harmful
Créer une classe java suivante:
public class URLSessionFilter implements Filter {
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
if (!(request instanceof HttpServletRequest)) {
chain.doFilter(request, response);
return;
}
HttpServletResponse httpResponse = (HttpServletResponse) response;
HttpServletResponseWrapper wrappedResponse = new HttpServletResponseWrapper(
httpResponse) {
public String encodeRedirectUrl(String url) {
return url;
}
public String encodeRedirectURL(String url) {
return url;
}
public String encodeUrl(String url) {
return url;
}
public String encodeURL(String url) {
return url;
}
};
chain.doFilter(request, wrappedResponse);
}
public void init(FilterConfig filterConfig) {
}
public void destroy() {
}
}
Et renseigner ce filter dans votre web.xml:
<filter>
<filter-name>URLSessionFilter</filter-name>
<filter-class>com.framework.filter.URLSessionFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>URLSessionFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
C’est tout! Le paramètre jsessionid disparait tout simplement des urls lors de la première connexion.
Attention néanmoins si vous utiliser pretty faces, il est important de placer ce filter avant le filter de prettry faces, sinon pretty-faces sera comme désactivé.
Parlons mobilité, parlons ERP ! Et si l’on rendait mobile une des applications web essentielles de votre entreprise ? Quelles optimisations sont nécessaires pour quels gains ?
Découvrez la planche #10 !
Lors de la génération de rapport, il est parfois nécessaire d’afficher des images stockées dans une base de données dans un champ de type blob.