powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Обработчик Error code сервера
7 сообщений из 7, страница 1 из 1
Обработчик Error code сервера
    #39470457
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прикручиваю к своему проекту обработчик ошибок.
Чтобы не делать кучу страниц на каждый код ошибки решил сделать так
Контроллер ошибок
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
@Controller
public class ErrorController {
    
    @RequestMapping(value = "/error/{code}", method = RequestMethod.GET)
        public ModelAndView errorPage(@PathVariable String code) {
        ModelAndView model = new ModelAndView();
        model.addObject("code", code);
        switch(code){           
...
            case "403":
                model.addObject("title", "Forbidden");
                model.addObject("mesage", "The request was valid, but the server is refusing action. The user might not have the necessary permissions for a resource.");
                model.addObject("link", "https://en.wikipedia.org/wiki/HTTP_403");
               break;
            case "404":
                model.addObject("title", "Not Found");
                model.addObject("mesage", "The requested resource could not be found but may be available in the future. Subsequent requests by the client are permissible.");
                model.addObject("link", "https://en.wikipedia.org/wiki/HTTP_404");
               break;
...
        }

        model.setViewName("error");
        return model;
    }


Маппинг из WEB.XML
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
        <!-- Error code mapping -->
        <error-page>
            <error-code>400</error-code>
            <location>/error/400</location>
        </error-page>
        
        <error-page>
            <error-code>401</error-code>
            <location>/error/401</location>
        </error-page>
        
        <error-page>
            <error-code>403</error-code>
            <location>/error/403</location>
        </error-page>

        <error-page>
            <error-code>404</error-code>
            <location>/error/404</location>
        </error-page>

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



Вопрос - можно ли как-то упростить маппинг или необходимо прописывать каждый код ошибки отдельно?
Как в моём примере.
Спасибо!
...
Рейтинг: 0 / 0
Обработчик Error code сервера
    #39470466
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А потому что не надо использовать дремучий JEE, когда уже в проекте Spring
https://spring.io/blog/2013/11/01/exception-handling-in-spring-mvc
А уж если приспичило использовать JEE, то возможно стоит его изучать по актуальным спекам
https://stackoverflow.com/a/7066536
А не по тем, которым уже 12 лет
...
Рейтинг: 0 / 0
Обработчик Error code сервера
    #39470501
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczА потому что не надо использовать дремучий JEE, когда уже в проекте Spring
https://spring.io/blog/2013/11/01/exception-handling-in-spring-mvc
А уж если приспичило использовать JEE, то возможно стоит его изучать по актуальным спекам
https://stackoverflow.com/a/7066536
А не по тем, которым уже 12 лет
В рамках "дремучей" технологии удалось прилично упростить код
Контроллер ошибок
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
@Controller
public class ErrorController {

    @RequestMapping(value="/error", produces="application/json")
    @ResponseBody
    public ModelAndView handle(HttpServletRequest request) {
        ModelAndView model = new ModelAndView();
        
        model.addObject("code", request.getAttribute("javax.servlet.error.status_code"));
        model.addObject("message", request.getAttribute("javax.servlet.error.message"));
 
        return model;
    }


WEB.XML
Код: xml
1.
2.
3.
4.
        <!-- Error code mapping -->
        <error-page>
            <location>/error</location>
        </error-page>


Сейчас покурим Exception Handler...
...
Рейтинг: 0 / 0
Обработчик Error code сервера
    #39470506
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL2008,
а ещё проще?
<location>/error/My_Servlet_error.jsp</location>
Что тут контроллёру делать?
...
Рейтинг: 0 / 0
Обработчик Error code сервера
    #39470518
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123SQL2008,
а ещё проще?
<location>/error/My_Servlet_error.jsp</location>
Что тут контроллёру делать?
Все верно! Если просто отображать ошибку, то хватит просто страницы.
Но впоследствии хочу прикрутить сбор статистики ошибок - кто заходил, с какoго IP, в какое время, из какого региона и т.п.
Лучше это делать в контроллере.
...
Рейтинг: 0 / 0
Обработчик Error code сервера
    #39470520
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати в официальном описании предлагается и такой способ.
Вставить на страницу
Код: java
1.
2.
3.
4.
5.
<%@ page contentType="application/json" pageEncoding="UTF-8"%>
{
    status:<%=request.getAttribute("javax.servlet.error.status_code") %>,
    reason:<%=request.getAttribute("javax.servlet.error.message") %>
}
...
Рейтинг: 0 / 0
Обработчик Error code сервера
    #39470525
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL2008прикрутить сбор статистики ошибок - кто заходил, с какoго IP, в какое время, из какого региона и т.п.
у вас это буде после try чтобы стек ошибки был
SQL2008Кстати в официальном описании предлагается и такой способ.
да.
Вам из errors.jsp или errors.html нужно вещи:
- красивую 404 ошибку чтобы выпендрится дизайном и
- все остальные в виде кода ошибки чтобы юзверь звонил в тех поддержку.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Обработчик Error code сервера
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]