Можно ли установить базовый каталог для веб-приложения J2EE по запросу? - PullRequest
0 голосов
/ 13 апреля 2011

У нас есть веб-приложение на Java / J2EE, где разные пользователи должны видеть разные страницы. У нас есть пользовательский логин, вставьте userId в сессию, и пусть он использует веб-приложение.

То, что я хотел бы сделать, - это иметь отдельный каталог для каждого пользователя, где они могут видеть свои собственные файлы и веб-страницы. В идеале я мог бы создать фильтр сервлетов, который будет видеть userId, и установить базовый каталог для веб-приложения только для этого запроса. Базовый каталог должен существовать вне каталога / webapps.

Есть ли способ сделать это с помощью стандартного сервлета?

Если нет, то возможно ли использовать код, специфичный для контейнера сервлета? Мы могли бы использовать Jetty или Tomcat, или, возможно, даже Glassfish.

1 Ответ

0 голосов
/ 13 апреля 2011

Я думаю, вам нужно решить, что именно вы хотите сделать:

  • Если вы просто хотите, чтобы пользователи могли войти в систему и просматривать файлы и веб-страницы, забудьте о J2EEи просто настройте веб-сервер Apache для этого.Он может выполнять безопасный вход в систему, просматривать домашние каталоги пользователей и т. Д.

  • Если вы действительно хотите пойти по маршруту J2EE, вам придется написать сервлет для считывания учетных данных пользователя., а затем используйте java.io.File API для поиска содержимого этого каталога.Чтобы отобразить веб-страницу, откройте InputStream для конкретного файла, который вы хотите отобразить, и скопируйте его в OutputStream сервлета.Не забудьте правильно указать тип содержимого на HttpServletResponse (например, "text / html" для веб-страницы).

...