Mam następujący kod w metodzie doFilter(), gdzie dostaję komponent o zakreślonej skali.HttpServletResponse.sendError() nie przekierowuje do strony błędu
if (request.getServletContext().getAttribute("resource")==null) {
response.sendError(503);
return;
}
Zmapowałem 503 kod do określonej strony błędu w web.xml. I naprawdę dostaję zawartość strony błędu w przeglądarce, jeśli wystąpi błąd. Ale adres w pasku adresu nie zmienia adresu strony błędu: adres żądanego serwletu pozostawia tam. Czy to właściwe zachowanie? Chciałbym wyraźnie poinformować o przekierowaniu na stronę błędu. Czy jest to możliwe tylko z sendRedirect()?
Dlaczego chcesz zmienić adres URL? Dlaczego chcesz, aby Twoje strony z błędami były publicznie dostępne? Kanoniczne podejście polega na przechowywaniu ich w folderze '/ WEB-INF' i przepuszczaniu kontenera do niego. Przekierowanie spowodowałoby jedynie całkowite złamanie kodu statusu i wprowadzenie w błąd przeglądarek i wyszukiwarek o zdarzeniu poprzez zwrócenie 3nn/2nn. Po prostu nie ** nie ** przekierowuj do strony błędu! – BalusC