Помимо doGet у сервлета есть и другие методы.
Рассмотрим вкратце зачем нужны методы init
, doPost
, service
и destroy
.
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class MyServlet extends HttpServlet {
/*
public void init() throws ServletException {
// При создании объекта сервлета, который создается один раз
// за все время работы сервера вызывается метод init(), в
// котором можно инициализировать какие-то данные до того
// как сервлет начнет их обрабатывать.
}
*/
protected void doGet(HttpServletRequest req,
HttpServletResponse resp)
throws ServletException, IOException {
// Этот метод для приема Get запросов.
// Получаем поток PrintWriter с которым мы уже знакомы из resp
// через который будем отправлять данные клиенту.
PrintWriter pw = resp.getWriter();
pw.write(“Hello World!!!”);
}
/*
protected void doPost(HttpServletRequest req,
HttpServletResponse resp)
throws ServletException, IOException {
// Этот метод для приема POST запросов.
// Ниже пример того как мы можем вызывать
// и GET запрос при POST запросе вызывая верхний метод
// и передав ему параметры из этого метода doPost.
doGet(req, resp);
}
public void service(ServletRequest req, ServletResponse resp)
throws ServletException, IOException {
// Каждый раз когда пользователь отправляет что-либо из браузера
// вызывается метод service(), который определяет вид запроса,
// который передал пользователь (GET, POST, PUT, DELETE)
// и вызывает соответствующий метод (doGet, doPost,
// doPut, doDestroy) метод service автоматически вызывает
// методы doGet, doPost…, поэтому нет необходимости переопределять
// его нет кроме редких случаев когда нам нужно чтобы все
// возможные запросы обрабатывались в одном методе
// гость в методе service так как этот метод
// перехватывает все возможные запросы.
}
public void destroy() throws ServletException {
// при удалении объекта сервлета можно очистить какие-то ресурсы.
// например закрыть подключение к базе
}
*/
}
Использование аннотации @WebServlet
Замена web.xml на
аннотацию @WebServlet в Java. Упростите конфигурацию сервлетов, указывая пути прямо в коде. Примеры использования и настройка metadata-complete.
Time to read: 11
Параметры в Get запросе
Как передавать
параметры в GET-запросах Java-сервлетов. Разберитесь с методами getParameter(), безопасностью и различиями между GET и POST. Практические примеры с формами.
Time to read: 16