Цель - страничка hello-world, которую будет "отдавать" сервер
import javax.servlet.annotation.WebServlet;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.IOException;
@WebServlet(name = "helloWorld", urlPatterns = {"/hi"})
public class HelloWorldServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.getWriter().write("<h1>Hello, world!</h1>");
}
}
Запускаем из директории проекта hello-world
>javac -classpath TOMCAT_DIR/lib/servlet-api.jar -d WEB-INF/classes src/HelloWorldServlet.java
>TOMCAT_DIR/bin/startup.sh
Набираем в адресной строке браузера адрес сервлета и ожидаем ответ в виде страницы
Пользователь отправляет запрос на URL сервлета
Контейнер создает 2 объекта HttpServletRequest и HttpServletResponse
Контейнер находит нужный сервлет по URL-у запроса, создает или выделяет thread для запроса и передает в него объекты запроса и ответа
Контейнер вызывает метод service(), который в зависимости от метода запроса вызывает нужный метод, например doGet
doGet метод генерирует код страницы и делает его частью ответа
Контейнер конвертирует объект HttpServletResponse в HTTP-ответ и отдает клиенту. Удаляет объекты запроса и ответа
Мы рекомендуем Intellij IDEA в качестве среды разработки
Можно скачать Отсюда
IDE избавит от рутинной процедуры сборки и деплоя приложения, поможет ускорить разработку, облегчит процесс дебага
С помощью формы
<form method="post" action="send-data">
<input name="fullName" placeholder="Name"/>
<input name="age" placeholder="Age">
<input type="submit" value="Submit">
</form>
@WebServlet(name = "submitForm", urlPatterns = {"/send-data"})
public class SubmitFormServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String name = req.getParameter("fullName");
Integer age = Integer.parseInt(req.getParameter("age"));
}
}
Как часть URL-a GET-запроса
http://localhost:8080/show-person?id=5
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String id = request.getParameter("id");
Person person = new Person();
if (id != null) {
person = personService.getPersonById(Integer.parseInt(id));
}
request.setAttribute("person", person);
RequestDispatcher dispatcher = request.getRequestDispatcher("/WEB-INF/views/edit.jsp");
dispatcher.forward(request, response);
}
<form id="myform" action="demo/person" method="post">
<table>
<tr>
<td>Id(Required)</td>
<td><input id="id" name="personId" value="${person.id}"/></td>
</tr>
...
</table>
<input type="submit" value="Save"/>
</form>