Я новичок в сервлетах. И первая попытка - написать простое JSP-приложение. Какими приращениями являются значение, начинающееся с 0, а также возможное его излоение.Приращение/Уменьшение значения с помощью JSP/Servlet
Проблемы:
- счетчик получить не initalized с 0 (поле пусто на странице JSP)
при нажатии на кнопку «Увеличиваем его» он получает приращение на 1, когда я снова нажмите на ту же кнопку, значение остается 1, но оно должно быть 2 (на второй клик)
@WebServlet("/countServlet") public class CounterServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { Counter counter; counter = (Counter) request.getAttribute("counter"); if (counter == null) { counter = new Counter(); } String increment = request.getParameter("increment"); if (increment != null) { counter.increment(); } String reset = request.getParameter("decrement"); if (reset != null) { counter.decrement(); } request.setAttribute("counter", counter.getCounter()); request.getRequestDispatcher("/index.jsp").forward(request, response); }
Счетчик модели:
public class Counter {
private int counter = 0;
public void increment() {
counter++;
}
public void decrement() {
counter--;
}
public void reset() {
counter = 0;
}
public int getCounter() {
return counter;
}
}
JSP:
<title>Counter</title>
</head>
<body>
The current state of the counter: ${counter}
<form action="countServlet" method="GET">
<input type="submit" name="increment" value="Increment it">
<input type="submit" name="decrement" value="Decrement it">
<input type="hidden" name="counter" value="${counter}">
</form>
Спасибо, сейчас он подсчитывает/уменьшает. У вас есть идея, почему значение не инициализировано 0? В настоящее время он подсчитывает от пустого поля до 1. :) – Matej
Возможно, стоит добавить, что скрытое поле «счетчик» в HTML не требуется и не делает то, что, по-видимому, думает OP. – megaflop
@Matej, когда вы говорите «пустое поле», можете ли вы сложить? В поле 'Counter' поле счетчика инициализируется на' 0'. –