Вопрос

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

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

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

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

Это было полезно?

Решение

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

Я не могу опубликовать свой код, но вот аналогичный фрагмент, который создает ответ.Вам просто нужно создать класс, расширяющий 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 будет создан сервлетом

Другие советы

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top