java ee - fhws 2014 - 2 setup / servlets

45
Java EE Full Stack for Business Applications setup 2014-10- 18

Upload: matthias-reining

Post on 26-Jun-2015

83 views

Category:

Software


3 download

DESCRIPTION

Java EE - FHWS 2014 - 2 setup / servlets

TRANSCRIPT

Page 1: Java EE - FHWS 2014 - 2 setup / servlets

Java EEFull Stack for Business

Applications

setup

2014-10-18

Page 2: Java EE - FHWS 2014 - 2 setup / servlets

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

Page 3: Java EE - FHWS 2014 - 2 setup / servlets

SETUP

2014-10-18

Page 4: Java EE - FHWS 2014 - 2 setup / servlets

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

Page 5: Java EE - FHWS 2014 - 2 setup / servlets

IDE

NetBeans Eclipse IntelliJ IDEA

2014-10-18

Page 6: Java EE - FHWS 2014 - 2 setup / servlets

vanilla-ideNetBeans

https://netbeans.org/

2014-10-18

Page 7: Java EE - FHWS 2014 - 2 setup / servlets

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

Page 8: Java EE - FHWS 2014 - 2 setup / servlets

DAS PROJEKTWas wollen wir entwickeln?

2014-10-18

Page 9: Java EE - FHWS 2014 - 2 setup / servlets

DAS USER INTERFACE

Die Java EE Spec definiert Standards für die Entwicklung von Webanwendungen (Web = UI).

2014-10-18

Page 10: Java EE - FHWS 2014 - 2 setup / servlets

USER INTERFACE

statisch vs. dynamisch

2014-10-18

Page 11: Java EE - FHWS 2014 - 2 setup / servlets

USER INTERFACE - TECHNOLOGIEN

Servlets – JSP – JSF

2014-10-18

Page 12: Java EE - FHWS 2014 - 2 setup / servlets

SERVLETS

Die Basis aller Java EE Frontend Technologien!(inkl. Web Services)

2014-10-18

Page 13: Java EE - FHWS 2014 - 2 setup / servlets

ZENTRALE BEGRIFFE

Roundtrip HTTP Methods (get, post, put, …) Servlets Thread Safe Sessions

2014-10-18

Page 14: Java EE - FHWS 2014 - 2 setup / servlets

HTTP - ALLGEMEIN

[Quelle: http://java2success.com/servlet/servlet-tutorial.jsp]

2014-10-18

Page 15: Java EE - FHWS 2014 - 2 setup / servlets

Why Servlet Become so popular

[Quelle: http://java2success.com/servlet/servlet-tutorial.jsp]

2014-10-18

Page 16: Java EE - FHWS 2014 - 2 setup / servlets

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

Page 17: Java EE - FHWS 2014 - 2 setup / servlets

SERVLET LEBENSZYKLUS

Initialisierungsphase – Servicephase – Beendigungsphase

init() – service() – destroy()

2014-10-18

Page 18: Java EE - FHWS 2014 - 2 setup / servlets

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

Page 19: Java EE - FHWS 2014 - 2 setup / servlets

SERVLETS

Beispiele

Standalone Servlets Servlets beim Verarbeiten von HTML Formularen Redirect Status Code Serverseitige Umleitung (forward()) Server-Side-Include (include())

2014-10-18

Page 20: Java EE - FHWS 2014 - 2 setup / servlets

Session Speicherplatz jSessionId, Cockies Timeout

2014-10-18

Page 21: Java EE - FHWS 2014 - 2 setup / servlets

SERVLETSAsynchron & Nonblocking I/O

2014-10-18

Page 22: Java EE - FHWS 2014 - 2 setup / servlets

WEBFILTERPraktisch bei Logging, Sicherheitsabfragen,

Verschlüsselungen, Header-Manipulationen, …

2014-10-18

Page 23: Java EE - FHWS 2014 - 2 setup / servlets

WEBLISTENERPraktisch bei Session expired, aktives Monitoring, …

2014-10-18

Page 24: Java EE - FHWS 2014 - 2 setup / servlets

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

Page 25: Java EE - FHWS 2014 - 2 setup / servlets

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

Page 26: Java EE - FHWS 2014 - 2 setup / servlets

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

Page 27: Java EE - FHWS 2014 - 2 setup / servlets

Produktion…

build – test – package - deploy

2014-10-18

Page 28: Java EE - FHWS 2014 - 2 setup / servlets

Mavenize it…

http://maven.apache.org/what-is-maven.html

2014-10-18

Page 29: Java EE - FHWS 2014 - 2 setup / servlets

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

Page 30: Java EE - FHWS 2014 - 2 setup / servlets

maven

Beispiele: Console / IDE

2014-10-18

Page 31: Java EE - FHWS 2014 - 2 setup / servlets

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

Page 32: Java EE - FHWS 2014 - 2 setup / servlets

Java Server PagesKleiner Exkus…

2014-10-18

Page 33: Java EE - FHWS 2014 - 2 setup / servlets

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

Page 34: Java EE - FHWS 2014 - 2 setup / servlets

ROUNDTRIP

Quelle: http://www.hameister.org/JEE6WebClientJSPMitJSTL.html

2014-10-18

Page 36: Java EE - FHWS 2014 - 2 setup / servlets

SOFTWARE TESTUnit-Test Frameworks: jUnit, mockito, PowerMock

2014-10-18

Page 37: Java EE - FHWS 2014 - 2 setup / servlets

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

Page 38: Java EE - FHWS 2014 - 2 setup / servlets

Buildserver / CI ServerWozu?

2014-10-18

Page 39: Java EE - FHWS 2014 - 2 setup / servlets

http://jenkins-ci.org/

2014-10-18

Page 40: Java EE - FHWS 2014 - 2 setup / servlets

Beispiel:Installation einer lokalen Jenkins Instanz

2014-10-18

Page 41: Java EE - FHWS 2014 - 2 setup / servlets

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

Page 42: Java EE - FHWS 2014 - 2 setup / servlets

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

Page 43: Java EE - FHWS 2014 - 2 setup / servlets

BESTANDSAUFNAHME

Wer hat bereits etwas in der Cloud deployed? Sprache?

Anbieter

Datenbank?

2014-10-18

Page 44: Java EE - FHWS 2014 - 2 setup / servlets

http://www.cloudbees.com

In Zukunft nur noch CI Server, kein App-Hosting

2014-10-18

Page 45: Java EE - FHWS 2014 - 2 setup / servlets

https://bitnami.com/

Read-to-run cloud templates forVMs, Amazon Cloud & Microsoft Azure

2014-10-18