1 Wprowadzenie do JSP Copyright © Politecnico di Milano September 2003 Translation: Kamil Żyła, Politechnika Lubelska
2 2 Plan Etapy przetwarzania strony Etapy przetwarzania strony Struktura strony JSP Struktura strony JSP Przykładowe strony JSP Przykładowe strony JSP Lista elementów Lista elementów Lista hiperłączy Lista hiperłączy Strona z detalami o elemencie Strona z detalami o elemencie Lista wielokrotnego wyboru Lista wielokrotnego wyboru Usunięcie instancji Usunięcie instancji Łańcuchy operacji Łańcuchy operacji Translation: Kamil Żyła, Politechnika Lubelska
3 3 Etapy przetwarzania strony Przetwarzanie strony JSP zawsze zawiera poniższe operacje Dekodowanie parametrów Połączenie z bazą danych Przygotowanie zapytań Wykonanie zapytań Przedstawienie wyników 1. Dekodowanie parametrów żądania 2. Połączenie z bazą danych & Przygotowanie i wykonanie zapytań HTTP request Parametry żądania 3. Wyświetlenie zawartości strony i linków Wyniki zapytań HTTP response Translation: Kamil Żyła, Politechnika Lubelska
4 4 Struktura strony JSP Translation: Kamil Żyła, Politechnika Lubelska
5 5 Strony JSP: przykład 1 LISTA ELEMENTÓW 1 2 3 12 13 14 15 News Categories Page 16 17 18 19 20 21 22 23 24 25 26 27 28 29 Strona wyświetlająca listę kategorii Newsów na podstawie danych pobranych z bazy danych Połączenie z bazą danych (ODBC) Definicja i wykonanie zapytania Wypisanie danych zwróconych przez zapytanie Translation: Kamil Żyła, Politechnika Lubelska
6 6 1 2 3
7 7 7 // QUERY PREPARATION AND EXECUTION 8 Statement stmt = conn.createStatement(); 9 ResultSet result = stmt.executeQuery( 10 "SELECT NAME FROM NEWSCATEGORY ORDER BY NAME"); 11 %> createStatement : tworzy pusty obiekt klasy Statement (interfejs do wykonywania zapytań) executeQuery : zawiera zapytanie do bazy danych przyjmuje łańcuch znaków stanowiący zapytanie w języku SQL zwraca obiekt ResultSet (zawiera wynik zapytania) Strony JSP: przykład 1 LISTA ELEMENTÓW Translation: Kamil Żyła, Politechnika Lubelska
8 8 12 13 14 15 … 16 17 Generowanie znaczników i zawartości strony while (result.next()): powtarza {…} aż do przejrzenia całej kolekcji zwróconej w obiekcie ResultSet result.getString(…): zwraca wartość wskazanego atrybutu dla wskazanej instancji ResultSet 18 19 20 21 22 23 24 25 26 27 Strony JSP: przykład 1 LISTA ELEMENTÓW Translation: Kamil Żyła, Politechnika Lubelska
9 9 28 29 Close (czynności porządkowe): Obiekty ResultSet Obiekty Statement Obiekty Connection Strony JSP: przykład 1 LISTA ELEMENTÓW Translation: Kamil Żyła, Politechnika Lubelska
10 10 Strony JSP: przykład 2 LISTA HIPERŁĄCZY 7 // QUERY PREPARATION AND EXECUTION 8 Statement stmt = conn.createStatement(); 9 ResultSet result = stmt.executeQuery( 10 "SELECT NAME,OID FROM NEWSCATEGORY ORDER BY NAME"); 11 %> Strona wyświetlająca listę kategorii newsów Każda nazwa kategorii jest kotwicą do strony wyświetlającej szczegółowe informacje o kategorii 18 19 20 21 22 23 23 24 25 26 27 Translation: Kamil Żyła, Politechnika Lubelska
11 11 20 21 22 23 24 25 26 Atrybut Name jest wyświetlany jako kotwica Atrybut OID jest używany do złożenia wartości href kotwicy OID jest przekazywany jako parametr w adresie URL strony docelowej Strony JSP: przykład 2 LISTA HIPERŁĄCZY Translation: Kamil Żyła, Politechnika Lubelska
12 12 Strony JSP: przykład 3 SZCZEGÓŁOWE INFO O JEDNYM ELEMENCIE 1 2 3 Przygotowanie i wykonanie zapytania z parametrami Translation: Kamil Żyła, Politechnika Lubelska
13 13 20 21 22 23 Name 24 Description 25 26 27 28 Pozyskanie pojedynczej krotki (if zamiast while) Pozyskanie wielu atrybutów dla pojedynczej instancji (NAME, DESCRIPTION) Strony JSP: przykład 3 SZCZEGÓŁOWE INFO O JEDNYM ELEMENCIE Translation: Kamil Żyła, Politechnika Lubelska
14 14 Strony JSP: przykład 4 LISTA WIELOKROTNEGO WYBORU 16 17 18 19 20 21 22 24 25 26 27 28 29 Użycie znaczników formularza Dynamiczna konstrukcja pola wejściowego typu checkbox Translation: Kamil Żyła, Politechnika Lubelska
15 15 Strony JSP: przykład 5 USUNIĘCIE INSTANCJI 3 Translation: Kamil Żyła, Politechnika Lubelska
16 16 Łańcuch operacji Translation: Kamil Żyła, Politechnika Lubelska
17 17 Źródła JDBC : http://www.javasoft.com/products/jdbc/index.html JSP: http://java.sun.com/products/jsp/index.html Translation: Kamil Żyła, Politechnika Lubelska