Начал изучать сервлеты и возникла следующая проблема. Имеется:
index.jsp
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Словарь</title>
</head>
<body>
Введите слово:
<form method="post" action="/">
<label>
<input type="text" name="word"></label><br>
<input type="submit" value="OK" name="ok"><br>
</form>
<c:out value = "${requestScope.getText}" default="null"/>
</body>
</html>
StartPage.java
public class StartPage extends HttpServlet {
private String text;
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("doget");
req.setAttribute("getText", text);
req.getRequestDispatcher("index.jsp").forward(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("doPost");
req.setCharacterEncoding("UTF-8");
final String word = req.getParameter("word");
text = word;
System.out.println(word);
doGet(req, resp);
}
@Override
public void init() throws ServletException {
System.out.println("init");
}
}
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
<servlet>
<servlet-name>StartPage</servlet-name>
<servlet-class>servlet.StartPage</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>StartPage</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>SecondPage</servlet-name>
<servlet-class>servlet.Second</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>SecondPage</servlet-name>
<url-pattern>/second</url-pattern>
</servlet-mapping>
</web-app>
Пытаюсь передать данные с формы в сервлет и вернуть обратно на index.jsp. Код второго сервлета не привожу, в него данные передаются без проблем. Но как только меняю
<form method="post" action="/second">
на
<form method="post" action="/">
при нажатии на форму метод doPost не отрабатывает. Вместо него вызывается doGet. Почему так происходит?
Измените имя index.jsp на любое другое и все должно заработать. У меня совсем из головы вылетело что всегда любой сервер сначала ищет index файл.
Да ище одно. Если вы наследуетесь от HttpServlet то метод init переопределять ненужно.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
При тестировании метода, возвращающего список сущностей, вылетает NullPointerException
подскажите пожалуйстаКак удалить подстроку из ячейки, а саму подстроку взять из другой таблицы