Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Spring @RequestMapping("/**") - странности / 10 сообщений из 10, страница 1 из 1
28.01.2017, 12:30
    #39393693
t61
t61
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring @RequestMapping("/**") - странности
Добрый день. Стоит задача отловить в контроллере все обращения на сайт (пример: site.ru/a, site.ru/v/b/f). Единственное решение использовать маску "/**". Ниже пример и странности. Используется либо метод example1 либо example2, не одновременно.

Код: 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.
26.
27.
28.
29.
30.
31.
32.
33.
34.
@Controller
public class AnyController {
    private static int i = 0;

    @RequestMapping(value = "/**", method = RequestMethod.GET)
    public String example1(HttpServletRequest request) {
        System.out.println("Step 1");
        //do something
        System.out.println("Step 2");
        //do something
        System.out.println("Step 3");
        //do something
        System.out.println("Step 4");
        //do something
        System.out.println("Step 5");
        System.out.println(i++);
        return "index";
    }

    @RequestMapping(value = "/**", method = RequestMethod.GET)
    public String example2(@RequestParam(value = "param", required = true) int param, HttpServletRequest request) {
        System.out.println("Step 1");
        //do something
        System.out.println("Step 2");
        //do something
        System.out.println("Step 3");
        //do something
        System.out.println("Step 4");
        //do something
        System.out.println("Step 5");
        System.out.println(i++);
        return "index";
    }
}



При попадании в метод example1 в консоль выведется примерно такое:
Step 1
Step 1
Step 1
...
Рейтинг: 0 / 0
28.01.2017, 12:36
    #39393696
t61
t61
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring @RequestMapping("/**") - странности
Не дописал сообщение, извиняюсь.

При обращении в метод example1 в консоль получим
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Step 1
Step 2
Step 3
Step 4
Step 5
Step 1
Step 2
Step 3
Step 1
Step 2
Step 3
1


Такое ощущение что метод начинает и не дорабатывает несколько раз. И работает сильно дольше.

При обращении в метод example2 в консоль получим
Код: xml
1.
2.
3.
4.
5.
6.
Step 1
Step 2
Step 3
Step 4
Step 5
1


Т.е. все как надо.

При любом уточнении просто параметра "/**" все работает как надо.

Как исправить ошибку в example1 т.к. мне нужен на домене всего 1 контроллер, но чтоб получал все запросы. Есть велосипедное решение с условно большим количеством /{a}/{b}/{c} и т.д. чтоб время обработки сократить, но это уже явно велосипед.
...
Рейтинг: 0 / 0
30.01.2017, 14:24
    #39394680
Ilya007
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring @RequestMapping("/**") - странности
вы этого не получите
При обращении в метод example1 в консоль получим
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Step 1
Step 2
Step 3
Step 4
Step 5
Step 1
Step 2
Step 3
Step 1
Step 2
Step 3
1



вы получите вот это:

Код: xml
1.
2.
3.
4.
5.
6.
Step 1
Step 2
Step 3
Step 4
Step 5
1



то что вы скрыли за //do something является причиной такой работы метода.
...
Рейтинг: 0 / 0
31.01.2017, 09:11
    #39395135
t61
t61
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring @RequestMapping("/**") - странности
Ilya007, в скрытых полях только работа с сущностями и проверка роли пользователя. Для меня так же это очень странно и я не нахожу объяснений.
...
Рейтинг: 0 / 0
31.01.2017, 14:28
    #39395495
Ilya007
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring @RequestMapping("/**") - странности
А в дебагере запутить можно? Точку внутри метода поствь и потом по цепочки пройдешься.
...
Рейтинг: 0 / 0
31.01.2017, 14:39
    #39395514
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring @RequestMapping("/**") - странности
t61в контроллере все обращения на сайт (пример: site.ru/a, site.ru/v/b/f).
- контроллёр в каком веб приложении из:
site.ru/a
site.ru/v
?
...
Рейтинг: 0 / 0
31.01.2017, 15:51
    #39395588
t61
t61
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring @RequestMapping("/**") - странности
Ilya007, бегал по дебагу, но это для меня сложно ... я просто ожидал что моя ситуация не частный случай. Эти странные обращения в метод отрабатывают правильно при любом уточнении контроллера "/**", но если не уточнять и ловить все, то что-то не так.
...
Рейтинг: 0 / 0
31.01.2017, 15:54
    #39395594
t61
t61
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring @RequestMapping("/**") - странности
Petro123, не совсем понимаю вопрос. Приложение настроено на site.ru, мне нужно ловить все запросы по этому адресу, а они могут быть site.ru/a, site.ru/v/b/f и любые другие. Грубо говоря я ловлю данные из адреса по которому приходят в контроллер. Изменить реализацию невозможно, хоть это и выглядит странным.
...
Рейтинг: 0 / 0
31.01.2017, 16:41
    #39395665
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring @RequestMapping("/**") - странности
t61,
после
домен.ru идёт ИмяВебПриложения.
Контроллер обычно ВНУТРИ НЕГО.
Т.е. дети будут контроллировать Папу.
Есть фильтр целиком на АппСервер.
...
Рейтинг: 0 / 0
01.02.2017, 18:39
    #39396654
t61
t61
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring @RequestMapping("/**") - странности
Petro123, примерно сто раз перечитал и попробовал осознать то что Вы пишите. Это видимо не мой уровень. В принципе не понимаю слов "после домен.ru идёт ИмяВебПриложения". Приложение настроено на данный домен, это мне понятно. И контроллеры понятно находятся внутри приложения. Фильтр тоже понятно что можно настроить в целом на запрос. Но что мне все это дает ?
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Spring @RequestMapping("/**") - странности / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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