Вызов сервлета из формы, но сервлет никогда не вызывается - PullRequest
2 голосов
/ 12 февраля 2010

Я пытаюсь вызвать сервлет с именем AddClass.java, используя следующую строку в jsp

<form method="post" name="addClass" action="AddClass.do">

Класс находится в пакете web и имя файла: AddClass.java

Подобный сервлет с именем SeedSearch вызывается (и все работает отлично) из этого куска кода в другом jsp.

<form method="post" name="seedSearch" action="SeedSearch">

Мой web.xml выглядит так

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>sempedia</display-name>

<servlet>
  <servlet-name>SeedSearch</servlet-name>
  <servlet-class>web.SeedSearch</servlet-class>
</servlet>
<servlet>
  <servlet-name>AddClass</servlet-name>
  <servlet-class>web.AddClass</servlet-class>
</servlet>

<servlet-mapping>
  <servlet-name>SeedSearch</servlet-name>
  <url-pattern>/SeedSearch</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>AddClass</servlet-name>
<url-pattern>/AddClass.do</url-pattern>
</servlet-mapping>

<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
 </welcome-file-list>

</web-app>

Пожалуйста, помогите.

Ответы [ 4 ]

3 голосов
/ 12 февраля 2010

web.xml выглядит нормально, поэтому проблема кроется где-то еще.

  1. URL-адрес неверный. Относительные URL-адреса должны быть извлечены из его абсолютной формы на основе текущего URL-адреса запроса или, если есть, тега HTML <base>. Будьте осторожны: косая черта приведет вас к корню домена! Это не обязательно правильное решение, как думают другие, особенно если веб-приложение имеет контекстный путь.
  2. Пакет / имя класса в web.xml не соответствует фактическому классу сервлета (с учетом регистра!)
  3. Класс сервлета отсутствует в пути к классу запущенного веб-проекта. По крайней мере, не в ожидаемом месте.
  4. Класс сервлета не удалось загрузить / инициализировать. Прочитайте журналы сервера приложений для выяснения исключений / ошибок.
  5. На самом деле есть еще web.xml, например, другой сервлет, который ест *.do и имеет приоритет.
  6. Вы не запускаете веб-проект с конкретным web.xml, который, как вы думаете, есть. Двойное подтверждение, восстановление, повторное развертывание и перезапуск.
1 голос
/ 12 февраля 2010

Возможно, вы отображаете "* .do" в другом месте (может быть, в Struts?), И ваш сервлет никогда не вызывается.

1 голос
/ 12 февраля 2010

В вашем обращении к SeedSearch нет начальных символов '/'.

0 голосов
/ 02 февраля 2017

введите описание изображения здесь

2 сервлета: KK по умолчанию или обычным способом; LL находится в специальной упаковке. внутри web.xml LL должен иметь полное имя не только для класса, , но также для имени сервлета.

введите описание изображения здесь

вызов каждого сервлета из html одинаков для обоих: или же нет необходимости в какой-либо квалификации

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