我在我的web.xml文件中配置了自定義錯誤頁面,但頁面中引用的圖像顯示爲斷開的鏈接。自定義Tomcat錯誤頁面不顯示圖像
自定義錯誤頁僅僅是一個簡單的HTML頁面:
<!DOCTYPE html>
<html><head>
<meta charset="UTF-8"><title>401 Error</title></head>
<body>
<p style="font-size: 200%; text-align: center">HTTP Error 401: Not authorized to view sensitive data.<br/>
<img src="NoAccessImage.png" alt="401Error"><br/>
You must log in before viewing the requested page.</p>
</body></html>
本頁面被存儲在一個文件夾中的錯誤,隨着圖像文件,它引用。 身份驗證過濾器用於引發401錯誤,並且如果我在未首先登錄的情況下嘗試查看受保護的內容,該頁面就會顯示。但引用的圖像缺失。如果我只是將文件拖入網頁瀏覽器,它顯示正確,所以我認爲這是一個上下文的問題。我嘗試將img src標記更改爲"/error/NoAccessImage.png"
,但沒有任何結果。
相關AuthenticationFilter代碼如下:
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
try {
boolean authorized = false;
HttpServletRequest r = (HttpServletRequest) request;
HttpSession session = ((HttpServletRequest)request).getSession(false);
String uri = r.getRequestURI();
if(uri.indexOf("/Login")>0) {
chain.doFilter(request, response);
return;
}
if (session != null) {
String school = (String) session.getAttribute("school");
if(school != null && school.length()>0) {
authorized = (school.equals(getURISchool(uri)));
}
}
if (authorized) {
chain.doFilter(request, response);
return;
} else {
((HttpServletResponse) response).sendError(401, "You must log in to view the schedule.");
}
} catch (IOException io) {
System.out.println("IOException raised in AuthenticationFilter");
}
}
從內部做一個左點擊圖片上的瀏覽器並複製鏈接到圖像。並檢查:) – 2013-01-05 15:29:29