2017-01-16 3 views
1

Мне интересно, можно ли получить доступ к субдомену с помощью @RequestMapping Spring, когда поддомен является подстановочным знаком.Получение поддомена подстановки с Spring @RequestMapping

Например, я хотел бы написать один метод, который будет вызываться при запросе любого количества поддоменов, а также иметь возможность захватить фактический субдомен, который запросил человек.

Так что, если они посещают sub1.example.com, это ударит по методу, где я смогу сопоставить «sub1» с переменной String.

И если они посещают sub2.example.com, это будет работать по тому же методу, что и в предыдущем примере, и я также смогу сопоставить «sub2» с переменной String.

Возможно ли это?

ответ

1

Что я осела на этот подход был с Spring MVC:

@RequestMapping(value="/someUrl") 
public String someControllerMethod(ModelMap model, HttpServletRequest request) 
{ 
    String subdomain = request.getServerName().split("\\.")[0]; 

    log.info("subdomain is: " + subdomain); 

    // more code here 
} 

Я просто убедитесь, что пройти в HttpServletRequest методу, а затем извлечь поддомен из запроса. Единственная проблема с этим кодом заключается в том, что у вас не может быть точка (.) В вашем поддомене (в противном случае она будет только поднимать первую часть субдомена).

Это решение сработало для моих нужд. Но если у вас есть лучшее решение, не стесняйтесь публиковать его, и если это будет лучше, я сделаю это как правильный ответ.