SlideShare ist ein Scribd-Unternehmen logo
JEE – Was ist das? ,[object Object]
Agenda – Teil 1 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Agenda – Teil 2 ,[object Object],[object Object]
JEE – Was ist das? ,[object Object]
Java Platform ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Java Platform Editions (1) ,[object Object],[object Object],[object Object],[object Object]
Java Platform Editions (2) ,[object Object],[object Object],[object Object],[object Object]
Java Platform Editions (3) ,[object Object],[object Object],[object Object],[object Object],[object Object]
History of Product Naming (1) Dec.1999 Java 2 EE, J2EE Java 2 Platform, Enterprise Edition  1.0 2000 1.2 Aug.2001 1.3 Nov.2003 1.4 May 2006 Java EE, JEE Java Platform, Enterprise Edition 5 Enterprise 1996 (1.0) Java Java 1.0 .. 1.1.x J2SE Java 2 Platform, Standard Edition 1.2 .. 1.4.2 Sept.2004 5 Dec.2006 Java SE, JSE Java Platform, Standard Edition 6 Standard Year Abbr. Naming Version Edition
History of Product Naming (2) ,[object Object],[object Object],[object Object],[object Object],[object Object]
Product- and Developer version ,[object Object],[object Object],[object Object],[object Object]
JEE – Was ist das? ,[object Object]
Java SE 6 Platform at a Glance
JRE and JDK ,[object Object],[object Object],[object Object],[object Object]
Java SE Runtime Environment (JRE) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Java SE Development Kit (JDK) ,[object Object]
Java Language - Eigenschaften ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
JEE – Was ist das? ,[object Object]
JEE-Spezifikation ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Application-Server (1) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Application Server (2) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Application Server (3) ,[object Object],[object Object],[object Object],Geronimo (Apache) Application Server 10g (Oracle) JOnAS (ObjectWeb) Websphere (IBM) JBoss (JBoss) Enterprise Server (Borland) Java System Application Server bzw. Glassfish (SUN, Referenzimpl.d.JEE-Spez.) WebLogic (BEA) frei kommerziell
JEE – Was ist das? ,[object Object],[object Object]
Schichtenmodelle ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Zwei-Schichten-Modell (Allgemein) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Drei-Schichten-Modell (Allgemein) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Vier-Schichten-Modell (Allgemein) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Umsetzung der Schichten-Modelle in die JEE-Architektur (Einführung JEE-Terminologie)
Sonderfall: Zweieinhalb-Schichten-Modell ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Typische JEE - Architektur
JEE – Was ist das? ,[object Object],[object Object]
Web-Container (1) ,[object Object],[object Object],[object Object],[object Object],[object Object]
Web-Container (2) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
JEE – Was ist das? ,[object Object],[object Object],[object Object]
Servlets ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Servlets - Beispiel (1)
Servlets - Beispiel (2)
Servlets - Wichigste Methoden ,[object Object],Keine Impl. UNLINK Keine Impl. LINK doOption() Abfrage zulässiger Request-Typen für spezifiziertes Dokument  OPTION doTrace() Zum Protokoll-Debugging  TRACE doDelete() Client fordert Löschen eines Dokuments auf dem Server an  DELETE doPut() Client fordert Ablage von Dokumenten auf Server an  PUT doHead() Client fordert nur den Response-Header, nicht jedoch das resultierende Dokument ab  HEAD doPost() Anforderung einhält zusätzliche Daten vom Client, z.B. Formulare  POST doGet() Anforderung einer Ressource, z.B. einer Webseite  GET Servlet-Methode Verwendung Request
Servlets - Lebenszyklus Servlet- code Servlet Zeit Servlet- code 1.HTTP-Request/-Response HTTP-Request/-Responses 2.initialisieren init() 3.Anfragen bearbeiten service(), doGet(), ... 4.zerstören destroy()) Web-Container 1.laden u. instanziieren class-Datei vom: - lokalen Dateisystem - entfernten Dateisystem - Netzwerkservice Kursiv : Servlet-Methoden
Servlets - Weiterführende Themen ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
JEE – Was ist das? ,[object Object],[object Object],[object Object]
JavaServer Pages (1) ,[object Object],[object Object],[object Object],[object Object]
JavaServer Pages - Beispiel
JavaServer Pages (2) ,[object Object],[object Object],[object Object]
Erzeugen eines Ad-Hoc-Servlets aus einer JSP ,[object Object],[object Object]
Generierter Servlet-Code
JavaServer Pages - Bausteine ,[object Object],[object Object],<%   Java-Code   %>   Scriplets ,[object Object],[object Object],<%=   Java-Ausdruck   %>   Ausdrücke ,[object Object],[object Object],[object Object],<%!   Java-Code   %>   Deklarationen ,[object Object],<%--  Kommentartext   --%>   Kommentare
JavaServer Pages - Lebenszyklus ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
JavaServer Pages - Weiterführende Themen ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Vergleich: Servlets - JavaServer Pages ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
JEE – Was ist das? ,[object Object],[object Object],[object Object]
Tag Libraries (1) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Tag Libraries (2) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Tag Libraries – JSP mit Tag (Beispiel)
Tag Libraries - Implementierung ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Tag Libraries - Tag Handler Methoden
Tag Libraries – Tag Handler (Beispiel)
Tag Libraries – Tag Library Descriptor (Beispiel)
Tag Libraries – Weiterführende Themen ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
JEE – Was ist das? ,[object Object],[object Object],[object Object]
Struts ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Struts - Was ist ein Framework? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Struts – Warum ein Framework benutzen? ,[object Object],[object Object],[object Object],[object Object],[object Object]
Struts - Model-View-Controller (MVC) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Struts - MVC Model 1 Architektur ,[object Object],[object Object],[object Object],[object Object],[object Object]
Struts - MVC Model 2 Architektur ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
JavaBeans ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Struts – Komponenten (1)
Struts – Komponenten (2) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Struts – Komponenten (3) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Struts – Komponenten (4) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Struts – Komponenten (5) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Struts - Ablauf eines Request (1)
Struts - Ablauf eines Requests (2) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
JEE – Was ist das? ,[object Object],[object Object],[object Object]
Faces  ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Faces - Grundidee (1) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Faces - Grundidee (2) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Faces - Grundidee (3)
Faces - Ablauf eines Requests (1)
Faces - Ablauf eines Requests (2) ,[object Object],[object Object],[object Object],[object Object],[object Object]
Faces - Weiterführende Themen ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
JEE – Was ist das? ,[object Object],[object Object],[object Object]
Andere Frameworks Ruby on Rails (1) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Andere Frameworks Ruby on Rails (2) ,[object Object],[object Object]
Andere Frameworks Ruby on Rails (3) ,[object Object],[object Object],[object Object]
Andere Frameworks Groovy on Grails ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Andere Frameworks ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
JEE – Was ist das? Ende Teil 1

