Java EE - FHWS 2014 - 2 setup / servlets

484 Aufrufe

Veröffentlicht am

Java EE - FHWS 2014 - 2 setup / servlets

Veröffentlicht in: Software
0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
484
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
8
Aktionen
Geteilt
0
Downloads
11
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Java EE - FHWS 2014 - 2 setup / servlets

  1. 1. Java EE Full Stack for Business Applications  setup 
  2. 2. Referent: MATTHIAS REINING Technical Manager Insurance at RGI Deutschland GmbH blog: http://blog.matthias-reining.com twitter: https://twitter.com/MatthiasReining about.me: http://about.me/matthiasreining
  3. 3. SETUP
  4. 4. DAS PROGRAMM  Die Spec  Idee, Historie  Der App Server  Containerkonzept  Paketierung (JAR, WAR, EAR)  Marktüberblick  Das Projekt  Entwicklung eines Beispielprojektes  IDE Settings, Oberflächen (Servlets, JSF), Business Logic (EJB), Persistence (JPA), Java EE Patterns (CDI), Web Services (JAX-RS)  Die Produktion  Buildmanagement (maven, Jenkins)  Deployment einer Java EE Anwendung in der Cloud bei einem PaaS Anbieter
  5. 5. IDE  NetBeans  Eclipse  IntelliJ IDEA
  6. 6. vanilla-ide NetBeans https://netbeans.org/
  7. 7. DAS PROGRAMM  Die Spec  Idee, Historie  Der App Server  Containerkonzept  Paketierung (JAR, WAR, EAR)  Marktüberblick  Das Projekt  Entwicklung eines Beispielprojektes  IDE Settings, Oberflächen (Servlets, JSF), Business Logic (EJB), Persistence (JPA), Java EE Patterns (CDI), Web Services (JAX-RS)  Die Produktion  Buildmanagement (maven, Jenkins)  Deployment einer Java EE Anwendung in der Cloud bei einem PaaS Anbieter
  8. 8. DAS PROJEKT Was wollen wir entwickeln?
  9. 9. DAS USER INTERFACE Die Java EE Spec definiert Standards für die Entwicklung von Webanwendungen (Web = UI).
  10. 10. USER INTERFACE statisch vs. dynamisch
  11. 11. USER INTERFACE - TECHNOLOGIEN Servlets – JSP – JSF
  12. 12. SERVLETS Die Basis aller Java EE Frontend Technologien! (inkl. Web Services)
  13. 13. ZENTRALE BEGRIFFE  Roundtrip  HTTP Methods (get, post, put, …)  Servlets  Thread Safe  Sessions
  14. 14. HTTP - ALLGEMEIN [Quelle: http://java2success.com/servlet/servlet-tutorial.jsp]
  15. 15. Why Servlet Become so popular [Quelle: http://java2success.com/servlet/servlet-tutorial.jsp]
  16. 16. Why Servlet Become so popular Drawbacks of Common Gateway Interface(CGI)  Unsecured  platform dependent  each request is processed on process based  no separation of presentation and business logic  response time is high Advantages of Servlet over Common Gateway Interface(CGI)  secured  platform independent  each request is run on separate thread, therefore faster than CGI  error handlig and security  response time is high [Quelle: http://java2success.com/servlet/servlet-tutorial.jsp]
  17. 17. SERVLET LEBENSZYKLUS Initialisierungsphase – Servicephase – Beendigungsphase init() – service() – destroy()
  18. 18. KONFIGURATION DES CONTAINERS Seit der Version 5 gilt im Java EE folgendes Softwaredesign Paradigma Convention over Configuration Details: http://de.wikipedia.org/wiki/Konvention_vor_Konfiguration Beispiel: Deployment Descriptor web.xml
  19. 19. SERVLETS Beispiele  Standalone Servlets  Servlets beim Verarbeiten von HTML Formularen  Redirect  Status Code  Serverseitige Umleitung (forward())  Server-Side-Include (include())
  20. 20. Session  Speicherplatz  jSessionId, Cockies  Timeout
  21. 21. SERVLETS Asynchron & Nonblocking I/O
  22. 22. WEBFILTER Praktisch bei Logging, Sicherheitsabfragen, Verschlüsselungen, Header-Manipulationen, …
  23. 23. WEBLISTENER Praktisch bei Session expired, aktives Monitoring, …
  24. 24. Potentielle Prüfungsfragen Sie entwickeln eine Java Servlet für eine Webanwendung. Von welcher Klasse erbt ihre Servlet-Klasse direkt? o javax.servlet.http.WebServlet o javax.servlet.http.HttpServlet o javax.servlet.GenericServlet Bei Eingabe der URL http://localhost:8080/MyTestApp/test in dem Browser soll als Antwort die aktuelle Uhrzeit zurück geliefert werden. Welche Methode überschreiben Sie? o protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException o protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException o protected void getTime(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
  25. 25. Potentielle Prüfungsfragen  Erklären Sie das Softwaredesign Pardigma „Convention over Configuration“ und geben Sie hierzu zwei Beispiele an.  Nennen Sie 3 Build Tools. (vorgezogen – kommt gleich ;-))
  26. 26. DAS PROGRAMM  Die Spec  Idee, Historie  Der App Server  Containerkonzept  Paketierung (JAR, WAR, EAR)  Marktüberblick  Das Projekt  Entwicklung eines Beispielprojektes  IDE Settings, Oberflächen (Servlets, JSF), Business Logic (EJB), Persistence (JPA), Java EE Patterns (CDI), Web Services (JAX-RS)  Die Produktion  Buildmanagement (maven, Jenkins)  Deployment einer Java EE Anwendung in der Cloud bei einem PaaS Anbieter
  27. 27. Produktion… build – test – package - deploy
  28. 28. Mavenize it… http://maven.apache.org/what-is-maven.html
  29. 29. maven maven lifecycle (convention over configuration) validate – compile – test – package (integration-test – verify – install –deploy) http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html
  30. 30. maven Beispiele: Console / IDE
  31. 31. DAS PROGRAMM  Die Spec  Idee, Historie  Der App Server  Containerkonzept  Paketierung (JAR, WAR, EAR)  Marktüberblick  Das Projekt  Entwicklung eines Beispielprojektes  IDE Settings, Oberflächen (Servlets, JSF), Business Logic (EJB), Persistence (JPA), Java EE Patterns (CDI), Web Services (JAX-RS)  Die Produktion  Buildmanagement (maven, Jenkins)  Deployment einer Java EE Anwendung in der Cloud bei einem PaaS Anbieter
  32. 32. Java Server Pages Kleiner Exkus…
  33. 33. JAVA SERVER PAGES  Dynamische HTML Seiten Java Code, spezielle Tag-Libraries und HTML gemischt auf einer Seite  Aus der Not geboren, da Servlets (die HTML Seiten publishen) sehr schwer wartbar sind  Die Idee war zuerst in Microsoft Welt da: ASP – Active Server Pages  Auch Vergleichbar mit PHP
  34. 34. ROUNDTRIP Quelle: http://www.hameister.org/JEE6WebClientJSPMitJSTL.html
  35. 35. FRONT CONTROLLER PATTERN http://de.wikipedia.org/wiki/Front_Controller http://www.oracle.com/technetwork/java/frontcontroller-135648.html http://www.jsptutorial.org/content/firstExampleIntro#innerLink3 http://piyvyas.blogspot.de/2013/01/j2ee-design-patterns-front-controller.html
  36. 36. SOFTWARE TEST Unit-Test Frameworks: jUnit, mockito, PowerMock
  37. 37. DAS PROGRAMM  Die Spec  Idee, Historie  Der App Server  Containerkonzept  Paketierung (JAR, WAR, EAR)  Marktüberblick  Das Projekt  Entwicklung eines Beispielprojektes  IDE Settings, Oberflächen (Servlets, JSF), Business Logic (EJB), Persistence (JPA), Java EE Patterns (CDI), Web Services (JAX-RS)  Die Produktion  Buildmanagement (maven, Jenkins)  Deployment einer Java EE Anwendung in der Cloud bei einem PaaS Anbieter
  38. 38. Buildserver / CI Server Wozu?
  39. 39. http://jenkins-ci.org/
  40. 40. Beispiel: Installation einer lokalen Jenkins Instanz
  41. 41. JENKINS SETUP  Start-Skript SET JENKINS_HOME=D:fhwsserversci start java -jar jenkins.war --httpPort=8181  Zusätzliche Plugins  GIT plugin  GitHub plugin  JaCoCo Plugin  ChuckNorris Plugin  Beispiel Code Coveage mit JaCoCo per cmd-line Jenkins clean org.jacoco:jacoco-maven-plugin:prepare-agent test -Dmaven.test.failure.ignore=true Console clean org.jacoco:jacoco-maven-plugin:prepare-agent test org.jacoco:jacoco-maven-plugin: report -Dmaven.test.failure.ignore=true oder direkt in pom.xml
  42. 42. DAS PROGRAMM  Die Spec  Idee, Historie  Der App Server  Containerkonzept  Paketierung (JAR, WAR, EAR)  Marktüberblick  Das Projekt  Entwicklung eines Beispielprojektes  IDE Settings, Oberflächen (Servlets, JSF), Business Logic (EJB), Persistence (JPA), Java EE Patterns (CDI), Web Services (JAX-RS)  Die Produktion  Buildmanagement (maven, Jenkins)  Deployment einer Java EE Anwendung in der Cloud bei einem PaaS Anbieter
  43. 43. BESTANDSAUFNAHME Wer hat bereits etwas in der Cloud deployed?  Sprache?  Anbieter  Datenbank?
  44. 44. http://www.cloudbees.com In Zukunft nur noch CI Server, kein App-Hosting
  45. 45. https://bitnami.com/ Read-to-run cloud templates for VMs, Amazon Cloud & Microsoft Azure

×