Projektowanie warstwy serwera Wprowadzenie. Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu.

Slides:



Advertisements
Podobne prezentacje
I część 1.
Advertisements

Programowanie sieciowe w Javie
Wstęp do strumieni danych
Programowanie obiektowe
Hibernate zapytania.
XML + relacyjne bazy danych
Java i bazy danych Programowanie z wykorzystaniem JDBC mgr inż. Piotr Kopniak.
PHP + MySQL część II.
Relacyjne Bazy Danych wykład XIII
Nguyen Hung Son Uniwersytet Warszawski
Marcin Pamuła Mateusz Stefek
Uniwersytet Łódzki Wydział Matematyki i Informatyki, Katedra Analizy Nieliniowej JDBC Database Access Wykład 12 mgr inż. Michał Misiak.
Model – View - Controler
PySBQL Język zapytań dla obiektowych baz danych. Aplikacje bazodanowe Główny nurt budowania aplikacji opiera się na połączeniu: SQL JDBC Java Jak wyświetlić
Inżynieria oprogramowania Lecture XXX JavaTM – część IV: IO
Hibernate Klasy trwałe
Obiektowe metody projektowania systemów Command Pattern.
Programowanie sieciowe w Javie
Metody autoryzacji użytkowników wymaga integracji z systemem operacyjnym nie wymaga logowania mała pewność mechanizmu wymaga logowania duża pewność mechanizmu.
Gniazda komunikacji sieciowej w języku Java
.NET Remoting Łukasz Zawadzki.
Czytanie, pisanie i rysowanie – cd.. Jeszcze jeden strumyk PrintStream działa jak PrintWriter, ale: Używa domyślnego (systemowego) kodowania Nie wyrzuca.
181 JAVA – JSP Java EE training: JAVA SERVER PAGES PODSTAWY.