Weitere ähnliche Inhalte

Was ist angesagt?

An Introduction to Gradle for Java Developers
An Introduction to Gradle for Java DevelopersAn Introduction to Gradle for Java Developers
An Introduction to Gradle for Java DevelopersKostas Saidis
 
Introduction to the SharePoint Client Object Model and REST API
Introduction to the SharePoint Client Object Model and REST APIIntroduction to the SharePoint Client Object Model and REST API
Introduction to the SharePoint Client Object Model and REST APIRob Windsor
 
Developing RESTful Web APIs with Python, Flask and MongoDB
Developing RESTful Web APIs with Python, Flask and MongoDBDeveloping RESTful Web APIs with Python, Flask and MongoDB
Developing RESTful Web APIs with Python, Flask and MongoDBNicola Iarocci
 
스프링5 웹플럭스와 테스트 전략
스프링5 웹플럭스와 테스트 전략스프링5 웹플럭스와 테스트 전략
스프링5 웹플럭스와 테스트 전략if kakao
 
Retrofit library for android
Retrofit library for androidRetrofit library for android
Retrofit library for androidInnovationM
 
Introduction to node.js
Introduction to node.jsIntroduction to node.js
Introduction to node.jsDinesh U
 
Reactive programming with rx java
Reactive programming with rx javaReactive programming with rx java
Reactive programming with rx javaCongTrung Vnit
 
Testing with JUnit 5 and Spring
Testing with JUnit 5 and SpringTesting with JUnit 5 and Spring
Testing with JUnit 5 and SpringVMware Tanzu
 
