我正在JSP中實現自定義404處理程序 - AEM,CQ。 該文件居住在應用程序/ sling/servlet/errorhandler/404.jsp使用請求分派器發送404請求JSP
我攔截未找到的請求並使用RequestDispatcher類轉發。
<%@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);
}
%>
上面的代碼獲取錯誤page.html中的保持URL相同的內容,但發回的響應代碼不是404,是200吧。
如何返回404?
如果你正在轉發到錯誤頁面(和錯誤頁面存在),你一定會得到200,對不對? – ochi
我也這麼認爲,我試圖包括(請求,水庫),但仍然200. – shank
發送404錯誤代碼的點是什麼,因爲你已經截獲它,併發送遺傳404錯誤頁面。你可以只記錄錯誤信息並繼續?我不明白其背後的原因。 –