java ee - fhws 2014 - 2 setup / servlets
DESCRIPTION
Java EE - FHWS 2014 - 2 setup / servletsTRANSCRIPT
Java EEFull Stack for Business
Applications
setup
2014-10-18
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
2014-10-18
SETUP
2014-10-18
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
2014-10-18
IDE
NetBeans Eclipse IntelliJ IDEA
2014-10-18
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
2014-10-18
DAS PROJEKTWas wollen wir entwickeln?
2014-10-18
DAS USER INTERFACE
Die Java EE Spec definiert Standards für die Entwicklung von Webanwendungen (Web = UI).
2014-10-18
USER INTERFACE
statisch vs. dynamisch
2014-10-18
USER INTERFACE - TECHNOLOGIEN
Servlets – JSP – JSF
2014-10-18
SERVLETS
Die Basis aller Java EE Frontend Technologien!(inkl. Web Services)
2014-10-18
ZENTRALE BEGRIFFE
Roundtrip HTTP Methods (get, post, put, …) Servlets Thread Safe Sessions
2014-10-18
HTTP - ALLGEMEIN
[Quelle: http://java2success.com/servlet/servlet-tutorial.jsp]
2014-10-18
Why Servlet Become so popular
[Quelle: http://java2success.com/servlet/servlet-tutorial.jsp]
2014-10-18
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]
2014-10-18
SERVLET LEBENSZYKLUS
Initialisierungsphase – Servicephase – Beendigungsphase
init() – service() – destroy()
2014-10-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
2014-10-18
SERVLETS
Beispiele
Standalone Servlets Servlets beim Verarbeiten von HTML Formularen Redirect Status Code Serverseitige Umleitung (forward()) Server-Side-Include (include())
2014-10-18
Session Speicherplatz jSessionId, Cockies Timeout
2014-10-18
SERVLETSAsynchron & Nonblocking I/O
2014-10-18
WEBFILTERPraktisch bei Logging, Sicherheitsabfragen,
Verschlüsselungen, Header-Manipulationen, …
2014-10-18
WEBLISTENERPraktisch bei Session expired, aktives Monitoring, …
2014-10-18
Potentielle Prüfungsfragen
Sie entwickeln eine Java Servlet für eine Webanwendung. Von welcher Klasse erbt ihre Servlet-Klasse direkt?
o javax.servlet.http.WebServleto javax.servlet.http.HttpServleto 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, IOExceptiono protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOExceptiono protected void getTime(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
2014-10-18
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 ;-))
2014-10-18
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
2014-10-18
Produktion…
build – test – package - deploy
2014-10-18
Mavenize it…
http://maven.apache.org/what-is-maven.html
2014-10-18
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
2014-10-18
maven
Beispiele: Console / IDE
2014-10-18
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
2014-10-18
Java Server PagesKleiner Exkus…
2014-10-18
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
2014-10-18
ROUNDTRIP
Quelle: http://www.hameister.org/JEE6WebClientJSPMitJSTL.html
2014-10-18
FRONT CONTROLLER PATTERNhttp://de.wikipedia.org/wiki/Front_Controllerhttp://www.oracle.com/technetwork/java/frontcontroller-135648.htmlhttp://www.jsptutorial.org/content/firstExampleIntro#innerLink3http://piyvyas.blogspot.de/2013/01/j2ee-design-patterns-front-controller.html
2014-10-18
SOFTWARE TESTUnit-Test Frameworks: jUnit, mockito, PowerMock
2014-10-18
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
2014-10-18
Buildserver / CI ServerWozu?
2014-10-18
Beispiel:Installation einer lokalen Jenkins Instanz
2014-10-18
JENKINS SETUP Start-Skript
SET JENKINS_HOME=D:\fhws\servers\cistart 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
Jenkinsclean org.jacoco:jacoco-maven-plugin:prepare-agent test -Dmaven.test.failure.ignore=true
Consoleclean org.jacoco:jacoco-maven-plugin:prepare-agent test org.jacoco:jacoco-maven-plugin:report -Dmaven.test.failure.ignore=true
oder direkt in pom.xml
2014-10-18
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
2014-10-18
BESTANDSAUFNAHME
Wer hat bereits etwas in der Cloud deployed? Sprache?
Anbieter
Datenbank?
2014-10-18
http://www.cloudbees.com
In Zukunft nur noch CI Server, kein App-Hosting
2014-10-18
https://bitnami.com/
Read-to-run cloud templates forVMs, Amazon Cloud & Microsoft Azure
2014-10-18