Introduction to WordPress REST API
Introduction to WordPress REST APIIntroduction to WordPress REST API
Introduction to WordPress REST APISimone D'Amico
 
Introdução ao Spring Framework
Introdução ao Spring FrameworkIntrodução ao Spring Framework
Introdução ao Spring FrameworkNatanael Fonseca
 
Build web apps with react js
Build web apps with react jsBuild web apps with react js
Build web apps with react jsdhanushkacnd
 
Spring Boot and REST API
Spring Boot and REST APISpring Boot and REST API
Spring Boot and REST API07.pallav
 
Easy tests with Selenide and Easyb
Easy tests with Selenide and EasybEasy tests with Selenide and Easyb
Easy tests with Selenide and EasybIakiv Kramarenko
 
SpringOne Tour: Spring Boot 3 and Beyond
SpringOne Tour: Spring Boot 3 and BeyondSpringOne Tour: Spring Boot 3 and Beyond
SpringOne Tour: Spring Boot 3 and BeyondVMware Tanzu
 
Android crash debugging
Android crash debuggingAndroid crash debugging
Android crash debuggingAshish Agrawal
 

Was ist angesagt? (20)

Nodejs vatsal shah
Nodejs vatsal shahNodejs vatsal shah
Nodejs vatsal shah
 
An Introduction to Gradle for Java Developers
An Introduction to Gradle for Java DevelopersAn Introduction to Gradle for Java Developers
An Introduction to Gradle for Java Developers
 
Introduction to the SharePoint Client Object Model and REST API
Introduction to the SharePoint Client Object Model and REST APIIntroduction to the SharePoint Client Object Model and REST API
Introduction to the SharePoint Client Object Model and REST API
 
Developing RESTful Web APIs with Python, Flask and MongoDB
Developing RESTful Web APIs with Python, Flask and MongoDBDeveloping RESTful Web APIs with Python, Flask and MongoDB
Developing RESTful Web APIs with Python, Flask and MongoDB
 
스프링5 웹플럭스와 테스트 전략
스프링5 웹플럭스와 테스트 전략스프링5 웹플럭스와 테스트 전략
스프링5 웹플럭스와 테스트 전략
 
Retrofit library for android
Retrofit library for androidRetrofit library for android
Retrofit library for android
 
Introduction to NodeJS
Introduction to NodeJSIntroduction to NodeJS
Introduction to NodeJS
 
Introduction to node.js
Introduction to node.jsIntroduction to node.js
Introduction to node.js
 
Vue JS Intro
Vue JS IntroVue JS Intro
Vue JS Intro
 
Reactive programming with rx java
Reactive programming with rx javaReactive programming with rx java
Reactive programming with rx java
 
Spring 2.5
Spring 2.5Spring 2.5
Spring 2.5
 
Testing with JUnit 5 and Spring
Testing with JUnit 5 and SpringTesting with JUnit 5 and Spring
Testing with JUnit 5 and Spring
 
Introduction to WordPress REST API
Introduction to WordPress REST APIIntroduction to WordPress REST API
Introduction to WordPress REST API
 
Introdução ao Spring Framework
Introdução ao Spring FrameworkIntrodução ao Spring Framework
Introdução ao Spring Framework
 
Spring Boot
Spring BootSpring Boot
Spring Boot
 
Build web apps with react js
Build web apps with react jsBuild web apps with react js
Build web apps with react js
 
Spring Boot and REST API
Spring Boot and REST APISpring Boot and REST API
Spring Boot and REST API
 
Easy tests with Selenide and Easyb
Easy tests with Selenide and EasybEasy tests with Selenide and Easyb
Easy tests with Selenide and Easyb
 
SpringOne Tour: Spring Boot 3 and Beyond
SpringOne Tour: Spring Boot 3 and BeyondSpringOne Tour: Spring Boot 3 and Beyond
SpringOne Tour: Spring Boot 3 and Beyond
 
Android crash debugging
Android crash debuggingAndroid crash debugging
Android crash debugging
 

Ähnlich wie Introduction to JEE

.NET Core, .NET Standard & ASP.NET Core - Eine Übersicht
.NET Core, .NET Standard & ASP.NET Core - Eine Übersicht.NET Core, .NET Standard & ASP.NET Core - Eine Übersicht
.NET Core, .NET Standard & ASP.NET Core - Eine ÜbersichtJürgen Gutsch
 
