Язык SQL

Сервлет-приложения для BigHit Video


Большая часть CGI-приложений для системы резервирования компании BigHit Video уже была рассмотрена. В этом сайтевсе эти части собираются вместе, путем демонстрации определений классов и основных методов, которые управляют приложениями.

Четыре динамически генерируемые Web-страницы, представленные в этой главе, созданы с помощью пяти различных CGI-операций. Эти пять операций содержатся в двух сервлет-классах. Первый класс, ReservationServlet, содержит методы, генерирующие страницу регистрации, страницу резервирования и страницу результатов резервирования, а также методы, обрабатывающие их CGI-запросы. Второй класс, CustomerServlet, содержит методы, генерирующие страницу для редактирования информации о клиенте и обрабатывающие соответствующий CGI-запрос.

Каждая из HTML-форм содержит скрытый параметр action, который используется классами для определения, какую операцию необходимо выполнить в ответ на конкретный запрос. Значения параметра action стандартизированы и могут быть следующими.

 displayForm. Изображает на экране страницу главной формы этого класса.

 process Form. Обрабатывает CGI-запрос из главной формы и генерирует страницу ответа.

 displayEntry. Отображает страницу ввода класса.

Сервлет-классы BigHit Video комплектуются методами doPost, в которых предполагается наличие CGI-параметра action, определяющего, какую операцию следует выполнить. Эти классы создают HTML-документ в файле вывода, который поставляется как часть аргумента ответа сервлета. На 9.18 представлен метод doPost для класса CustomerServlet.

1 public void doPost(HttpServletRequest req, .HttpServletResponse res)

2 throws IOException , ServletException {

3 request = req;

4 response = res;

5 PrintWriter out = response.getWriter() ;

6 res.setContentType("text/html");

7 htmlOut = new BigHitHtmlWriter(out);

8 String actions!] = request.getParameterValues("action");

9 if (actions==null) {// должен иметь атрибут action

10 htmlOut.printSimplePage("No action supplied","");

11 htmlOut.close();

12 return;

13 }

14 String customers!] = request.getParameterValues("accountld”);

15 if (customers==null) {//должен иметь accountld

16 htmlOut.printSimplePage("No customer argument supplied","");

17 htmlOut.close();

18 return;

19 }

20 if (actions[0].equals("processForm")) { // обработать форму редактирования

21 processCustomerEditForm();

22 >

23 if (actions[0].equals("displayForm")){

// форма для редактирования информации о клиенте

24 // все параметры доступны

25 makeCustomerEditPage(customers[0]);

26 }

27 }

Комментарии закрыты