Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

6. ASTEA (2016/03/01): Tomcat

836 views

Published on

Tomcat web zerbitzaria.

Published in: Education
  • Be the first to comment

  • Be the first to like this

6. ASTEA (2016/03/01): Tomcat

  1. 1. Oskar Casquero y María Luz Álvarez Dpto. Ingeniería de Sistemas y Automática 1 Web Sistemak by Oskar Casquero & María Luz Álvarez is licensed under a Creative Commons Reconocimiento 4.0 Internacional License. TOMCAT WEB ZERBITZARIA Web Sistemak 6. ASTEA (2016/03/01)
  2. 2. Oskar Casquero y María Luz Álvarez Dpto. Ingeniería de Sistemas y Automática • Web aplikazioek orokorrean eta servlet-ek bereiziki dituzten ezaugarri aurreratuak azalduko dira: – Datu basea. • Datu gordetze iraunkorra nahiz eta web aplikazioa berrabiarazi. – Saioa (session): aplikazio baten barnean, erabiltzaile batentzat sortutako azi-testuingurua. • Cookie-kiko erlazioa. • Aldi baterako datu gordetzea saioak bizirik jarraitzen duen bitartean. – Testuingurua (context): aplikazioaren testuingurua, hau da, servlet, saio eta eskera/erantzun guztien euskarri dena. • Aldi baterako datu gordetzea aplikazioa berrabiarazten ez den bitartean. • Testuinguru hau erabiliz saio edo servlet ezberdinek datuak partekatu ditzakete. – JSP-ak • Web orriak era dinamikoan sortzeko, HTML-an Java kodea sartzean datza. • Alderdi hauek ikasteko Shareinfo web aplikazioa ardatz bezela erabiliko dugu – Shareinfo.sql mysqldump-a erabilita datu basea sortuko dugu. • https://github.com/kaskero/ShareInfo/blob/master/ShareInfo/ShareInfo.sql – Web aplikazioa GitHub-etik inportatuko dugu. • https://github.com/kaskero/ShareInfo WEB APLIKAZIO DINAMIKOA – SHAREINFO SARRERA 2
  3. 3. Oskar Casquero y María Luz Álvarez Dpto. Ingeniería de Sistemas y Automática WEB APLIKAZIO DINAMIKOA – SHAREINFO DATU BASEA INPORTATU 3
  4. 4. Oskar Casquero y María Luz Álvarez Dpto. Ingeniería de Sistemas y Automática WEB APLIKAZIO DINAMIKOA – SHAREINFO TOMCAT PROIEKTUA GITHUB-ETIK INPORTATU 4
  5. 5. Oskar Casquero y María Luz Álvarez Dpto. Ingeniería de Sistemas y Automática WEB APLIKAZIO DINAMIKOA – SHAREINFO TOMCAT PROIEKTUA GITHUB-ETIK INPORTATU 5
  6. 6. Oskar Casquero y María Luz Álvarez Dpto. Ingeniería de Sistemas y Automática WEB APLIKAZIO DINAMIKOA – SHAREINFO TOMCAT PROIEKTUA GITHUB-ETIK INPORTATU 6
  7. 7. Oskar Casquero y María Luz Álvarez Dpto. Ingeniería de Sistemas y Automática WEB APLIKAZIO DINAMIKOA – SHAREINFO TOMCAT PROIEKTUA GITHUB-ETIK INPORTATU 7 Aplikazioaren zati publikoa Aplikazioaren hedapen fitxategia Aplikazioaren zati pribatua Aplikazioaren liburutegiak
  8. 8. Oskar Casquero y María Luz Álvarez Dpto. Ingeniería de Sistemas y Automática WEB APLIKAZIO DINAMIKOA – SHAREINFO FLUXU DIAGRAMA 8 LoginServlet LoginForm .html MainServlet SignupServlet signupForm .html ViewMessages .jsp MySessionListener POST (email, password, username) BD Login error Link:SignUp BD Redirect POST (email,password) Redirect Not logged in (logout or session expired) SESSION SESSION Redirect POST (message) or Link: Refresh BD Redirect Redirect SESSION Event CONTEXT CONTEXT ZATI PUBLIKOA ZATI PRIBATUA View messages Logged in Sessionexpired?
  9. 9. Oskar Casquero y María Luz Álvarez Dpto. Ingeniería de Sistemas y Automática SESSION 1 SESSION 2 WEB APLIKAZIO DINAMIKOA – SHAREINFO DATUEN PARTEKATZEA 9 Datu basea Testuingurua CONTEXT Saioa
  10. 10. Oskar Casquero y María Luz Álvarez Dpto. Ingeniería de Sistemas y Automática WEB APLIKAZIO DINAMIKOA – SHAREINFO DATUEN PARTEKATZEA: ESKAERA ETA SAIO MAILAK 10 SERVLET 1 String str1 = HttpServletRequest.getParameter(“a”); Eskaeran informazio gehigarria sartu: Object obj1 = new Object() HttpServletRequest.setAttribute(“c”, obj1) Saoian informazio gehigarria sartu: Object obj2 = new Object() HttpSession.setAttribute(“d”, obj2) SESSION REQUEST 1 Datuak: a, b SERVLET 2 String str2 = HttpServletRequest.getParameter(“b”); Object obj1 = HttpServletRequest.getAttribute(“c”); REQUEST 1 Datuak: a, b, c SERVLET 3 String str3 = HttpServletRequest.getParameter(“e”) Object obj2 = HttpSession.getAttribute(“d”); REQUEST 2 Datuak: e Datuak: sessionID, …, d USER Request parameter Request attribute Session attribute
  11. 11. Oskar Casquero y María Luz Álvarez Dpto. Ingeniería de Sistemas y Automática WEB APLIKAZIO DINAMIKOA – SHAREINFO DATUEN PARTEKATZEA: SAIO ETA TESTUINGURU MAILA 11 SESSION 1 CONTEXT SERVLET 1 String user = HttpServletRequest.getParameter(“user”); Saioan informazio gehigarria sartu: session.setAttribute(“logged_as”, user); Testutinguruan informazio gehigarria sartu: ArrayList<String> array = context.getAttribute("loggedin_users"); array.add(user); context.setAttribute("loggedin_users", array); REQUEST 1 Datuak: user=oskar USER 1 Datuak: loggedin_users= [“oskar”] Datuak: logged_as=oskar Request parameter Session attribute Context attribute
  12. 12. Oskar Casquero y María Luz Álvarez Dpto. Ingeniería de Sistemas y Automática WEB APLIKAZIO DINAMIKOA – SHAREINFO DATUEN PARTEKATZEA: SAIO ETA TESTUINGURU MAILA 12 SESSION 2 CONTEXT SERVLET 1 String user = HttpServletRequest.getParameter(“user”); Saioan informazio gehigarria sartu: session.setAttribute(“logged_as”, user); Testutinguruan informazio gehigarria sartu: ArrayList<String> array = context.getAttribute("loggedin_users"); array.add(user); context.setAttribute("loggedin_users", array); REQUEST 2 Datuak: user=mariluz USER 2 Datuak: loggedin_users= [“oskar”, “mariluz”] REQUEST 3 SERVLET 2 Saiotik informazio gehigarria atera: String user = session.getAttribute(“logged_as”, user); Datuak: logged_as=mariluz JSP ArrayList<String> array = context.getAttribute("loggedin_users"); Request parameter Session attribute Context attribute
  13. 13. Oskar Casquero y María Luz Álvarez Dpto. Ingeniería de Sistemas y Automática • Eskaera objetu batetik (HttpServletRequest) saioa sortzeko/lortzeko: – HttpSession session = request.getSession(boolean create); • http://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpSession.html HttpSession metodoak: – Object getAttribute (String name) – void setAttribute(String name, Object value) – String getId() – long getCreationTime() – long getLastAccessedTime() – int getMaxInactiveInterval() – void invalidate() WEB APLIKAZIO DINAMIKOA – SHAREINFO SAIOA: HTTPSESSION 13
  14. 14. Oskar Casquero y María Luz Álvarez Dpto. Ingeniería de Sistemas y Automática • Eskaera/Saio objetu batetik testuingurua lortzeko: – ServletContext context = request/session.getServletContext(); • http://docs.oracle.com/javaee/6/api/javax/servlet/ServletContext.html ServletContext metodoak: – Object getAttribute (String name) – void setAttribute(String name, Object value) Berhelbideraketak web aplikazioa osotzen duten elementuen artean: – Servlet  JSP RequestDispatcher rd = request.getRequestDispatcher("/jsp/viewMessages.jsp"); rd.forward(request, response); – Servlet 1  Servlet 2 RequestDispatcher rd = context.getNamedDispatcher("MainServlet"); rd.forward(request, response); WEB APLIKAZIO DINAMIKOA – SHAREINFO TESTUINGURUA: SERVLETCONTEXT 14 Aplikazioarekiko URI erlatiboa http://localhost:8080/ShareInfo/jsp/viewMessages.jsp Servlet name (web.xml)
  15. 15. Oskar Casquero y María Luz Álvarez Dpto. Ingeniería de Sistemas y Automática • Printzipioz, berhelbideraketa egiteko bi modu daude, baina orokorrean ez dira trukagarriak (bakoitza helburu jakin baterako pentsaturik dago): 1. Zerbitzari barnean. RequestDispatcher rd = request.getRequestDispatcher("/html/loginForm.html"); rd.forward(request, response); 2. Nabigatzailearen bitartez (302 redirect - location goiburua) response.sendRedirect("/ShareInfo/html/loginForm.html"); WEB APLIKAZIO DINAMIKOA – SHAREINFO BERHELBIDERAKETAK 15 servlet html servlet html 1 2 Aplikazioarekiko URI erlatiboa http://localhost:8080/ShareInfo/jsp/viewMessages.jsp Zerbitzariarekiko URI erlatiboa http://localhost:8080/ShareInfo/jsp/viewMessages.jsp

×