Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > Servlet filter. Как в функции init(Filter config)


Автор: sergejzr 26.10.2007, 21:59
Или я глючу? servletContext есть, но IP никак достать нельзя..

Автор: Се ля ви 26.10.2007, 22:07
sergejzr, а зачем он тебе? Ты его на этапе установки приложения можешь посмотреть вручную и в случае необходимости передать ему как config-param...

Автор: sergejzr 26.10.2007, 23:25
А если он потом поменяется? В request'e конечно адрес могу поймать, но это поздновато.. т.к у меня вместе с фильтром заряжается обьект и он должен знать свой IP

Автор: Stampede 27.10.2007, 01:55
sergejzr, с IP сервера не все так просто. Во-первых, как мы знаем, у машины может быть больше одной сетевой карточки и больше одного IP. Во-вторых, в HTTP серверы разрешаются не по IP, а по имени хоста (частным случаем которого, действительно, может быть IP), иначе не было бы такой штуки как виртуальный хостинг.

В Томкате имя хоста, к которому привязано веб-приложение (или пучок веб-приложений == контекстов) задается в server.xml, элемент <Host name="domain.com">. Поскольку иногда бывает нужно ходить на сайт по альтенративному имени: например, domain.com и www.domain.com, то внутри Host можно прописать алиасы:

Код

<Host name="jpetstore" appBase="/usr/spring-framework-1.2.6/samples/jpetstore"
       unpackWARs="true" autoDeploy="true" >
    <Alias>127.0.0.1</Alias>
    <Alias>localhost</Alias>
</Host>


Отсюда видно, что такое понятие как однозначный IP-шник сервера как бы не существует, и все догадки по этому поводу должны откладываться до момента прихода запроса - вот тогда мы заглянем в request.getServerName() и узнаем, к какому из серверных имен произошло обращение.

Поэтому, sergejzr, ты лучше расскажи на пальцах, в чем у тебя загвоздка, и для чего тебе нужна ранняя инициализация фильтра серверным IP. Глядишь, чего и придумаем smile

Автор: sergejzr 30.10.2007, 10:22
Сорри, придётся вопрос на время отложить..

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)