我正在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错误页面。你可以只记录错误信息并继续?我不明白其背后的原因。 –