Tuto - JSF 2 – Redirect HTTP 404 de manière programmatique
Il n’est pas forcément évident de faire un redirect 404 de manière programmatique en JAVA.
Un des principaux cas d’utilisation est lorsqu’on utilise un url rewritting pour générer des liens vers des pages web. Il peut arriver que la page web n’existe pas ou n’existe plus mais que la redirection (par exemple avec pretty-faces) vous a déjà fait calculer une partie de la page. Il devient dès lors très compliqué d’envoyer proprement une 404 au navigateur et non pas un simple message d’erreur.
Pourquoi il est important d’envoyer une vrai error 404?
Pour le référencement. En effet il est important que les moteurs de recherche trouvent bien une erreur 404 et non une page d’erreur classique. Sinon le référencement va en patir.
La solution se fait en deux étapes.
Premièrement créer un validator qui va valider la donnée « métier ». Est-ce que ma page existe réellement.
{{< highlight java >}} package validators;
import java.io.IOException;
import javax.faces.context.FacesContext; import javax.inject.Inject; import javax.inject.Named; import javax.servlet.http.HttpServletResponse;
@Named public class PageValidatorFaq404 {
public void validate(javax.faces.event.ComponentSystemEvent tete) {
if (monTest) {
FacesContext context = FacesContext.getCurrentInstance();
context.getExternalContext().setResponseStatus(404);
context.responseComplete();
HttpServletResponse lHttpServletResponse = ((HttpServletResponse) FacesContext
.getCurrentInstance().getExternalContext().getResponse());
try {
lHttpServletResponse
.sendError(HttpServletResponse.SC_NOT_FOUND);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}{{< /highlight >}}
Dans la page que nous voulons valider, il suffit de rajouter un validator sur la phase prerenderview comme ci.
{{< highlight java >}} < f:metadata> < f:event listener="#{pageValidatorGlossaire404.validate}" type="preRenderView" /> < /f:metadata>{{< /highlight >}}
Ainsi lors que la page ne valide pas le validator, une vrai erreur 404 est envoyé au navigateur et vous pouvez ensuite la traiter de manière propre, en affichant par exemple une jolie page 404 en la configurant de votre web.xml comme ceci:
{{< highlight java >}} < error-page> < error-code>404< /error-code> < location>/error404.xhtml< /location> < /error-page>{{< /highlight >}}
Dans un contexte où les architectures microservice, le cloud et les systèmes distribués sont devenus la norme, les API (Application Programming Interfaces) jouent un rôle central dans la communication entre les applications et les services. Elles facilitent les échanges de données, l'intégration de fonctionnalités et la scalabilité des infrastructures. Cependant, cette exposition accrue des API ouvre la voie à des vulnérabilités de sécurité majeures, qui peuvent être exploitées pour compromettre des systèmes critiques, voler des données ou perturber des services.
Chez AXOPEN, nous sommes convaincus que le cadrage de projet informatique est une des étapes les plus structurantes… et pourtant encore trop sous-estimée dans les projets IT. En effet, dans les projets informatiques, les dérives ne sont pas toujours dues à un bug ou à un mauvais choix technique. Bien souvent, le problème vient de plus loin : le projet était mal cadré dès le départ. Et pourtant, cette phase initiale est essentielle pour réussir un projet IT ! Dans cet article, on vous embarque dans la compréhension des fondamentaux du cadrage de projet informatique, et on vous donne aussi quelques tips de cadrage !
Comprendre comment gérer correctement les exceptions est essentiel pour garantir la robustesse de vos applications. Cet article explore les principes fondamentaux de la gestion des exceptions en .NET et vous montre une façon de tout centraliser.