Projektowanie warstwy serwera Współpraca z XML. Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu.
Odwzorowania relacyjno-obiektowe Hibernate Klasy trwałe.
Odwzorowania relacyjno-obiektowe Hibernate zapytania.
Spring MVC.
Projektowanie warstwy serwera DisplayTag. Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu.
Projektowanie warstwy serwera Acegi. Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego.
Projektowanie warstwy serwera Spring MVC - uzupełnienie.
Hibernate relacje.
Spring podstawy.
Projektowanie warstwy serwera Znaczniki jsp. Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu.
Hibernate uzupełnienie
Odwzorowania relacyjno-obiektowe Hibernate Tranzakcyjność i bezpieczeństwo danych.
Technologia JSP.
Technologia.Net Bazy danych. Technologia ADO.Net Służy do dostarczania danych z rożnych źródeł (baz danych) do aplikacji Jest produktem Microsoft Umożliwia.
Przykład włamania do aplikacji internetowej poprzez modyfikację zapytań SQL Skrypty ASP Serwer bazy danych MS SQL Server Piotr Kuźniacki BDi.
Serializacja Serializacja pozwala zamienić obiekt na sekwencję bajtów, w sposób umożliwiający później wierne odtworzenie jego zawartości Inna nazwa to.
Terminy bazodanowe Tabela (relacja) Wiersz (krotka, rekord)
Wprowadzenie do JSP Copyright © Politecnico di Milano September 2003 Translation: Kamil Żyła, Politechnika Lubelska.
Sterownik JDBC i obsługa relacyjnych baz danych w Javie
Java 3 MPDI Programowanie obiektowe W7. import java.io.*; public class X { // kontrukcja throws – określenie jakie wyjątki może dana metoda // sygnalizować
Podstawy inżynierii oprogramowania Zofia Kruczkiewicz
PIO 3_2, Zofia Kruczkiewicz1 Wykład 3 – część druga Iteracyjno-rozwojowy cykl oprogramowania 3.
SQL - Structured Query Language
Programowanie obiektowe – zastosowanie języka Java SE
JAVA c.d.. Instrukcji wyboru SWITCH używamy, jeśli chcemy w zależności od wartości pewnego wyrażenia wykonać jeden z kilku fragmentów kodu. Jest to w.
Seminarium problemowe
PIO 2_2, Zofia Kruczkiewicz1 Wykład 2 – część druga Iteracyjno-rozwojowy cykl oprogramowania 2.
Tworzenie Aplikacji Internetowych dr Wojciech M. Gańcza 8.
Tworzenie Aplikacji Internetowych dr Wojciech M. Gańcza 3.
1 Strumienie Hierarchie klas strumieniowych, strumienie bajtowe - klasy InputStream i OutputStream i ich metody, klasa File, strumienie plikowe, strumienie.
  ELEMENTY JĘZYKA JAVA komentarze w Javie, słowa kluczowe i operatory, proste typy danych, tablice, podstawowy zestaw instrukcji.
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski informatyka +
Technologie internetowe Wykład 5 Wprowadzenie do skrytpów serwerowych.
Technologia.Net Bazy danych. Technologia ADO.Net Służy do dostarczania danych z rożnych źródeł (baz danych) do aplikacji Jest produktem Microsoft Umożliwia.
Informatyka Stosowana – ROK II / III
Odwzorowania relacyjno-obiektowe Hibernate preselekcja.
Połączenie JSP z MS SQL Server 2000 Łukasz Sak Tomasz Raciborski.
Paweł Starzyk Obiektowe metody projektowania systemów
PIO 3_2, Zofia Kruczkiewicz1 Wykład 3 – część druga Iteracyjno-rozwojowy cykl oprogramowania 3.
Object-relational mapping (aka O/RM, ORM, and O/R mapping)
do programowania obiektowego w języku Groovy
InMoST, Java – przykładowa aplikacja Bartosz.Michalik
PHP (wstęp) Personal Home Page Tools (PHP Tools)
Klasy wewnętrzne. Praktyka użycia interfejsów i klas wewnętrznych
Iteracyjno-rozwojowy cykl oprogramowania 3
Wykład 1-część druga Wstęp do inżynierii oprogramowania.
Zapis prezentacji:

Projektowanie warstwy serwera Wprowadzenie

Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 2 Plan wykładu (I) Zagadnienia wstępne: Servlety, JDBC Strony JSP Spring i SpringMVC DisplayTag SpringAOP Definiowanie znaczników Zabezpieczenia stron Zagadnienia związane z przetwarzaniem plików XML

Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 3 Plan wykładu (II) Co to są servlety? Podstawowe metody servletów Request, response i session Co to jest JDBC? Nawiązywanie połączenia z bazą danych Współpraca z bazą danych przez JDBC

Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 4 Servlety

Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 5 Metody Servletów public void init(ServletConfig config) public void destroy() public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException

Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 6 Przykładowy Servlet public class PrzykladServlet extends HttpServlet { public void doGet (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { PrintWriter out; String title = Tytul"; response.setContentType("text/html"); out = response.getWriter(); out.println(HTML>\n" +" Strona1 \n" +" \n" +" + title+ \n" +" "); out.close(); }

Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 7 Zapytanie (I) HttpServletRequest request – zapytanie String getParameter(String) void setParameter(String,String) String [] getParameterValues(String) Enumeration getParametersNames()

Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 8 Zapytanie (II) String sort = ServletRequestUtils.getStringParameter(request, "sort",null); int page = ServletRequestUtils.getIntParameter(request, "page", -1); public static int[] getIntParameters(request, name) public static int getRequiredIntParameter(request, name) throws ServletRequestBindingException

Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 9 Zapytanie (III) request.getServerPort(); request.getServletPath(); Cookie[] cookies = request.getCookies(); for (Cookie c : cookies) { if (c.getName().equals("wykonano")) { boolean a = Boolean.parseBoolean(c.getValue());..... }

Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 10 Zapytanie (IV) String userAgent = request.getHeader("User-Agent"); if (userAgent.contains("MSIE") {... } else if ( userAgent.contains("Opera")) {... }

Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 11 Odpowiedź (I) HttpServletResponse response - odpowiedź OutputStream o = response.getOutputStream(); response.setCharacterEncoding("UTF-8"); response.setContentType(text/html); response.setHeader(...);

Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 12 Odpowiedź (II) Cookie c = new Cookie(wykonano", Boolean.FALSE.toString()); c.setPath("/"); c.setMaxAge(-1); response.addCookie(c);

Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 13 HttpSession (I) HttpSession session = request.getSession(true) String getAttribute(String) void setAttribute(String,String) public void removeAttribute(String name) public Enumeration getAttributeNames()

Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 14 HttpSession (II) request.getSession().setAttribute("preselection, preselection); preselection = (Preselection) request.getSession().getAttribute(preselection); request.getSession().removeAttribute("preselection); Long time = request.getSession().getLastAccessedTime(); request.getSession().setMaxInactiveInterval(1); // sekundy request.getSession().getId();

Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 15 ServletContext WebApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext( request.getSession().getServletContext() ); ApplicationContext ctx = new FileSystemXmlApplicationContext(new String[] { servletContext.getRealPath( "WEB-INF + System.getProperty("file.separator") + biblioteka-daoInna.xml )});

Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 16 Przykładowy Servlet (I) public class ListyServlet extends HttpServlet protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { WebApplicationContext ctx = WebApplicationContextUtils. getWebApplicationContext(request.getSession().getServletContext()); UzytkownikService uzytkownikService = (UzytkownikService) ctx.getBean("uzytkownikService");

Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 17 Przykładowy Servlet (II) StringBuilder wynik = new StringBuilder(); String szukanyStart = request.getParameter(q"); if (szukanyStart == null) return; ArrayList criteriaList = new ArrayList (); criteriaList.add(new BooleanCriterion("aktywny", "Aktywny",true)); criteriaList.add(new StringFirstCriterion("nazwisko", "Nazwisko",szukanyStart)); ArrayList list = (ArrayList ) uzytkownikService.findByFirstLetter(criteriaList);

Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 18 Przykładowy Servlet (III) Iterator listIterator = list.iterator(); while (listIterator.hasNext()) { Uzytkownik uzytkownik = listIterator.next(); wynik.append(uzytkownik.getNazwisko()+ " " + uzytkownik.getImie() + "\n"); } response.setCharacterEncoding("UTF-8"); PrintWriter out = response.getWriter(); out.print(wynik.toString()); out.close(); }}

Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 19 Przykładowy Servlet (uzupełnienie) $().ready(function () { $("#identyfikatorUzytkownika").autocomplete(' ', { width: 400, selectFirst: false, extraParams: {"pole" : "uzytkownik"} });

Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 20 DAO Data Access Object (DAO) to wzorzec projektowy dostępu do danych zewnętrznych zakładający rozdzielenie kodu odpowiedzialnego za trwałość obiektów od kodu implementującego reguły biznesowe.

Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 21 Genercja połączenia Pobranie sterownika (driver) JDBC. Zdefiniowanie obiektu connection. Ustanowienie połączenia. Utworzenie objektu statement. Wykonanie zapytania. Pobranie wyników zapytania. Zamknięcie połączenia.

Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 22 JDBC - przykład (baza danych) CREATE TABLE uzytkownik ( idUzytkownik int(11) NOT NULL auto_increment, imie varchar(255) default NULL, nazwisko varchar(255) default NULL, wiek int(11) default NULL, varchar(255) default NULL, haslo varchar(255) default NULL, login varchar(255) default NULL, telefon varchar(255) default NULL, idPokoj int(11) default NULL, idRole int(11) default NULL, PRIMARY KEY (idOsoba) ) charset utf8 TYPE=MyISAM;

Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 23 JDBC (obiekt domenowy) public class UzytkownikBean { private String idUzytkownik=""; private String imie=""; private String nazwisko=""; private String wiek=""; private String =""; private String haslo=""; private String telefon = ""; private String idRole=""; private String idPokoj="";... }

Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 24 JDBC - przykład try { Class.forName(driver); Connection connection = DriverManager.getConnection(url, username, password); Statement statement = connection.createStatement(); String query = "SELECT * FROM fruits"; ResultSet resultSet = statement.executeQuery(query); while(resultSet.next()) { System.out.print(" " + resultSet.getInt(1)); } } catch(ClassNotFoundException cnfe) { System.err.println("Error loading driver: " + cnfe); } catch(SQLException sqle) { System.err.println("Error connecting: " + sqle); }

Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 25 JDBC - przykład (II) protected static String SELECT_UZYTKOWNIK ="SELECT " + "idUzytkownik,"+ "imie,"+ "nazwisko"+ " FROM "+ "uzytkownik"; protected static String SELECT_UZYTKOWNIK_WHERE_ID = SELECT_OSOBA + " WHERE idUzytkownik=?";

Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 26 JDBC - przykład (III) public UzytkownikBean selectUzytkownikWhereId(String id) { UzytkownikBean f= null; Connection con= getConnection(); PreparedStatement ps= null; ResultSet rs= null; try { ps= con.prepareStatement(SELECT_UZYTKOWNIK_WHERE_ID); ps.setString(1, id); rs= ps.executeQuery();......

Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 27 JDBC - przykład (IV) while (rs != null && rs.next()) { f = new UzytkownikBean(); f.setIdUzytkownik(rs.getString("idUzytkownik")); f.setImie(rs.getString("imie")); f.setNazwisko(rs.getString("nazwisko")); } } catch (SQLException sqle) { sqle.printStackTrace(); } finally { closeAll(con, ps, rs); rs= null; ps= null; con= null; } return f; }