2009-05-22 4 views
0

Я работаю над веб-сайтом в JSP (в GWT действительно, но на стороне сервера это действительно просто JSP), и мне нужно настроить мою базу данных.Конфигурация предварительной базы данных JSP

Я знаю, КАК код в соединении с базой данных и т. Д., Но мне интересно, как/где необходимо сохранить конфигурацию базы данных.

Чтобы уточнить мои сомнения, позвольте привести пример; в PHP обычный сайт имеет config.php, где пользователь настраивает базу данных, пользователя и т. д. (или создает его install.php).

Однако, поскольку JSP является байт-кодом, я не могу закодировать эту информацию на своем сайте и изменить ее пользователем, а также не изменять ее аналогично install.php.

Как я должен справиться с этим? какая самая лучшая/самая распространенная практика? Я нашел NO примеры этого. В основном, где должен сохранить файл конфигурации?

ответ

1

Есть несколько возможностей сделать это, то, что я видел, сделано включают:

  • Имея учетные данные базы данных в специальном файле, обычно db.properties или несколько простых файлов XML, которые содержат необходимую информацию (драйвера, URL , имя пользователя, пароль, любые параметры ORM, если необходимо). Файл свойств будет помещен под WEB-INF или WEB-INF/classes; Недостатком этого подхода является то, что пользователю придется изменить файл внутри WAR перед его развертыванием на сервер приложений.
  • Приобретите подключение к базе данных через JNDI и ожидайте, что он будет предоставлен сервером приложений. Это, по-видимому, самый распространенный способ сделать это; с другой стороны, ваша WAR не нуждается в изменении, однако недостатком является то, что настройка источника данных JNDI различна для каждого сервера приложений и может сбивать с толку, если ваши системные администраторы не имеют опыта работы с технологией Java.
+0

Чтобы быть уверенным, что, поскольку я немного по-прежнему n00b, WEB-INF ПОЛНОСТЬЮ недоступен для посторонних правильно? - Размещение файла db.properties, созданного с помощью install.jsp, в этом случае не кажется слишком далеким :) – WhyNotHugo

+0

Да, это недоступно для посторонних. Cite из сервлета 2.5 spec: ни один файл, содержащийся в каталоге WEB-INF, не может быть отправлен непосредственно клиенту контейнером . – andri

+0

Отлично, спасибо! Я предполагаю, что это лучший способ! BTW: Я планирую иметь пользовательский интерфейс для изменения конфигурации внутри WAR, поэтому никаких изменений вручную не требуется. – WhyNotHugo

Смежные вопросы