добавление нового класса сервлета в web-xml и файловую систему (tomcat) - PullRequest
0 голосов
/ 16 июля 2009

Я работаю над приложением. У меня есть сервлет (writeDataBase.class), который записывает некоторую информацию в базу данных. Это работает нормально. Моя структура папок выглядит следующим образом: webapps / HelloWord / web-inf / classes. В папке 'classes' находится файл writeDataBase.class. web.xml выглядит так:

<servlet>
 <servlet-name>HelloWord</servlet-name>
 <servlet-class>writeDataBase.writeDataBase</servlet-class>
</servlet>

<servlet-mapping>
 <servlet-name>HelloWord</servlet-name>
 <url-pattern>/write-data</url-pattern>
</servlet-mapping>

Если я хочу добавить новый сервлет, который будет считывать данные из базы данных, как мне это сделать? Как класс того же пакета? Как мне изменить структуру файла и файл web.xml?

Ответы [ 3 ]

1 голос
/ 16 июля 2009

Возможно:

<servlet>
  <servlet-name>HelloExcel</servlet-name>
  <servlet-class>writeDataBase.readDataBase</servlet-class>
</servlet>
<servlet>
  <servlet-name>HelloWord</servlet-name>
  <servlet-class>writeDataBase.writeDataBase</servlet-class>
</servlet>

<servlet-mapping>
  <servlet-name>HelloExcel</servlet-name>
  <url-pattern>/read-data</url-pattern>
</servlet-mapping>
<servlet-mapping>
  <servlet-name>HelloWord</servlet-name>
  <url-pattern>/write-data</url-pattern>
</servlet-mapping>
1 голос
/ 16 июля 2009

Просто добавьте сопоставления сервлетов в файл XML. Что касается того, в какой пакет вы положили классы; декларации пакетов зависят от вас, но классы должны по-прежнему находиться в каталоге web-inf / classes

0 голосов
/ 16 июля 2009

Если вы напишите новый класс сервлетов, вам понадобятся новые записи <servlet> и <servlet-mapping> в вашем файле web.xml. Элемент <servlet-class> должен содержать полное имя класса для вашего нового класса сервлета, а <url-pattern> должен содержать путь, который вы хотели бы использовать для вызова этого сервлета. Используемый вами пакет не имеет значения.

Все ваши классы приложений (сами сервлеты, а также любые зависимости, такие как сторонние библиотеки) должны либо находиться в каталоге /WEB-INF/classes/ вашего WAR, либо в файлах JAR непосредственно в /WEB-INF/lib.

Допустим, вы создаете второй класс, some.pkg.MyServlet, ваш web.xml может выглядеть следующим образом:

<servlet>
  <servlet-name>HelloWord</servlet-name>
  <servlet-class>writeDataBase.writeDataBase</servlet-class>
</servlet>

<servlet>
  <servlet-name>MyServlet</servlet-name>
  <servlet-class>some.pkg.MyServlet</servlet-class>
</servlet>

<servlet-mapping>
  <servlet-name>HelloWord</servlet-name>
  <url-pattern>/write-data</url-pattern>
</servlet-mapping>

<servlet-mapping>
  <servlet-name>MyServlet</servlet-name>
  <url-pattern>/my-servlet</url-pattern>
</servlet-mapping>

Обратите внимание, что для обоих наборов элементов элемент <servlet-name> не имеет никакого значения, за исключением того, что он связывает определение сервлета с отображением сервлета (URL).

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