Управление запросами GET и POST

Чтобы управлять HTTP запросами из сервлета, Наследуйте класс HttpServlet и переопределите методы сервлета, которые управляют HTTP запросами, поддерживаемые Вашим сервлетом. Этот урок демонстрирует управление запросами GET и POST. Методами, управляющими этими запросами, являются методы doGet и doPost.

Управление запросами GET

Управление запросами GET влечет за собой переопределения метода doGet. Следующий пример показывает, как сервлет BookDetailServlet делает это. Методы, описанные в разделе Запросы и ответы, выделены жирным шрифтом.

public class BookDetailServlet extends HttpServlet {

    public void doGet (HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        ...
        // устанавливает заголовок "content-type" 
        // прежде сем получить доступ к Writer
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();

        // затем пишем ответ
        out.println("<html>" + "<head><title>Book Description</title></head>" + ...);

        //берем идентификатор требуемой книги
        String bookId = request.getParameter("bookId");
        if (bookId != null) {
            // печатаем информацию о книге
            ...
        }
        out.println("</body></html>");
        out.close();
    }
    ...
}

Этот сервлет наследует класс HttpServlet и переопределяет метод doGet.

Внутри метода doGet, метод getParameter берет предполагаемый аргумент.

Для ответа, пример метода doGet использует объект Writer, полученный из объекта HttpServletResponse, чтобы вернуть клиенту текстовую информацию. Прежде чем получить объект Writer, в примере устанавливается заголовок Content-type. И в конце метода doGet, после отправки ответа, объект Writer закрывается.

Управление запросами POST

Управление запросами POST влечет за собой переопределения метода doPost. Следующий пример показывает, как сервлет ReceiptServlet делает это. Методы, описанные в разделе Запросы и ответы, выделены жирным шрифтом.

public class ReceiptServlet extends HttpServlet { 

    public void doPost(HttpServletRequest request, HttpServletResponse response)
	    throws ServletException, IOException {
        ...
        // устанавливает заголовок "content-type" 
        // прежде сем получить доступ к Writer
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        
        // затем пишем ответ
        out.println("<html>" + "<head><title> Receipt </title>" + ...);
        
        out.println("<h3>Thank you for purchasing your books from us " +
                    request.getParameter("cardname") + ...);
        out.close();
    }
    ...
}

Этот сервлет наследует класс HttpServlet и переопределяет метод doPost.

Внутри метода doPost метод getParameter берет предполагаемый аргумент.

Для ответа, пример метода doPost использует объект Writer, полученный из объекта HttpServletResponse, чтобы вернуть клиенту текстовую информацию. Прежде чем получить объект Writer, в примере устанавливается заголовок Content-type. И в конце метода doPost, после отправки ответа, объект Writer закрывается.