3 Сервлеты Java пособие.ppt
- Количество слайдов: 26
3 Сервлеты JAVA Профессор Хомоненко А. Д. ПГУПС, ВКА, 24. 05. 2012 1
Вопросы: l l l Жизненный цикл сервлета Простой сервлет Пакет Javax. Servlet Сервлет с запросом параметров Параметры инициализации 2
Литература: Хомоненко А. Д. , Рогальчук В. В. , Тырва А. В. Разработка Web-приложений для работы с базами данных: Учеб. пособие. СПб. : ПГУПС, 2012. – 88 с. 2. Ноутон П. , Шилдт Г. JAVA 2. Наиболее полное руководство. СПб. : БХВ-Петербург, 2002. ─ 1072 с. 3. Beginning Java EE 5 From Novice to Professional. Kevin Mukhar and Chris Zelenak, with James L. Weaver and Jim Crume. Apress. 2006. — 641 p. 4. Холл М. , Браун Л. Программирование Web. Библиотека профессионала. Пер. с англ. М. : Издательский дом «Вильямс» , 2002. ─ 1264 с. 1. 3
Жизненный цикл сервлета Инициализация метод init() Взаимодействие с клиентами, метод service() Уничтожение сервлета, метод destroy() 4
Простой сервлет. Файл Hello. Servlet. Java 5
Простой сервлет. Запрос сервлета http: //locahost: 8080/servlet/Hello. Servlet или http: //127. 0. 0. 1: 8080/servlet/Hello. Servlet Вывод сервлета в окне обозревателя: Hello! 6
Пакет Javax. Servlet. Интерфейсы 7
Классы пакета Javax. Servlet 8
Методы интерфейса Servlet l void destroy() l Servlet. Config get. Servlet. Config() l String get. Servlet. Info() l void init(Servlet. Config sc) Throw Servlet. Exeption l void service(Servlet. Request req, Servlet. Responce res) throws Servlet. Exeption, IOExeption 9
Пример простого сервелета import javax. servlet. Servlet. Exception; … public class Second. Servlet extends Http. Servlet { protected void do. Get(Http. Servlet. Request request, Http. Servlet. Response response) throws Servlet. Exception, IOException { response. set. Content. Type("text/html"); response. set. Character. Encoding("UTF-8"); response. get. Writer(). write("
Результат выполнения сервелета 11
Сервлет с параметрами и GETзапросом. Файл Color. Get. htm // Web-страница
Окно обозревателя с формой: Строка вызова и результат: 13
Файл Color. Get. Servlet. java - сервлет public class Color. Get. Servlet extends Http. Servlet { public void do. Get (Http. Servlet. Request request, Http. Servlet. Response response) throws Servlet. Exception, IOException { String color = request. get. Parameter("color"); response. set. Content. Type ("text/html"); Print. Writer pw = response. get. Writer (); pw. println("The selected color is: "); pw. println(color); pw. close () ; }} 14
Сервлеты для работы с БД Приложение должно реализовывать множество функций: установление соединений с СУБД и их корректное завершение; выполнение операций над хранящимися данными (выборка, модификация и удаление записей); динамическое создание htmlдокументов, обеспечивающих навигацию по данным и обращение к функциям обработки; управление правами доступа ; протоколирование операций 15
Пример сервлета для работы с БД public void init(Servlet. Config config) throws Servlet. Exception {super. init(config); String url = config. get. Init. Parameter("database. Url"); String user = config. get. Init. Parameter("database. User"); String password = config. get. Init. Parameter("database. Password"); String driver = config. get. Init. Parameter("database. Driver"); if (url != null && user != null && password != null && driver != null) { 16
Пример сервлета для работы с БД try { Class. for. Name(driver); this. connection = Driver. Manager. get. Connection(url, user, password); } catch (SQLException e) { throw new Servlet. Exception("Cannot connect to database", e); } catch (Class. Not. Found. Exception e) { throw new Servlet. Exception("Cannot load jdbc driver for name " + driver, e); } } } 17
Пример сервлета для работы с БД public void destroy() { try { connection. close(); } catch (SQLException e) { e. print. Stack. Trace(); } super. destroy(); } 18
Пример сервлета для работы с БД protected void do. Get(Http. Servlet. Request request, Http. Servlet. Response response) throws Servlet. Exception, IOException { try { Prepared. Statement ps = connection. prepare. Statement("SELECT * FROM cities"); Result. Set rs = ps. execute. Query(); if (request. get. Parameter("format") == null) { generate. Html. Response(rs, response); 19
Пример сервлета для работы с БД } else if (request. get. Parameter("format"). equals. Ignore. Case("c sv")) { generate. Csv. Response(rs, response); } rs. close(); ps. close(); } catch (SQLException e) { throw new Servlet. Exception("Ошибка при работе с БД", e); } } 20
Пример сервлета для работы с БД Метод generate. Html. Response создает HTMLдокумент , содержащий заголовок и таблицу: private void generate. Html. Response(Result. Set rs, Http. Servlet. Response response) throws IOException, SQLException { response. set. Character. Encoding("UTF-8"); response. set. Content. Type("text/html; charset=UTF 8"); Print. Writer out = response. get. Writer(); out. println(""); out. println("
| Название | Население
|
|---|






