Отображение URL сервлета Java, шаблон URL - PullRequest
2 голосов
/ 09 февраля 2012

Я делаю новостной проект. У нас есть категория новостей, подкатегория новостей и страница с подробностями новостей. Я хочу, чтобы URL вроде:

Три сервлета: CategoryServlet, SubcategoryServlet, NewsDetailServlet. Как я могу сопоставить URL с соответствующим сервлетом в web.xml? Я использую eclipse и tomcat server.

Ответы [ 5 ]

1 голос
/ 09 февраля 2012

Я отображаю все URL в один сервлет в своем веб-приложении и позволяю веб-приложению самостоятельно решать, как их обслуживать:

<servlet>
  <servlet-name>dispatcher</servlet-name>
  <servlet-class>com.myapp.Dispatcher</servlet-class>
</servlet>
<servlet-mapping>
  <servlet-name>dispatcher</servlet-name>
  <url-pattern>/</url-pattern>
</servlet-mapping>

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

1 голос
/ 09 февраля 2012

Полагаю, что для такого рода задач простого преобразования URL в web.xml недостаточно. Если вы хотите, чтобы динамические URL-адреса отображались на ваши веб-ресурсы (например, сервлеты), вам придется переписать URL-адрес. Простейшим будет поискать какой-нибудь фильтр перезаписи URL, например, фильтр Tuckey , с руководством здесь: http://urlrewritefilter.googlecode.com/svn/trunk/src/doc/manual/3.2/index.html

0 голосов
/ 04 апреля 2014
0 голосов
/ 09 февраля 2012

Если ваша подкатегория статическая, то вы можете использовать отображение URL как / * / подкатегория, где * отображается на CategoryServlet.java, оттуда вы можете получить путь запроса, который содержит / dynamic-category / sub- категорию, вы можете извлечь свою подкатегорию и динамическую категорию. При этом вы также можете использовать только один сервлет.

0 голосов
/ 09 февраля 2012

Eclipse не имеет ничего общего с вашей проблемой, вы также можете использовать vi или emacs. Ваша проблема может быть решена путем перезаписи URL (либо на стороне обратного прокси-сервера, либо с помощью чего-то вроде: http://www.tuckey.org/urlrewrite/) - просто переназначите ваши хорошие блокирующие URL в реальные сервлеты.

Или вы можете просто использовать фильтр, разобрать путь сервлета и использовать информацию для визуализации ваших шаблонов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...