Как лучше оформить сайт - PullRequest
3 голосов
/ 15 июня 2009

Я работаю над сайтом, работающим в Tomcat, на котором хранится много данных о членах, и я не уверен, как лучше его упаковать.

Я хочу иметь возможность легко развернуть войну без необходимости сначала что-либо удалять из нее.

Моей первой мыслью было вынести данные участника в его собственный каталог вне войны, но моя проблема заключается в том, что часть этого контента должна быть связана с сайтом (изображения и т. Д.).

Должно быть лучшее решение, чем развертывание войны, а затем копирование данных обратно. У кого-нибудь есть предложения?

Ответы [ 2 ]

4 голосов
/ 15 июня 2009

Ваша первая мысль была правильной. Хранение данных во внешней директории - лучшее решение. Вы можете легко решить проблему с изображениями, создав сервлет, который будет обращаться к этому внешнему каталогу по запросу изображения.

Я не могу опубликовать свой код, но вот похожий фрагмент, который создает ответ. Вам просто нужно создать класс расширения FileServlet и написать код для загрузки файла из вашего каталога.

http://snippets.dzone.com/posts/show/4629

Затем добавьте это в ваш web.xml:

<servlet>
    <servlet-name>My File Servlet</servlet-name>
    <servlet-class>my.package.FileServlet</servlet-class>
    <load-on-startup>0</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>My File Servlet</servlet-name>
    <url-pattern>/upload/*</url-pattern>
</servlet-mapping>

и каждая ссылка, такая как http://myapp.com/upload/userimage.jpg, будет создана сервлетом

1 голос
/ 15 июня 2009

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

Если вы храните информацию о множестве разных людей и вам нужен доступ к ней в нескольких местах, почему бы вам не использовать базу данных? Возможно, даже бесплатный, такой как PostgreSQL или MySQL?

Если вы храните ваши данные в базе данных, то их легко получить с помощью Java, либо используйте ORM, например Hibernate, либо просто некоторые базовые библиотеки JDBC. Это предполагает, что вы понимаете SQL и уровень базы данных в Java.

Тогда, если вам нужен доступ к определенным файлам, вы можете создать сервис-ориентированную архитектуру (SOA) и использовать полноценный веб-сервис для извлечения изображений на основе URL-адреса. Это позволит разгрузить хранилище на другой компьютер в вашей зоне доверия.

Трудно предложить хорошее решение без подробностей о проблеме и настройке вашего сервера.

...