Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
OpublikowałMalwina Wawrzycki Został zmieniony 10 lat temu
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 <% // DATABASE CONNECTION 4 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 5 Connection conn = DriverManager.getConnection 6 ("jdbc:odbc:acme", "acmeuser", "acmepwd"); 7 // QUERY PREPARATION AND EXECUTION 8 Statement stmt = conn.createStatement(); 9 ResultSet result = stmt.executeQuery( 10 "SELECT NAME FROM NEWSCATEGORY ORDER BY NAME"); 11 %> 12 13 14 15 News Categories Page 16 17 18 19 20 21 22 23 24 25 26 27 28 29 <% 30 result.close(); 31 stmt.close(); 32 conn.close(); 33 %> 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 <% // DATABASE CONNECTION 4 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 5 Connection conn = DriverManager.getConnection 6 ("jdbc:odbc:acme", "acmeuser", "acmepwd"); Ustawiony język : Java Importowane biblioteki : java.sql Class.forName(…) : Ładuje sterownik bazy danych AUTOMATYCZNIE rejestruje swoją instancję w obiekcie DriverManager Connection: połączenie z bazą danych Strony JSP: przykład 1 LISTA ELEMENTÓW Translation: Kamil Żyła, Politechnika Lubelska
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 <% 30 result.close(); 31 stmt.close(); 32 conn.close(); 33 %> 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 <a href= "categoryDetails.jsp?categoryDU= "> 24 25 26 27 Translation: Kamil Żyła, Politechnika Lubelska
11
11 20 21 22 23 <a href= "categoryDetails.jsp?categoryDU= "> 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 <% // REQUEST PARAMETERS FETCH 4 String categoryDUInput = request.getParameter("categoryDU"); 5 // DATABASE CONNECTION 6 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 7 Connection conn = DriverManager.getConnection("jdbc:odbc:acme", 8 "acmeuser", "acmepwd"); 9 // QUERY PREPARATION 10 PreparedStatement pstmt = conn.prepareStatement( 11 "SELECT NAME, DESCRIPTION FROM NEWSCATEGORY WHERE OID = ?"); 12 pstmt.setString(1, categoryDUInput); 13 // QUERY EXECUTION 14 ResultSet result = pstmt.executeQuery(); 15 %> 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 <input type="checkbox" name="chosenOIDs" 23 value=" "/> 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 <% // REQUEST PARAMETERS FETCH 4 String selectedOID = request.getParameter("OID"); 5 // DATABASE CONNECTION 6 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 7 Connection conn = DriverManager.getConnection(...); 9 // QUERY PREPARATION AND EXECUTION 10 PreparedStatement pstmt = conn.prepareStatement( 11 "DELETE FROM NEWSCATEGORY WHERE OID = ?"); 12 pstmt.setString(1, selectedOID); 14 try { 15 pstmt.executeUpdate(); 16 } catch (SQLException e) { 17 pageContext.forward("errorPage.jsp"); // KO LINK 18 } 19 pstmt.close(); // TEMPORARY OBJECTS DISPOSITION 20 conn.close(); 21 pageContext.forward("newsCategories.jsp"); // OK LINK 22 %> 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
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.