Ich implementiere eine benutzerdefinierte 404-Handler in JSP - AEM, CQ. Die Datei lebt in apps/sling/servlet/errorhandler/404.jspSenden 404 mit Anfrage Dispatcher JSP
Ich abzufangen die Anfrage für Not Found und Weiterleitung mit RequestDispatcher-Klasse.
<%@taglib prefix="sling" uri="http://sling.apache.org/taglibs/sling"%>
<sling:defineObjects />
<%
// setting response code as 404
response.setStatus(HttpServletResponse.SC_NOT_FOUND);
response.setStatus(404);
System.out.println(response.getStatus());
try {
RequestDispatcher rd = request.getRequestDispatcher("/error-page.html");
rd.forward(request, response);
} catch (Exception e) {
RequestDispatcher rd = request.getRequestDispatcher("/error-page.html");
rd.forward(request, response);
}
%>
Der obige Code wird den Inhalt des fehler seite.html die URL gleich gehalten, aber der Antwortcode nicht zurück 404. Es ist 200 statt gesendet wird.
Wie kann ich einen 404 zurückgeben?
Wenn Sie auf eine Fehlerseite weiterleiten (und die Fehlerseite existiert), müssen Sie eine 200 bekommen, richtig? – ochi
Ich denke auch, ich habe versucht, (req, res), aber immer noch 200. – shank
was ist der Punkt des Sendens 404 Fehlercode, wie Sie bereits abgefangen haben und schickte eine genetische 404 Fehlerseite. Sie könnten einfach die Fehlermeldung protokollieren und fortfahren? Ich verstehe den Grund dafür nicht. –