2012-01-26 36 views
7

Tôi đang sử dụng các trang Tomcat 7 và JSP. Tôi muốn cung cấp trang lỗi tùy chỉnh cho lỗi HTTP 500.Trang lỗi HTTP tùy chỉnh không được hiển thị trong Internet Explorer

Những gì tôi đã làm là để khai báo các trang lỗi tùy chỉnh như sau trong web.xml:

<error-page> 
    <error-code>500</error-code> 
    <location>/error.jsp</location> 
</error-page> 

Và tôi đã tạo ra một JSP gọi error.jsp với đoạn mã sau:

<%@ page pageEncoding="UTF-8" isErrorPage="true" %> 
<!DOCTYPE html> 
<html> 
    <head> 
    <title>500</title> 
    </head> 
    <body> 
    <img src="${pageContext.request.contextPath}/images/500.jpg" /> 
    </body> 
</html> 

Bây giờ làm việc này trong hầu hết trình duyệt, nhưng trong Internet Explorer, tôi được đưa đến trang "Trang web không thể hiển thị trang" chuẩn.

Tại sao trang lỗi HTTP 500 tùy chỉnh của tôi không được hiển thị trong Internet Explorer?

Trả lời

21

Đây là tính năng của IE. Khi trang lỗi HTTP được truy xuất từ ​​máy chủ nhỏ hơn 512 byte, thì theo mặc định, IE sẽ hiển thị trang lỗi "Thân thiện" giống như trang bạn đang gặp phải, được cấu hình bằng Công cụ > Tùy chọn Internet> Nâng cao> Bỏ chọn "Hiển thị Thông báo lỗi thân thiện " trong trình duyệt. Các trình duyệt (thực) khác không có tính năng này.

Làm cho trang lỗi HTTP của bạn lớn hơn một chút so với 512 byte nên giải quyết tính năng IE này. Bạn có thể thêm một số tiêu đề meta thêm, thêm một số khoảng trắng để mã thụt lề, thêm một số đánh dấu ngữ nghĩa hơn sau bố trí tiêu chuẩn của trang web của bạn, thêm một nhận xét HTML lớn, vv

+1

Nghiêm túc tại sao IE lại là một ... – Worthy7

+0

Có. Ngay cả tôi cũng phải làm điều này để khắc phục vấn đề của mình. Nhưng tất cả dữ liệu được hiển thị đúng cách ngoại trừ biểu tượng tab. Nó đang hiển thị biểu tượng tomcat mặc định. Mine là một trang html đơn giản. Bất kì giải pháp nào? –

1

Tìm thấy rằng việc thêm

<% response.setStatus(200); %> 

đến trang JSP lỗi (nghĩa là trước thẻ HTML) sẽ khắc phục được sự cố.

+0

vấn đề của tôi với biểu tượng tab đã được giải quyết bằng cách đặt trạng thái phản hồi thành 200. Thanx –

Các vấn đề liên quan