|
|
|
Как классу внутри веб-приложения получить доступ к ServletConfig
|
|||
|---|---|---|---|
|
#18+
Сервлет может обратиться к своему сервлет-конфигу. JSP страница тоже может. Как сделать так, чтобы обычный класс мог обратиться к конфигу произвольного сервлета? может я туплю.. (Парсить web-xml не предлагать) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2005, 14:00 |
|
||
|
Как классу внутри веб-приложения получить доступ к ServletConfig
|
|||
|---|---|---|---|
|
#18+
обычный класс кем создается? сервлетом? тогда в конструкторе класса передавай ссылку на ServletConfig. или чем-нить типа yourClassInstance.setServletConfig(...); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2005, 14:02 |
|
||
|
Как классу внутри веб-приложения получить доступ к ServletConfig
|
|||
|---|---|---|---|
|
#18+
Вобщем история такая. Написал я классец, у которого есть несколько методов обращения к базе. Зашил в нем юрл, пароль, логин к базе. Ну и давай откуда не попадя эти методы дергать: DBhelper.getRs("SELECT * FROM table") Все бы хорошо, но мне приходится часто переносить приложение под другую систему. Ну и там эти параметры (юрл итд.) немного другие Ну я и хочу прописать их в web.xml к примеру, чтобы класс работал как на моей системе, так и на той в которую выкидываю. Самому парсить конфиги нехочется. Вот и приходится: изменил- перекомпилил- залил - изменил обратно- перекомпилил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2005, 15:06 |
|
||
|
Как классу внутри веб-приложения получить доступ к ServletConfig
|
|||
|---|---|---|---|
|
#18+
так "на лицо" уже заранее плохая реализация продукта. может, передизайнить кой-че? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2005, 15:15 |
|
||
|
Как классу внутри веб-приложения получить доступ к ServletConfig
|
|||
|---|---|---|---|
|
#18+
реализация может быть и плохая, но работает и это есть гуд. По хорошему здесь нужно, видимо использовать jndi, как это делается в j2ee. Но это следующий шаг - а сейчас надо просто облегчить себе жизньь при синхронизации того что есть на девелоперской машине с хостом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2005, 16:29 |
|
||
|
Как классу внутри веб-приложения получить доступ к ServletConfig
|
|||
|---|---|---|---|
|
#18+
Можно сделать так: - Определить параметры коннекта к БД в каком-нибудь файле параметров .properties и положить его, к примеру, в WEB-INF. - Определить в web.xml один сервлет, экземпляр которого будет автоматически создаваться при старте приложения. - В этом сервлете в методе init() читать файл параметров и инициализируешь коннект к БД. Правильней ИМХО было вы создавать пул коннектов, передавая ему абсолютный путь к файлу параметров. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2005, 16:49 |
|
||
|
Как классу внутри веб-приложения получить доступ к ServletConfig
|
|||
|---|---|---|---|
|
#18+
У меня все так и работает. app = getServletContext(); pool = new DbConnectionPool( cfg.getInitParameter("jdbcDriver"), cfg.getInitParameter("jdbcURL"), cfg.getInitParameter("jdbcUser"), cfg.getInitParameter("jdbcPwd")); app.setAttribute("db-connection-pool", pool); Но видимо достать этот аттрибут: db-connection-pool уже не удастся из обычного класса. А давать пулу при инициализации ссылку на конфигурационный файл... Это либо парсить тот -же xml, либо properties. Кстати, относительно последего, кинте примерчик плз, как используются, может это как раз то, что мне нужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2005, 17:38 |
|
||
|
Как классу внутри веб-приложения получить доступ к ServletConfig
|
|||
|---|---|---|---|
|
#18+
А, все понял... почитал api, это ж как xml файл где есть только key и value. Спасибо, что навели, никогда раньше ими просто не пользовался. Щас попробую. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2005, 17:42 |
|
||
|
Как классу внутри веб-приложения получить доступ к ServletConfig
|
|||
|---|---|---|---|
|
#18+
В конце концов можно парсить и XML, у меня так сперва и было. Просто потом перешел на .properties при создании инсталятора - ANT'овский скрипта - в котором спрашиваются параметры соединения в БД, остальные параметры, после чего из них создается файл параметров и присоединяется к war'у. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2005, 17:57 |
|
||
|
Как классу внутри веб-приложения получить доступ к ServletConfig
|
|||
|---|---|---|---|
|
#18+
А по поводу передачи коннекта в вебприложении любому класса без использования статических переменных советую обратить внимание на java.lang.ThreadLocal (@author Josh Bloch and Doug Lea) если не поняли - делаем обычный веб фильтр try{ берем коннекшен из пула и кладем его в поток (Thread) chain.doFilter(..) } finally{ возвращам коннекшен в пул } криво это конечно, но всяко лучше, чем синглтоны раздающие коннекты прямо из пула ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2005, 23:19 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=32959008&tid=2152800]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
50ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 245ms |
| total: | 380ms |

| 0 / 0 |
