Saya menggunakan <error-page>
elemen di web.xml untuk menentukan halaman kesalahan ramah ketika pengguna menemukan kesalahan tertentu seperti kesalahan dengan kode 404:
<error-page>
<error-code>404</error-code>
<location>/Error404.html</location>
</error-page>
Namun, saya ingin jika pengguna tidak menemukan kode kesalahan yang ditentukan <error-page>
, dia akan melihat halaman kesalahan default. Bagaimana cara melakukannya menggunakan elemen di web.xml ?
web.xml
deklarasikan? Hanya sejak Servlet 3.0 cara yang mudah.Jawaban:
Di Servlet 3.0 atau yang lebih baru, Anda bisa menentukannya
<web-app ...> <error-page> <location>/general-error.html</location> </error-page> </web-app>
Tetapi karena Anda masih menggunakan Servlet 2.5, tidak ada cara lain selain menentukan setiap kesalahan HTTP umum satu per satu. Anda perlu mencari tahu kesalahan HTTP mana yang mungkin dihadapi oleh pengguna akhir. Pada aplikasi web barebone dengan misalnya penggunaan otentikasi HTTP, memiliki daftar direktori yang dinonaktifkan, menggunakan servlet dan kode khusus yang mungkin dapat membuang pengecualian yang tidak tertangani atau tidak memiliki semua metode yang diterapkan, maka Anda ingin mengaturnya untuk kesalahan HTTP 401 , 403, 500 dan 503 masing-masing.
<error-page> <!-- Missing login --> <error-code>401</error-code> <location>/general-error.html</location> </error-page> <error-page> <!-- Forbidden directory listing --> <error-code>403</error-code> <location>/general-error.html</location> </error-page> <error-page> <!-- Missing resource --> <error-code>404</error-code> <location>/Error404.html</location> </error-page> <error-page> <!-- Uncaught exception --> <error-code>500</error-code> <location>/general-error.html</location> </error-page> <error-page> <!-- Unsupported servlet method --> <error-code>503</error-code> <location>/general-error.html</location> </error-page>
Itu harus mencakup yang paling umum.
sumber
<error-code>
tag?web.xml
file XSD membuktikannya<error-code>
dan<exception-type>
menjadi opsional daripada wajib. Lihat masalah 52135 .Anda juga bisa melakukan hal seperti itu:
<error-page> <error-code>403</error-code> <location>/403.html</location> </error-page> <error-page> <location>/error.html</location> </error-page>
Untuk kode kesalahan 403 ini akan mengembalikan halaman 403.html, dan untuk kode kesalahan lainnya akan mengembalikan halaman error.html.
sumber
Anda juga dapat menentukan
<error-page>
untuk pengecualian menggunakan<exception-type>
, misalnya di bawah ini:Atau petakan kode kesalahan menggunakan
<error-code>
:<error-page> <error-code>404</error-code> <location>/errorpages/404error.html</location> </error-page>
sumber