Article - JDK 8 im Fokus der Entwickler
Article - JDK 8 im Fokus der EntwicklerArticle - JDK 8 im Fokus der Entwickler
Article - JDK 8 im Fokus der EntwicklerWolfgang Weigend
 
Der Application Server ist tot (?) - es lebe Jakarta EE!
Der Application Server ist tot (?) - es lebe Jakarta EE!Der Application Server ist tot (?) - es lebe Jakarta EE!
Der Application Server ist tot (?) - es lebe Jakarta EE!gedoplan
 
Jalimo Slides Linuxtag2007
Jalimo Slides Linuxtag2007Jalimo Slides Linuxtag2007
Jalimo Slides Linuxtag2007smancke
 
Neue Features der Java EE 6
Neue Features der Java EE 6Neue Features der Java EE 6
Neue Features der Java EE 6GFU Cyrus AG
 
Java EE 7 - Enterprise-Anwendungen ohne Ballast
Java EE 7 - Enterprise-Anwendungen ohne BallastJava EE 7 - Enterprise-Anwendungen ohne Ballast
Java EE 7 - Enterprise-Anwendungen ohne Ballastgedoplan
 
Java EE Microservices ohne Server
Java EE Microservices ohne ServerJava EE Microservices ohne Server
Java EE Microservices ohne Servergedoplan
 
Artikel eHealthcare Kompendium: Service Orientierte Architekturen für Healthcare
Artikel eHealthcare Kompendium: Service Orientierte Architekturen für HealthcareArtikel eHealthcare Kompendium: Service Orientierte Architekturen für Healthcare
Artikel eHealthcare Kompendium: Service Orientierte Architekturen für HealthcarePeter Affolter
 
Java EE 6/7 - Enterprise-Anwendungsentwicklung leicht gemacht
Java EE 6/7 - Enterprise-Anwendungsentwicklung leicht gemachtJava EE 6/7 - Enterprise-Anwendungsentwicklung leicht gemacht
Java EE 6/7 - Enterprise-Anwendungsentwicklung leicht gemachtgedoplan
 
Wie Azure Jakarta EE Nutzt
Wie Azure Jakarta EE NutztWie Azure Jakarta EE Nutzt
Wie Azure Jakarta EE NutztEdward Burns
 
Rapid Deployment mit JomaSoft VDCF
Rapid Deployment mit JomaSoft VDCFRapid Deployment mit JomaSoft VDCF
Rapid Deployment mit JomaSoft VDCFJomaSoft
 
Die besten 10 JavaScript Frameworks für moderne Web-Apps
Die besten 10 JavaScript Frameworks für moderne Web-AppsDie besten 10 JavaScript Frameworks für moderne Web-Apps
Die besten 10 JavaScript Frameworks für moderne Web-AppsDieter Ziegler
 
JSUG - OSGi by Michael Greifeneder
JSUG - OSGi by Michael GreifenederJSUG - OSGi by Michael Greifeneder
JSUG - OSGi by Michael GreifenederChristoph Pickl
 
Java EE 7 - Enterprise-Anwendungen ohne Ballast
Java EE 7 - Enterprise-Anwendungen ohne BallastJava EE 7 - Enterprise-Anwendungen ohne Ballast
Java EE 7 - Enterprise-Anwendungen ohne Ballastgedoplan
 
Roadshow: Einstieg in die Hybrid-App Entwicklung mit dem Intel XDK und Apache...
Roadshow: Einstieg in die Hybrid-App Entwicklung mit dem Intel XDK und Apache...Roadshow: Einstieg in die Hybrid-App Entwicklung mit dem Intel XDK und Apache...
Roadshow: Einstieg in die Hybrid-App Entwicklung mit dem Intel XDK und Apache...Gregor Biswanger
 

Ähnlich wie Introduction to JEE (20)

.NET Core, .NET Standard & ASP.NET Core - Eine Übersicht
.NET Core, .NET Standard & ASP.NET Core - Eine Übersicht.NET Core, .NET Standard & ASP.NET Core - Eine Übersicht
.NET Core, .NET Standard & ASP.NET Core - Eine Übersicht
 
Die Java Plattform Strategie
Die Java Plattform StrategieDie Java Plattform Strategie
Die Java Plattform Strategie
 
Article - JDK 8 im Fokus der Entwickler
Article - JDK 8 im Fokus der EntwicklerArticle - JDK 8 im Fokus der Entwickler
Article - JDK 8 im Fokus der Entwickler
 
OC|Webcast "Java heute" vom 24.08.2021
OC|Webcast "Java heute" vom 24.08.2021OC|Webcast "Java heute" vom 24.08.2021
OC|Webcast "Java heute" vom 24.08.2021
 
JavaFX goes open source
JavaFX goes open sourceJavaFX goes open source
JavaFX goes open source
 
Der Application Server ist tot (?) - es lebe Jakarta EE!
Der Application Server ist tot (?) - es lebe Jakarta EE!Der Application Server ist tot (?) - es lebe Jakarta EE!
Der Application Server ist tot (?) - es lebe Jakarta EE!
 
Jalimo Slides Linuxtag2007
Jalimo Slides Linuxtag2007Jalimo Slides Linuxtag2007
Jalimo Slides Linuxtag2007
 
Neue Features der Java EE 6
Neue Features der Java EE 6Neue Features der Java EE 6
Neue Features der Java EE 6
 
Java EE 7 - Enterprise-Anwendungen ohne Ballast
Java EE 7 - Enterprise-Anwendungen ohne BallastJava EE 7 - Enterprise-Anwendungen ohne Ballast
Java EE 7 - Enterprise-Anwendungen ohne Ballast
 
Java EE Microservices ohne Server
Java EE Microservices ohne ServerJava EE Microservices ohne Server
Java EE Microservices ohne Server
 
Artikel eHealthcare Kompendium: Service Orientierte Architekturen für Healthcare
Artikel eHealthcare Kompendium: Service Orientierte Architekturen für HealthcareArtikel eHealthcare Kompendium: Service Orientierte Architekturen für Healthcare
Artikel eHealthcare Kompendium: Service Orientierte Architekturen für Healthcare
 
Java EE 6/7 - Enterprise-Anwendungsentwicklung leicht gemacht
Java EE 6/7 - Enterprise-Anwendungsentwicklung leicht gemachtJava EE 6/7 - Enterprise-Anwendungsentwicklung leicht gemacht
Java EE 6/7 - Enterprise-Anwendungsentwicklung leicht gemacht
 
Wie Azure Jakarta EE Nutzt
Wie Azure Jakarta EE NutztWie Azure Jakarta EE Nutzt
Wie Azure Jakarta EE Nutzt
 
Rapid Deployment mit JomaSoft VDCF
Rapid Deployment mit JomaSoft VDCFRapid Deployment mit JomaSoft VDCF
Rapid Deployment mit JomaSoft VDCF
 
OC|Webcast "Java heute" vom 28.09.2021
OC|Webcast "Java heute" vom 28.09.2021OC|Webcast "Java heute" vom 28.09.2021
OC|Webcast "Java heute" vom 28.09.2021
 
Die besten 10 JavaScript Frameworks für moderne Web-Apps
Die besten 10 JavaScript Frameworks für moderne Web-AppsDie besten 10 JavaScript Frameworks für moderne Web-Apps
Die besten 10 JavaScript Frameworks für moderne Web-Apps
 
JSUG - OSGi by Michael Greifeneder
JSUG - OSGi by Michael GreifenederJSUG - OSGi by Michael Greifeneder
JSUG - OSGi by Michael Greifeneder
 
Java EE 7 - Enterprise-Anwendungen ohne Ballast
Java EE 7 - Enterprise-Anwendungen ohne BallastJava EE 7 - Enterprise-Anwendungen ohne Ballast
Java EE 7 - Enterprise-Anwendungen ohne Ballast
 
Roadshow: Einstieg in die Hybrid-App Entwicklung mit dem Intel XDK und Apache...
Roadshow: Einstieg in die Hybrid-App Entwicklung mit dem Intel XDK und Apache...Roadshow: Einstieg in die Hybrid-App Entwicklung mit dem Intel XDK und Apache...
Roadshow: Einstieg in die Hybrid-App Entwicklung mit dem Intel XDK und Apache...
 
IceFaces In Randi2 Action
IceFaces In Randi2 ActionIceFaces In Randi2 Action
IceFaces In Randi2 Action
 

Introduction to JEE