Почему не мапится сервлет?

310
02 июня 2017, 11:40

У меня сервлет AddUserServlet:

public class AddUserServlet extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        final String name = req.getParameter("name");
        final String login = req.getParameter("login");
        final String email = req.getParameter("email");
        System.out.println(name);
        System.out.println(login);
        System.out.println(email);
    }
}

Это мой web.xml:

<!--root menu, index.jsp-->
<servlet>
    <servlet-name>UserServlet</servlet-name>
    <servlet-class>ru.pravvich.servlets.UserServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>UserServlet</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>
<!--Вот этот не мапится.-->
<servlet>
    <servlet-name>AddUserServlet</servlet-name>
    <servlet-class>ru.pravvich.servlets.AddUserServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>AddUserServlet</servlet-name>
    <url-pattern>/addition</url-pattern>
</servlet-mapping>

Находясь по аддресу http://localhost:8080/items/addition.jsp я получаю addition.jsp страницу:

<body>  
    <form method="post" action="AddUserServlet">
        <input type="text" placeholder="name" name="name"><br>
        <input type="text" placeholder="login" name="login"><br>
        <input type="text" placeholder="email" name="email"><br>
        <input type="submit" value="Добавить">
    </form>
</body>

Но при отправке формы получаю HTTP Status [405] – [Method Not Allowed] вместо моих входящих значений.

Но когда я <url-pattern>/addition</url-pattern> меняю на <url-pattern>/</url-pattern> то все работает. Но у меня к корню примапен другой сервлет и он мне нужен.

Подскажите пожалуйста, как мне примапить еще и AddUserServlet так чтобы он работал с addition.jsp и получал данные от него? Буду очень признателен за любые подсказки...

Answer 1

Укажите в form в action URL, а не имя сервлета.

<body>  
    <form method="post" action="addition">
        <input type="text" placeholder="name" name="name"><br>
        <input type="text" placeholder="login" name="login"><br>
        <input type="text" placeholder="email" name="email"><br>
        <input type="submit" value="Добавить">
    </form>
</body>
READ ALSO
что за ORM &ldquo;io.requery&rdquo;?

что за ORM “io.requery”?

ЗдравствуйтеДостался проект, в котором как я полагаю используется ORM:

309
Java ResultSetWrappingSqlRowSet и Clob

Java ResultSetWrappingSqlRowSet и Clob

необходимо из ResultSetWrappingSqlRowSet получить clob значение из oracleПодскажите как это сделать? спасибо

230
Функция для встроенных типов Java

Функция для встроенных типов Java

Здравствуйте! Увидел в JavaScript подобную конструкцию и хочется узнать, есть ли что-то подобное на Java? Те

339
Почему не отображаются панели?

Почему не отображаются панели?

Главная панель - mainInputPanel:

215