Скачать презентацию 3 Сервлеты JAVA Профессор Хомоненко А Д ПГУПС Скачать презентацию 3 Сервлеты JAVA Профессор Хомоненко А Д ПГУПС

3 Сервлеты Java пособие.ppt

  • Количество слайдов: 26

3 Сервлеты JAVA Профессор Хомоненко А. Д. ПГУПС, ВКА, 24. 05. 2012 1 3 Сервлеты JAVA Профессор Хомоненко А. Д. ПГУПС, ВКА, 24. 05. 2012 1

Вопросы: l l l Жизненный цикл сервлета Простой сервлет Пакет Javax. Servlet Сервлет с Вопросы: l l l Жизненный цикл сервлета Простой сервлет Пакет Javax. Servlet Сервлет с запросом параметров Параметры инициализации 2

Литература: Хомоненко А. Д. , Рогальчук В. В. , Тырва А. В. Разработка Web-приложений Литература: Хомоненко А. Д. , Рогальчук В. В. , Тырва А. В. Разработка 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() Уничтожение сервлета, метод Жизненный цикл сервлета Инициализация метод init() Взаимодействие с клиентами, метод service() Уничтожение сервлета, метод destroy() 4

Простой сервлет. Файл Hello. Servlet. Java 5 Простой сервлет. Файл Hello. Servlet. Java 5

Простой сервлет. Запрос сервлета http: //locahost: 8080/servlet/Hello. Servlet или http: //127. 0. 0. 1: Простой сервлет. Запрос сервлета http: //locahost: 8080/servlet/Hello. Servlet или http: //127. 0. 0. 1: 8080/servlet/Hello. Servlet Вывод сервлета в окне обозревателя: Hello! 6

Пакет Javax. Servlet. Интерфейсы 7 Пакет Javax. Servlet. Интерфейсы 7

Классы пакета Javax. Servlet 8 Классы пакета Javax. Servlet 8

Методы интерфейса Servlet l void destroy() l Servlet. Config get. Servlet. Config() l String Методы интерфейса 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 Пример простого сервелета 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("HTTPсервлет"); response. get. Writer(). write("Этот документ сгенерирован HTTP-сервлетом"); } 10 }

Результат выполнения сервелета 11 Результат выполнения сервелета 11

Сервлет с параметрами и GETзапросом. Файл Color. Get. htm <html> // Web-страница <body> <center> Сервлет с параметрами и GETзапросом. Файл Color. Get. htm // Web-страница

Color:
12

Окно обозревателя с формой: Строка вызова и результат: 13 Окно обозревателя с формой: Строка вызова и результат: 13

Файл Color. Get. Servlet. java - сервлет public class Color. Get. Servlet extends Http. Файл 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 Пример сервлета для работы с БД 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 = Пример сервлета для работы с БД 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(); Пример сервлета для работы с БД 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. Пример сервлета для работы с БД 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( Пример сервлета для работы с БД } 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документ , содержащий Пример сервлета для работы с БД Метод 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("Список городов "); 21

Города"); out. println("

"); out. println("
НазваниеНаселениеГорода"); out. println(""); out. println("
НазваниеНаселение Пример сервлета для работы с БД out. println("Города"); out. println(""); out. println(""); while(rs. next()) { out. println(String. format("” + "", rs. get. String("title"), rs. get. Long("population"), rs. get. Double("lat"), rs. get. Double("lng"))); } out. println("
НазваниеНаселение"); out. println("ШиротаДолгота
%s%d%. 4 f
"); out. println(""); 22

Пример сервлета для работы с БД } 23 Пример сервлета для работы с БД } 23

Пример сервлета для работы с БД Метод generate. Csv. Response используется для создания CSV-файла. Пример сервлета для работы с БД Метод generate. Csv. Response используется для создания CSV-файла. private void generate. Csv. Response(Result. Set rs, Http. Servlet. Response response) throws IOException, SQLException { response. set. Character. Encoding("UTF-8"); response. set. Content. Type("text/csv; charset=UTF 8"); response. set. Header("Content-disposition", "attachment; filename=cities. csv"); Print. Writer out = response. get. Writer(); out. println("Город; население; широта; долгота"); 24

Пример сервлета для работы с БД while(rs. next()) { out. println(String. format( Пример сервлета для работы с БД while(rs. next()) { out. println(String. format("%s; %d; %. 4 f", rs. get. String("title"), rs. get. Long("population"), rs. get. Double("lat"), rs. get. Double("lng"))); } } 25

Пример сервлета для работы с БД 26 Пример сервлета для работы с БД 26