На главную

Семинар

Введение

Сервлеты

  • Первый сервлет
  • Создаем HTML
  • Читаем параметры
  • Задание 1
  • Графика
  • Задание 2

    Скриплеты

  • Первый скриплет
  • JSP Выражения
  • JSP Скриплеты
  • JSP Описания
  • Задание 3

    Благодарности

    Ссылки

  • Обработка параметров

    При GET-запросе в строке адреса после знака "?" могут передаваться параметры, например, http://home/work?param1=value1&param2=value2.

    Значение определенного параметра можно получить с помощью метода getParameter класса HttpServletRequest.

    Пример: чтение параметра

    import java.io.*;
    import javax.servlet.*;
    import javax.servlet.http.*;

    public class GetParam extends HttpServlet {
       public void doGet(HttpServletRequest request, HttpServletResponse response)
       throws ServletException, IOException {
          response.setContentType("text/html");
          PrintWriter out = response.getWriter();
          out.println("<html>\n<head><title>Чтение параметра</title></head>\n<body>\n" +
                      "<b>" + request.getParameter("param") + "</b>\n" +
                      "</body>\n</html>");
       }
    }

    Посмотреть пример

    Метод getParameterNames возвращает список имен всех параметров типа Enumeration. Используем его методы hasMoreElements и nextElement для перебора всех параметров. Метод getParameterValues возвращает все значения заданного параметра.

    При POST-запросе вызывается метод doPost, а все остальное работает точно так же, как и при GET-запросе.

    Пример: чтение всех параметров

    import java.io.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    import java.util.*;

    public class GetAllParams extends HttpServlet {
       public void doGet(HttpServletRequest request, HttpServletResponse response)
       throws ServletException, IOException {
          response.setContentType("text/html");
             // сообщаем тип документа
          PrintWriter out = response.getWriter();
          out.println("<html>\n<head><title>Чтение всех параметров</title></head>\n<body>\n" +
                      "<table border=1 align=\"center\">\n" +
                      "<tr bgcolor=\"dfdfdf\">" +
                      "<th>Имя параметра<th>Значения параметра");
             // выводим заголовок документа и начало таблицы
          Enumeration parameterNames = request.getParameterNames();
             // получаем список имен параметров
          while (parameterNames.hasMoreElements()) {
             String paramName = (String)parameterNames.nextElement();
             out.println("<tr><td>" + paramName + "<td>");
             String[] paramValues = request.getParameterValues(paramName);
                // получаем список значений параметра
             if (paramValues.length == 1) {
                if (paramValues[0].length() == 0)
                   out.print("<I>Значение не задано</I>");
                else
                   out.print(paramValues[0]);
             } else {
                out.println("<ul>");
                for(int i = 0; i < paramValues.length; i++) {
                   out.println("<li>" + paramValues[i]);
                }
                out.println("</ul>");
             }
          }
          out.println("</table>\n</body>\n</html>");
       }

       public void doPost(HttpServletRequest request, HttpServletResponse response)
       throws ServletException, IOException {
          doGet(request, response);
       }
    }

    Посмотреть пример