Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

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

Podobne prezentacje


Prezentacja na temat: "Projektowanie warstwy serwera Wprowadzenie. Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu."— Zapis prezentacji:

1 Projektowanie warstwy serwera Wprowadzenie

2 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

3 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

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

5 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

6 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(); }

7 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()

8 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

9 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());..... }

10 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")) {... }

11 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(...);

12 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);

13 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()

14 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();

15 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 )});

16 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 { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { WebApplicationContext ctx = WebApplicationContextUtils. getWebApplicationContext(request.getSession().getServletContext()); UzytkownikService uzytkownikService = (UzytkownikService) ctx.getBean("uzytkownikService");

17 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);

18 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(); }}

19 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"} });

20 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.

21 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.

22 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, email 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;

23 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 email=""; private String haslo=""; private String telefon = ""; private String idRole=""; private String idPokoj="";... }

24 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); }

25 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=?";

26 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();......

27 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; }


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

Podobne prezentacje


Reklamy Google