2013-06-04 2 views
0

Set-Up- У меня есть JSP - index.jsp и servlet indexController. indexController отправляет запрос index.jsp. Выполнение index.jsp без выполнения indexController нежелательно.Как скопировать главную страницу в «корень приложения» в Java EE?

Requirements-

  1. 'www.mysite.com' должен быть подан IndexController/index.jsp
  2. Любой запрос с Недопустимый URL должен получить перенаправлены на "www.mysite.com.
  3. «www.mysite.com/index.jsp» следует перенаправить на «www.mysite.com».

Мое решение -

  1. Карта IndexController на «/» - Я читал, что это переопределение «по умолчанию сервлет», и я хочу, чтобы избежать этого.
  2. Map 'index.jsp' в приветственном файле-списке: мне не нужно явно отображать его наукой 'index.jsp', он будет автоматически принят в качестве файла приветствия. Выполнение этого не выполняет indexController. Кроме того, неверные URL-адреса «перенаправляются» не перенаправлены в файл приветствия.
  3. Карта страницы ошибки на главной странице- Это обман с самим собой. Я не хочу скрывать ошибки.
  4. Используйте два сервлета. Один с отображением «/ *», который перенаправляет все на «mysite.com». Второй отображается на «" (пустой), который фактически служит запросу. - Некоторые загадочные вопросы здесь (еще не выяснено)

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

Есть ли стандартное решение, которое решает проблему раз и навсегда.


Редактировать: - В течение более 30 минут было всего 7 видов. Удален тег GAE, чтобы привлечь больше просмотров.

ответ

0

Просто разместите веб-сервер перед сервером приложений, и вы можете сопоставить любой URL-адрес любого приложения/страницы. Также не публикуйте сервер приложений напрямую. Вы используете Tomcat, я полагаю, поэтому вы, вероятно, развернули приложение ROOT, верно? (вы должны пойти с веб-сервером в любом случае)

+0

Кроме того, вы можете сделать indexController фильтром, а не сервлетом, чтобы вы могли фильтровать/* запросы, и вы можете сделать там переадресацию. –

+0

Спасибо @Balint Бако. Я использовал GAE, поэтому нет другого сервера приложений. Существует только один сервер. Я решил эту проблему. Я опубликую окончательное решение (вроде занят на данный момент). –