Как я могу отобразить “корневой” Сервлет так, чтобы другие сценарии были все еще выполнимы?

с использованием метода app.worker_main (v3.1.12):

± cat start_celery.py
#!/usr/bin/python

from myapp import app


if __name__ == "__main__":
    argv = [
        'worker',
        '--loglevel=DEBUG',
    ]
    app.worker_main(argv)
53
задан Noman 19 January 2017 в 18:15
поделиться

6 ответов

Вы можете создать приветственный файл с именем index.jsp в корневом каталоге с помощью следующего кода, используя JSTL или иначе.

<c:redirect url="/main"/>

Итак, в файле web.xml у вас будет это:

<welcome-file-list>
    <welcome-file>index.jsp</welcome-file>        
</welcome-file-list>

Таким образом, любой, кто запрашивает корень, будет перенаправлен на / main. Теперь ваш сервлет может быть сопоставлен с основным.

<servlet-mapping>
    <servlet-name>MainServlet</servlet-name>
    <url-pattern>/main</url-pattern>
</servlet-mapping>
4
ответ дан 7 November 2019 в 08:44
поделиться

Попробуйте просто удалить '*' из шаблона, т.е.

<url-pattern>/</url-pattern>
1
ответ дан 7 November 2019 в 08:44
поделиться

Вы пробовали следующее? (Обратите внимание на отсутствующий * , который является подстановочным знаком и является причиной того, что ваша конфигурация улавливает все.)

<servlet-mapping>
        <servlet-name>MainServlet</servlet-name>
        <url-pattern>/index.jsp</url-pattern>
</servlet-mapping>

(Отредактировано в соответствии с комментариями только из / .)

0
ответ дан 7 November 2019 в 08:44
поделиться

Вы не можете перенаправить на WEB-INF. Контейнер сервлета никогда не будет обслуживать запросы документов в этой папке.

Если вы хотите, чтобы ваше приложение (не только сервлет, но и все приложение) было доступно в корневом контексте ("/" из http: //www.domainname.com/ "), то вам нужно настроить для него контекстную запись, а не отображение сервлета.

В Tomcat вы добавляете новое отображение (в одном из примерно трех возможных мест).

0
ответ дан 7 November 2019 в 08:44
поделиться

Решение упоминается в другом потоке Шаблон URL для отображения сервлета в web.xml с использованием URLrewrite -> http://tuckey.org/urlrewrite/

1
ответ дан 7 November 2019 в 08:44
поделиться

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

Мой обычный способ создания веб-приложения с сервлетами - это расширить HttpServlet, добавить объект «страница» с заголовком, содержимым, ошибками, сообщениями и т. д. и для вывода в шаблон JSP. Работа в App Engine стала настоящим кошмаром.

  • Файлы JSP нельзя «назвать» без символа «/» в начале.
  • Файлы JSP не могут находиться в подкаталоге
  • Сервлеты могут 'не сопоставляться с корнем вашего приложения с помощью шаблона URL-адреса "/"

Здесь'

7
ответ дан 7 November 2019 в 08:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: