INFITT01 - Internettechnologie WEEK 8



Vergelijkbare documenten
Zelftest Java EE Architectuur

Technisch Ontwerp W e b s i t e W O S I

Session Beans.

Applicatie-Architecturen

INFITT01 Internettechnologie WEEK 2

Tentamen Object Georiënteerd Programmeren TI januari 2013, Afdeling SCT, Faculteit EWI, TU Delft

Correspondentie inzake overnemen of reproductie kunt u richten aan:

HOGESCHOOL ROTTERDAM / CMI

Zelftest Java concepten

Capita Selecta Design Patterns voor administratieve applicaties

IMP Uitwerking week 13

De dynamiek van Middleware (in het HBO onderwijs)

Correspondentie inzake overnemen of reproductie kunt u richten aan:

Applicatie-Architecturen

Java op het Oracle 9i platform

Unit testen van EJB's. Koert Zeilstra - iprofs

Modelleren en Programmeren

JSF webapplicatie performance

Practicum Orientatie op Webserver

User interface ontkoppeling

JBoss Administration. Inhoud

JavaServer Faces 2.1

Stichting NIOC en de NIOC kennisbank

Inhoudsopgave. Hoofdstuk 1.Inleiding...3

Opleidingen Informatica, Radboud Universiteit Nijmegen Gymnasium, Sittard

Deployen? Natuurlijk!

Correspondentie inzake overnemen of reproductie kunt u richten aan:

Stappenplannen MailPlus SOAP API

Gebruik van cryptografie voor veilige jquery/rest webapplicaties. Frans van Buul Inter Access

Acht stappen voor JSF

TECHNICAL DESIGN DOCUMENT

Tentamen Object Georiënteerd Programmeren TI oktober 2014, Afdeling SCT, Faculteit EWI, TU Delft

Modelleren en Programmeren

Oracle Portal in een Service-Oriented Architecture (SOA) ir. Jeroen F. van Schaijk Senior Consultant Emerging Technologies

Open SQL Server Management Studio en log in als Administator. Je ziet dan wat je in figuur 2.1 ziet.

Databanken en webtoepassingen in Java

NHibernate als ORM oplossing

emaxx Systeem eisen ManagementPortaal voor de ZakenMagazijn database

Automatisch Testen. Customer Business Lunch. 6 november Netherlands Germany Switzerland Serbia

Curriculum Vitae. Django Bestenbreur. Senior Enterprise Java Developer

Curriculum Vitae. Django Bestenbreur. Senior Enterprise Java Developer

Enterprise. RESTful Webservices. serieus alternatief voor SOAP?

Dynamische Websites. Week 6. vrijdag 25 oktober 13

4 ASP.NET MVC. 4.1 Controllers

Technisch ontwerp. Projectteam 6. Project "Web Essentials" 02 april Versie 2.1.0

Programmeren in Java 3

Onderzoek Framewerk. Standaard framewerk webapplicatie. Afstuderen. Bert Gritter Rob Juurlink 2004

Service Data Objects. Wat is SDO? Dynamic data API

Organiseer uw verschillende SOAP services in één scenario

Je gaat nu een Zend-Project maken in de map C:/wamp/www (de document root van de webserver) met behulp van Zend Tool..

Objectgeorïenteerd werken is gebaseerd op de objecten die door het systeem gemanipuleerd worden.

Object Oriented Programming

DataFlex 19.0 SQL Server

Koppeling met een database

Klassen en interface worden gedeclareerd in een andere klasse/interface. Vermeiden Altijd static

Zelftest Programmeren in Java

The OSI Reference Model

Datatypes Een datatype is de sort van van een waarde van een variabele, veel gebruikte datatypes zijn: String, int, Bool, char en double.

Dynamische webapplicaties in Java

Sparse columns in SQL server 2008

Databanken en webtoepassingen in Java

Voorbeeldtentamen Inleiding programmeren (IN1608WI), Oktober 2003, , Technische Universiteit Delft, Faculteit EWI, Afdeling 2.

TaskCentre Web Service Connector: Creëren van requests in Synergy Enterprise

Portals & Open Source

XML Web Services of.net Remoting? W ANNEER GEBRUIK JE WELKE TECHNOLOGIE VOOR DE AANROEP VAN REMOTE SERVICES

Client Applicaties (Browser+Desktop) http/https. Apache Webserver. http proxy. WMS WFS Adm SLD Tomcat. Tomcat. GeoServer. PostGIS


Java ontwikkelaars: zet de Database aan het werk

Leergang Java Development

Modelleren en Programmeren

SYNTRA-WEST. Initiatiecursus JAVA. Deel

Een website maken met databasetoegang.

Copyright IBS Nieuwbouw. Vereenvoudigd en versnelt Java ontwikkeling. Huub Cleutjens

Weblogic 10.3 vs IAS

public Paneel() { knop = new JButton( Klik ); knop.addactionlistener( new KnopHandler() ); tekstvak = new JTextField(10); add(knop); add(tekstvak);

Oracle Application Server Portal Oracle Gebruikersgroep Holland Oktober 2003

Universiteit van Amsterdam FNWI. Voorbeeld van tussentoets Inleiding programmeren

Samengaan van Geo-informatie en Service Oriëntatie

Programmeren in Java les 3

Master Class Java Accelerated

Zelftest Database applicatieprogrammering met JDBC

Dit kan gebruikt worden in zowel een ASP.NET web applicatie als een desktop applicatie.

Curriculum Vitae E. H. Java/JEE Docent

Handleiding voor het installeren van Tomcat7

Aquo Domeintabellen Services (Aquo DS) Handleiding Webservice

Tinus Plotseling MySQL

F r a m e w o r k s. LinkWorks

Curriculum Vitae. Burgerlijk ingenieur in de computerwetenschappen

Kies File>New>Blank Page>PHP. Je kunt eventueel nog een stylesheet koppelen. Definieer nu eerst een site! Dat betekent: Site>New Site

J2EE. Applicatie met Enterprise Java Beans. Middleware specialisatiethema Rob Juurlink IID / 2004

Documentatie Distributed Services Enterprise Service Bus

Les 2 Eenvoudige queries

WebUntis 2014 Instructies basisinstallatie

SAMENVATTING CURRICULUM VITAE J. Andries

ODS: Open Directory service. Wat is ODS?

Inhoud eindtoets. Eindtoets. Introductie 2. Opgaven 3. Terugkoppeling 9

Adres: Stratendries Sint-Martens-Lierde Tel: 0485/ Geboorte Datum: 15/01/1983 Nationaliteit: Website

Modelleren en Programmeren

return an ; } private I L i s t l i j s t ;

Transcriptie:

INFITT01 - Internettechnologie WEEK 8

Programma Databases (JDBC, JNDI, ORM, JPA) MVC & Spring/Struts EJB

Databases Veel web applicaties moeten informatie over langere tijd op kunnen slaan. Een voor de hand liggende manier is om deze informatie in een database op te slaan. Een aantal: Oracle SQLServer MySql Postgres HSQL McKOI Daffodil Firebird

JDBC...wat is dat(1)? Om een database vanuit een webapp te kunnen benaderen heb je een jdbc driver nodig. Dit is een jar welke in het CLASSPATH moeten komen te staan van de webserver, bijv de WEB-INF/lib of, in geval van Tomcat, in de CATALINA_HOME/lib map. Dan is de driver voot alle webapps beschikbaar

JDBC...wat is dat(2)? public class TestDBOracle { public static void main(string[] args) throws ClassNotFoundException, SQLException { Class.forName("oracle.jdbc.driver.OracleDriver"); String url = "jdbc:oracle:thin:@myhost:1521:xe"; Connection conn = DriverManager.getConnection(url,"scott","tiger"); conn.setautocommit(false); Statement stmt = conn.createstatement(); ResultSet rset = stmt.executequery("select BANNER from SYS.V_$VERSION"); while (rset.next()) { System.out.println (rset.getstring(1)); } stmt.close(); System.out.println ("Ok."); } }

JDBC...wat is dat(3)? Er zijn een aantal nadelen aan het gebruik van een directe JDBC connectie: Gebruikersnaam/wachtwoord opgeslagen in iedere web app (bijv. als servlet init parameter) die een database gebruikt. Programmatisch beheren van database connecties. Wat je wilt is een 'pool' waarin database connecties aanwezig zijn. Als je er een nodig heb dan vraag je er een. De connectie wordt automatisch teruggezet in de pool als je 'm niet meer nodig hebt.

JNDI...wat is dat(1)? JNDI = Java Naming & Directory Interface Het is een collectie interfaces/classes welke een soort telefoonboek vormen binnen een webserver.

JNDI...wat is dat(2)? De essentie van JNDI i.c.m. databases is: 1. Koppel een datasource binnen bijv. Tomcat aan een logische 'JNDI' naam, meestal iets als 'jdbc/klanten' 2. Vanuit een servlet kun je een connectie verkrijgen middels een 'JNDI' aanroep. 3. Een pool manager binnen Tomcat regelt het openen en sluiten van database connecties. 4. Het handige van JNDI is dat je niet hoeft te weten als programmeur waar bijv. de database staat...dat is transparant voor je.

ORM/JPA...wat is dat(1)? De manier waar op relationele databases en Java met data om gaan verschilt sterk. Relationele database: data wordt in tabellen/rijen opgeslagen. Java: Data wordt als object met attributen opgeslagen/weergeven. Probleem: hoe kun je rijen 'mappen' naar objecten? Dit heet Object Relationale Mapping

ORM/JPA...wat is dat(2)? Zonder een mapping is het in Java lastig werken met bijv. een java.sql.resultset. Dit is in feite een tweedimensionale array waar je vervolgens door heen moet 'loopen' om de juiste data te vinden. Wat je wilt is dat je na een database query een 'Customer' object terug krijgt ipv een ResultSet met klant data, bijv: Customer cust = dbservice.getcustomer(1);

ORM/JPA...wat is dat(3)? JPA is een Java Specificatie die beschrijft hoe je objecten kunt 'mappen' op rijen in tabellen. Een centrale class binnen JPA is de 'javax.persistence.entitymanager'. Hibernate is een implementatie van JPA. Meer info: http://download.oracle.com/javaee/5/tutorial/doc/bnbpz.html

MVC...wat is dat(1)? MVC staat voor Model-View-Controller en is een Design Pattern. In principe zou je een hele webapp in een servlet/jsp kunnen bouwen...ja...dat kan...is het handig? Nou nee... MVC wil zeggen dat je een applicatie (web, fat client) onderverdeeld in een data deel (Model) en layout deel (View) en een verbindend deel tussen deze twee (Controller).

MVC...wat is dat(2)? Hoe kun je dit gebruiken binnen een webapp? Een paar vuistregels: Gebruik JSP voor de View. Een JSP er alleen om de data te tonen en haalt nooit zelf data op uit bijv. een database. Logica (EL, geen java)in een JSP is er alleen tbv layout. Servlets worden gebruikt als Controller. Zij delegeren het ophalen van data voor de view naar een andere class welke de data op haalt. De opgehaalde data wordt bijv. in het request gezet tbv de View. POJO classes (Java Beans) fungeren als Model. Data wordt opgehaald, bewerkt en opgeslagen in Java Beans door bijv. Service classes.

MVC...wat is dat(3)?

MVC...wat is dat(4)? De gele Controller is een Service class welke een bepaalde interface implementeert, bijvoorbeeld een interface 'KlantService' met een methode om alle klanten op te halen. Maak vervolgens een class die deze interface implementeert. Zo bevorder je 'loose coupling' (en dat is goed). Je kunt nu je implementatie veranderen zonder de aanroepende classes te hoeven veranderen In aanroepende servlet: KlantService ks = new KlantServiceImpl(); Customer cust = ks.getcustomer(1); KlantServiceImpl kan nu makkelijk vervangen worden door een andere class die KlantService implementeert

MVC...wat is dat(5)? Er zijn frameworks die helpen het MVC paradigma te implementeren. Struts (gedateerd) Spring (complex, wordt veel gebruikt) Wicket JSF

EJB...wat is dat(1)? Tot nu toe zijn alleen servlet containers aan bod gekomen. Servlet containers zijn handig maar kunnen beperkingen hebben in zware Enterprise applicaties. Dan kan het gebruik van een applicatie server handig zijn. In een applicatie server kun je (E)nterprise (J)ava (B)eans gebruiken om business logica uit te voeren.

EJB...wat is dat(2)?

EJB...wat is dat(3)? Applicatie Servers moeten volgens de specificaties standaard een aantal diensten leveren die niet standaard door een servlet container geleverd worden zoals bijv: JNDI JMS JDBC RMI Security Transactie management

EJB...wat is dat(4)? Een voorbeeld EJB3 bean. Deze bean wordt gedeployed in een applicatie server en zou vanuit een servlet container op een andere machine aangeroepen kunnen worden via JNDI. @Stateless public class CalculatorImpl implements CalculatorRemote, CalculatorLocal { public int sum(int add1, int add2) { return add1+add2; } public int multiply(int mul1, int mul2) { return mul1*mul2; } }

EJB...wat is dat(5)? Een aantal applicatie servers: Jonas Glassfish Oracle Weblogic JBoss Geronimo OpenEJB