J2EE for begyndere. Denne artikel introducerer J2EE. Den fortæller lidt om de forskellige teknologier i J2EE og kommer med små simple eksempler.
|
|
- Sara Lauritzen
- 6 år siden
- Visninger:
Transkript
1 Denne guide er oprindeligt udgivet på Eksperten.dk J2EE for begyndere Denne artikel introducerer J2EE. Den fortæller lidt om de forskellige teknologier i J2EE og kommer med små simple eksempler. Den forudsætter kendskab til Java og generel system udvikling. Skrevet den 11. Feb 2009 af arne_v I kategorien Programmering / J2EE Historie: V1.0-21/02/ original V1.1 - tilføj et par referencer og en note om det nye navn JEE Hvad er J2EE J2EE består af 4 hoved komponenter: servlets JSP (Java Server Pages) EJB (Enterprise Java Beans) JCA (Java Connector Architecture) Servlets er rene Java kode moduler i stil med ISAPI og NSAPI. JSP er HTML sider med embbeded kode ligesom ASP og PHP (det er bare Java kode i <% %>) EJB er forretnings komponenter. JCA er en standard for forbindelser til eksterne systemer. Der eksisterer følgende sammenhæng mellem versionerne af de forskellige teknologier: J2EE 1.2 = servlet JSP EJB 1.1 J2EE 1.3 = servlet JSP EJB JCA 1.0 J2EE 1.4 = servlet JSP EJB JCA 1.5 Jeg vil gå let hen over servlet og JSP, da jeg har beskrevet dem i en anden artikel. Se Og for dem som vil videre se også Fra og med næste version skifter J2EE navn til JEE og versionsnumre fra n.m til n. Det betyder at J2EE 1.4 vil blive afløse af JEE 5. Jeg vil bruge J2EE i resten af artiklen. Servere Man skal selvfølgelig have en server. Der er mange muligheder.
2 Kommercielle: IBM WebSphere (WAS) BEA WebLogic (WL) Oracle OC4J Borland Enterprise Server (BES) Sun ONE Applicaion Server Macromedia JRun. Pramati Gratis: JBoss Jonas Reference Implementation De 3 mest udbredte idag er WebSphere, WebLogic og JBoss. Da JBoss er den eneste gratis af de 3 vil den være et oplagt valg, hvis man vil igang med J2EE. Reference implementation i J2EE 1.3 var forfærdelig. SUN har brugt en neddroslet version af deres Sun ONE Applicaion Server som Reference Implementation i 1.4, spm formentlig er bedre selvom Sun ikke har noget godt ry med hensyn til app servere. Arkitektur J2EE løsninger er typisk 4 tier web applikation: browser ---- JSP/Servlet container ---- EJB container ---- database server Men andre løsninger ses en gang imellem. 3 tier applikation: client app ---- EJB container ---- database server 4 tier web service: client app ---- JSP/Servlet container ---- EJB container ---- database server 5 tier web applikation: browser ---- JSP/Servlet container ---- EJB container ---- EJB container ---- database server Forskellige EJB's Der er 3 forskellige slags EJB: session bean = synchroneous service (client kalder og der returneres når færdig) message driven bean = asynchroneous service (messages fra kø processes) entity bean = persisteret record Der er 2 forskellige slags session beans: stateful session bean = session bean hvor alle kald fra en client går til samme bean instans stateless session bean = session bean hvor kald fra client går til vilkårlig bean instans Session beans kan også opdeles efter om de bruger: CMT = Container Managed Transactions = serveren styrer transaktioner BMT = Bean Managed Transactions = bruger koden styrer transaktioner Der er 2 forskellige slags entity beans: CMP = Container Managed Persistence = serveren henter fra og gemmer til databasen BMP = Bean Managed Persistence = bruger koden henter fra og gemmer til databasen
3 EJB's Der er mange interfaces/klasser involveret i en EJB. Dem som du koder: remote interface = de metoder som både kan tilgåes lokalt og fra andre systemer local interface = de metoder som kun kan tilgåes lokalt remote home interface = de metoder som kan bruges til at oprette/finde/slette både lokalt og fra andre systemer local home interface = de metoder som kan bruges til at oprette/finde/slette kun lokalt bean klasse = selve implementeringen Dem som containeren genererer: remote object klasse local object klasse remote home object klasse local home object klasse stub/skeleton klasser for remote object klasse stub/skeleton klasser for remote home object klasse Når man bruger en EJB så foregår det som: 1) lookup i JNDI returnerer et remote/local home interface (med en klasse bagved) 2) kald af metode i dette opretter/finder et remote/local interface (med en klasse bagved) 3) kald af metoder i dette dispatches videre til din bean klasse De compilede.class filer pakkes ned i en jar fil typisk kaldet xxx-ejb.jar, som så deployes til serveren. Udover.class filer indeholder den også: META-INF/ejb.jar.xml = standard deployment descriptor META-IF/*.xml = server specifikke deployment descriptorer JCA adapterer JCA er en generalisering af JDBC adgang til databaser. D.v.s. at en JCA adapter bruges til at interface et eksternt system som kan være en database eller et regn skabs system eller noget helt tredie. Standardiseringen af den slags interfaces er en af de ting som er unikke i J2EE. Derudover bliver JCA adaptere også lidt brugt som skralde spand fordi der er nogen restriktioner på EJB's: - de må ikke starte tråde - de må ikke lytte på sockets - de må ikke bruge JNI etc. og JCA adaptorer må godt alt dette. Simple kode eksempler Vi laver er simpelt eksempel med 1 session bean kun med remote tilgang og 1 entity bean kun med local adgang. Entity bean laves med CMP. Eksemplet er ikke et realistisk J2EE eksempel men illustrerer J2EE kode.
4 TestSessionBean.java = bean klasse package test; import java.util.*; import javax.naming.*; import javax.ejb.*; * TestSessionBean. public class TestSessionBean implements SessionBean { private SessionContext sessioncontext; // diverse standard som skal være der men som man sjældent bruger public void ejbcreate() { return; public void ejbremove() { return; public void ejbactivate() { return; public void ejbpassivate() { return; public void setsessioncontext(sessioncontext sessioncontext) { this.sessioncontext = sessioncontext; // gem public void save(int f1, String f2) { try { TestEntityLocalHome tehome = lookup(); tehome.create(new Integer(f1), f2); catch(exception ex) { ex.printstacktrace(); // hent F2 for specifik F1 public String getone(int f1) { try { TestEntityLocalHome tehome = lookup(); TestEntityLocal tebean = tehome.findbyprimarykey(new Integer(f1)); return tebean.getf2(); catch(exception ex) { ex.printstacktrace(); return null; // hent alle F1 public List getall() { List lst = new ArrayList(); try {
5 TestEntityLocalHome tehome = lookup(); Iterator it = tehome.findall().iterator(); while (it.hasnext()) { TestEntityLocal tebean = (TestEntityLocal)it.next(); lst.add(tebean.getf1()); catch(exception ex) { ex.printstacktrace(); return lst; // lookup TestEntity private TestEntityLocalHome lookup() throws Exception { // create JNDI context Context ctx = new InitialContext(); // lookup TestEntity local home interface Object temp = ctx.lookup("ejb/localtestentity"); // cast fra object til local home interface TestEntityLocalHome tehome = (TestEntityLocalHome)temp; return tehome; TestSession.java = remote interface package test; import java.util.*; import java.rmi.*; import javax.ejb.*; * Remote interface for TestSession EJB. public interface TestSession extends EJBObject { // gem public void save(int f1, String f2) throws RemoteException; // hent F2 for specifik F1 public String getone(int f1) throws RemoteException; // hent alle F1 public List getall() throws RemoteException; TestSessionHome.java = remote home interface package test; import java.rmi.*;
6 import javax.ejb.*; * Home interface for TestSession. public interface TestSessionHome extends EJBHome { // opret remote object public TestSession create() throws CreateException,RemoteException; TestEntityBean.java = bean klasse package test; import javax.ejb.*; * TestEntityBean. abstract public class TestEntityBean implements EntityBean { private EntityContext entitycontext; // create public Integer ejbcreate(integer f1, String f2) throws CreateException { setf1(f1); setf2(f2); return null; public void ejbpostcreate(integer f1, String f2) throws CreateException { // diverse standard som skal være der men som man sjældent bruger public void ejbremove() throws RemoveException { public void ejbload() { public void ejbstore() { public void ejbactivate() { public void ejbpassivate() { public void setentitycontext(entitycontext entitycontext) { this.entitycontext = entitycontext; public void unsetentitycontext() { this.entitycontext = null; // get og set F1 public abstract Integer getf1(); public abstract void setf1(integer f1); // get og set F2 public abstract String getf2(); public abstract void setf2(string f2);
7 TestEntityLocal.java = local interface package test; import javax.ejb.*; * Local interface for TestEntity. public interface TestEntityLocal extends EJBLocalObject { // get and set F1 public Integer getf1(); public void setf1(integer f1) ; // get and set F2 public String getf2(); public void setf2(string f2); TestEntityLocalHome.java = local home interface package test; import java.util.*; import javax.ejb.*; * Local home interface for TestEntity. public interface TestEntityLocalHome extends EJBLocalHome { // opret record public TestEntityLocal create(integer f1, String f2) throws CreateException; // find record udfra primary key public TestEntityLocal findbyprimarykey(integer f1) throws FinderException; // find alle records public Collection findall() throws FinderException; ejb-jar.xml = deployment descriptor <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN" "
8 <ejb-jar > <enterprise-beans> <session > <!-- definer interfaces, klasser m.v. for TestSession --> <ejb-name>testsession</ejb-name> <home>test.testsessionhome</home> <remote>test.testsession</remote> <ejb-class>test.testsessionbean</ejb-class> <session-type>stateless</session-type> <transaction-type>container</transaction-type> </session> <entity> <!-- definer interfaces, klasser, primary key, persisterede felter m.v. for TestEntity --> <ejb-name>testentity</ejb-name> <local-home>test.testentitylocalhome</local-home> <local>test.testentitylocal</local> <ejb-class>test.testentitybean</ejb-class> <persistence-type>container</persistence-type> <prim-key-class>java.lang.integer</prim-key-class> <reentrant>false</reentrant> <cmp-version>2.x</cmp-version> <abstract-schema-name>testentity</abstract-schema-name> <cmp-field > <field-name>f1</field-name> </cmp-field> <cmp-field > <field-name>f2</field-name> </cmp-field> <primkey-field>f1</primkey-field> </entity> </enterprise-beans> </ejb-jar> Deployment Vi vil nu deploye på JBoss så vi tilføjer 2 JBoss specifikke deployment descriptorer. jboss.xml <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE jboss PUBLIC "-//JBoss//DTD JBOSS 3.2//EN" " <jboss> <enterprise-beans> <session> <!-- definer remote JNDI navn for TestSession --> <ejb-name>testsession</ejb-name> <jndi-name>ejb/testsession</jndi-name> </session> <entity> <!-- definer local JNDI navn for TestEntity --> <ejb-name>testentity</ejb-name>
9 <local-jndi-name>ejb/localtestentity</local-jndi-name> </entity> </enterprise-beans> </jboss> jbosscmp-jdbc.xml <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE jbosscmp-jdbc PUBLIC "-//JBoss//DTD JBOSSCMP-JDBC 3.2//EN" " <jbosscmp-jdbc> <enterprise-beans> <entity> <!-- definer tabel navn og felt navne i databasen for TestSession --> <ejb-name>testentity</ejb-name> <datasource>java:/testmysql</datasource> <datasource-mapping>mysql</datasource-mapping> <table-name>t1</table-name> <cmp-field> <field-name>f1</field-name> <column-name>f1</column-name> </cmp-field> <cmp-field> <field-name>f2</field-name> <column-name>f2</column-name> </cmp-field> </entity> </enterprise-beans> </jbosscmp-jdbc> Efter build indeholder test-ejb.jar nu: 0 Fri Feb 20 23:11:00 CET 2004 META-INF/ 107 Fri Feb 20 23:10:58 CET 2004 META-INF/MANIFEST.MF 0 Fri Feb 20 22:26:28 CET 2004 test/ 1038 Fri Feb 20 22:19:52 CET 2004 test/testentitybean.class 264 Fri Feb 20 22:19:52 CET 2004 test/testentitylocal.class 410 Fri Feb 20 22:19:52 CET 2004 test/testentitylocalhome.class 287 Fri Feb 20 22:19:52 CET 2004 test/testsession.class 1774 Fri Feb 20 23:11:00 CET 2004 test/testsessionbean.class 223 Fri Feb 20 22:26:28 CET 2004 test/testsessionhome.class 1419 Fri Feb 20 22:49:46 CET 2004 META-INF/ejb-jar.xml 575 Fri Feb 20 22:33:34 CET 2004 META-INF/jboss.xml 771 Fri Feb 20 22:34:02 CET 2004 META-INF/jbosscmp-jdbc.xml Vi laver nu en data source deployment descriptor. testmysql-ds.xml
10 <datasources> <local-tx-datasource> <jndi-name>testmysql</jndi-name> <connection-url>jdbc:mysql://localhost/test</connection-url> <driver-class>com.mysql.jdbc.driver</driver-class> <user-name></user-name> <password></password> <min-pool-size>5</min-pool-size> <max-pool-size>100</max-pool-size> </local-tx-datasource> </datasources> Og så kopierer vi testmysql-ds.xml og test-ejb.jar til JBoss deploy directory og så er vi klar til at teste. Test.java = test client package e_j2ee; import java.util.*; import javax.naming.*; import javax.rmi.*; import test.*; * Test client. public class Test { public static void main(string[] args) { // set properties for at kunne lave lookup til JBoss JNDI System.setProperty("java.naming.factory.initial", "org.jnp.interfaces.namingcontextfactory"); System.setProperty("java.naming.factory.url.pkgs", "org.jnp.interfaces"); System.setProperty("java.naming.provider.url", "localhost:1099"); try { // create JNDI context Context ctx = new InitialContext(); // lookup TestSession home interface Object temp = ctx.lookup("ejb/testsession"); // narrow fra object til local home interface TestSessionHome tshome = (TestSessionHome) PortableRemoteObject.narrow(temp, TestSessionHome.class); // create TestSession tsbean = tshome.create(); // create record tsbean.save(123, "ABC"); // lookup alle records List lst = tsbean.getall();
11 for(int i = 0; i < lst.size(); i++) { int f1 = ((Integer)lst.get(i)).intValue(); String f2 = tsbean.getone(f1); System.out.println(f1 + " " + f2); catch (Exception ex) { ex.printstacktrace(); Dette var kun et lille bitte eksempel - der er mange andre muligheder i J2EE, som jeg ikke kan nå at komme ind på. Hvad er J2EE godt til? J2EE har er et ry som værende "fint". Og det er faktisk også en utrolig kraftfuld teknologi. Men det er også en kompleks teknologi. Og det er ikke nødvendigvis den rette løsning til alle opgaver. Forhold som gør det relevant at anvende J2EE: 1) krav om horisontal skalerbarhed d.v.s. at der skal kunne tilføjes flere servere som bruger loadsharing 2) kompleks forretnings logik d.v.s. ikke kun simpel præsentation 3) så stort et system at kraftig seperation mellem præsentation, forretnings logik og persistering er absolut nødvendig 4) data i flere forskellige XA compliant databaser som skal opdateres atomisk 5) integration med andre eksterne systemer end databaser Hvis flere mange af disse forhold er opfyldt så er J2EE et godt valg af teknologi, som minimere både udviklings og vedligeholdelses omkostninger. Hvis næsten ingen af disse forhold er opfykdt, så er J2EE et teknologisk overkill, som vil give unødvendige omkostninger. Glem alle argumenter om at "J2EE er langsomt", "entity beans er langsomme". Det har intet med virkeligheden at gøre. Udviklere som ikke forstår komplekse distribuerede systemer kan få enhver teknologi til at køre langsomt. Det er ikke teknologiens skyld. J2EE er en meget kompleks teknlogi. Det tager lang tid at sætte sig ordentligt ind i den. Hvis man starter et komplekst J2EE projekt uden den fornødne viden, så er der stor risiko for at projektet kommer i problemer. Men det ville det også med en anden teknologi. Kommentar af ihtezaz d. 22. May
12 Det helt godt Arne, den giver god indblik i den komplicerede teknologi. For J2EE er blandt de meste populere teknologier og godt at kunne håndtere. Kommentar af medions d. 06. Mar Virklig god artikel! Du kan sq bare det der Arne!! Kommentar af conrad d. 24. Feb Virkelig god artikel om et kompliceret område - særligt begrundelsen for at vælge J2EE synes jeg er rigtig god at have med Kommentar af rudidanmark d. 25. Apr God og overskuelig artikel. Savner en reference til den artikel omkring jsp og servlets som du beskriver i starten. Kommentar af globulous d. 06. Feb Kommentar af funk-food d. 26. Apr Virkelig en god artikel fra dig endnu en gang synes det er meget godt forklaret Kommentar af jenniferw d. 06. Sep God og informativ!
Arkitektur for begyndere
Denne guide er oprindeligt udgivet på Eksperten.dk Arkitektur for begyndere Denne artikel beskriver forskellige basale n-tier arkitekturer. Som man bør kende og have valgt inden man går igang med at udvikle
Læs mereVideregående programmering i Java
Videregående programmering i Java Dag 13 valgfrie emner Evt: Introduktion til J2EE og EJB Hvordan definere egne generics Evt.: Værktøjer til forbedring af kodekvalitet kodemetrikker og audit Projektvejledning
Læs mereRMI avanceret. Denne artikel beskriver nogle mere avancerede features i RMI. Den gør det muligt at lave mere realistiske applikationer.
Denne guide er oprindeligt udgivet på Eksperten.dk RMI avanceret Denne artikel beskriver nogle mere avancerede features i RMI. Den gør det muligt at lave mere realistiske applikationer. Den forudsætter
Læs mereRMI introduktion. Denne artikel beskriver Java RMI (Remtote Method Invocation).
Denne guide er oprindeligt udgivet på Eksperten.dk RMI introduktion Denne artikel beskriver Java RMI (Remtote Method Invocation). Den beskriver teorien bag RMI, viser et simpelt kode eksempel og forklarer
Læs mereJava web applikationer med Tomcat
Denne guide er oprindeligt udgivet på Eksperten.dk Java web applikationer med Tomcat Denne artikel beskriver hvordan man kan konfigurere container managed security og en database connection pool i Tomcat.
Læs mereWeb- og serverprogrammering
Web- og serverprogrammering EJB dag 9 EJB (Enterprise Java Beans) Entitetsbønner til databasekommunikation Evt.: EJBQL (EJB Query Language) Evt.: EJB: Transaktioner og sikkerhed Læsning: WJSP kapitel 12
Læs mereForskellige Java versioner
Denne guide er oprindeligt udgivet på Eksperten.dk Forskellige Java versioner Denne artikel beskriver lidt om de forskellige Java versioner. Den forklarer J2SE/J2ME/J2EE, plugin/jre/sdk og Sun Java/Microsoft
Læs merePrepared Statements. Denne artikel beskriver hvorfor prepared statements er gode. Den forudsætter lidt kendskab til Java og JDBC.
Denne guide er oprindeligt udgivet på Eksperten.dk Prepared Statements Denne artikel beskriver hvorfor prepared statements er gode. Den forudsætter lidt kendskab til Java og JDBC. Skrevet den 18. Feb 2010
Læs mereSingleton pattern i Java
Denne guide er oprindeligt udgivet på Eksperten.dk Singleton pattern i Java Denne artikel beskriver Singleton pattern og implementation i Java. Den forudsætter kendskab til Java men ikke til Singleton.
Læs mereSend fra Java. Denne artikel fortæller hvad man skal bruge og hvordan man skal kode for at sende fra Java.
Denne guide er oprindeligt udgivet på Eksperten.dk Send email fra Java Denne artikel fortæller hvad man skal bruge og hvordan man skal kode for at sende email fra Java. Simple eksempler ikke noget vildt
Læs mereTest med JUnit 3. Denne artikel introducerer JUnit 3. Den forklarer ideen med JUnit. Og den viser hvordan man konkret bruger det.
Denne guide er oprindeligt udgivet på Eksperten.dk Test med JUnit 3 Denne artikel introducerer JUnit 3. Den forklarer ideen med JUnit. Og den viser hvordan man konkret bruger det. Den forudsætter kendskab
Læs mereThreads i Java. Denne artikel giver en introduktion til threads i Java. Den beskriver hvad tråde er og forklarer hvordan de bruges i Java
Denne guide er oprindeligt udgivet på Eksperten.dk Threads i Java Denne artikel giver en introduktion til threads i Java. Den beskriver hvad tråde er og forklarer hvordan de bruges i Java Den forudsætter
Læs mereIntroduktion til ant. Denne artikel beskriver Apache ant, som er et værktøj til at builde Java applikationer med.
Denne guide er oprindeligt udgivet på Eksperten.dk Introduktion til ant Denne artikel beskriver Apache ant, som er et værktøj til at builde Java applikationer med. Den beskriver nogle af de mest brugte
Læs mere//Udskriver System.out.println("Hej " + ditfornavn + " " + ditefternavn + "."); System.out.println("Du er " + dinalder + " aar gammel!
Denne guide er oprindeligt udgivet på Eksperten.dk Brugerinput i Java Denne her artikel gennemgår diverse ting ved brug af brugerinput i Java. Den starter med det simple og fortæller derefter skridt for
Læs mereSingleton pattern i C#
Denne guide er oprindeligt udgivet på Eksperten.dk Singleton pattern i C# Denne artikel beskriver Singleton pattern og implementation i C#. Den forudsætter kendskab til C# men ikke til Singleton. Der er
Læs mereDatabaseadgang fra Java
Databaseadgang fra Java Grundlæggende Programmering med Projekt Peter Sestoft Fredag 2007-11-23 Relationsdatabasesystemer Der er mange databaseservere Microsoft Access del af Microsoft Office MySQL god,
Læs mereGeografisk lokalisering i JSP
Denne guide er oprindeligt udgivet på Eksperten.dk Geografisk lokalisering i JSP Denne artikel forklarer lidt om hvorfor og hvordan man laver geografisk lokalisering og viser noget kode. Der er andre artikler
Læs mereIntroduction til.net remoting i C#
Denne guide er oprindeligt udgivet på Eksperten.dk Introduction til.net remoting i C# Denne artikel beskriver teorien bag.net remoting og viser nogle simple kode eksempler i C#. Den forudsætter kendskab
Læs mereDen forudsætter kendskab til XML og C# men ikke til brug af XML i C#.
Denne guide er oprindeligt udgivet på Eksperten.dk Brug af XML i C# Denne artikel vil vise lidt om hvordan man kan bruge XML i C#. Den forudsætter kendskab til XML og C# men ikke til brug af XML i C#.
Læs mereParameters. Denne artikel beskriver hvorfor parameters er gode. Den forudsætter lidt kendskab til C# og ADO.NET.
Denne guide er oprindeligt udgivet på Eksperten.dk Parameters Denne artikel beskriver hvorfor parameters er gode. Den forudsætter lidt kendskab til C# og ADO.NET. Der findes en tilsvarende artikel med
Læs mereIntroduction til.net remoting i VB.NET
Denne guide er oprindeligt udgivet på Eksperten.dk Introduction til.net remoting i VB.NET Denne artikel beskriver teorien bag.net remoting og viser nogle simple kode eksempler i VB.NET. Den forudsætter
Læs meremed Java og Linux Jacob Nordfalk Linuxforum 2004 Lørdag 6. marts 17.00-17.45 Center for Videreuddannelse Ingeniørhøjskolen i København
Webprogrammering med Java og Linux Jacob Nordfalk Center for Videreuddannelse Ingeniørhøjskolen i København Linuxforum 2004 Lørdag 6. marts 17.00-17.45 Program Om Jacob Nordfalk Reklame Intro til Java
Læs mereDatabase design for begyndere
Denne guide er oprindeligt udgivet på Eksperten.dk Database design for begyndere Denne artikel beskriver hvordan man kommer fra ide til database design. Den stopper inden normal former. Den forudsætter
Læs mereAnvendelse af metoder - Programmering
Denne guide er oprindeligt udgivet på Eksperten.dk Anvendelse af metoder - Programmering En forhåbentlig rigtig god forklaring på hvad metoder er og hvordan de anvendes. Lidt om private og public, retur
Læs mereIT-Basecamp 2013. Real World Java EE Patterns Adam Bien. Real World Java EE Patterns, Adam Bien Copyright Lund&Bendsen A/S
IT-Basecamp 2013 Real World Java EE Patterns Adam Bien 1 Indhold Lidt om mig Baggrund for valg af emnet Bogens opbygning Fra J2EE til JEE 5/6 Overflødiggjorte patterns Fremhæve et par patterns 2 Kenneth
Læs mereSkrevet den 18. Feb 2010 af arne_v I kategorien Programmering / Visual Basic.NET
Denne guide er oprindeligt udgivet på Eksperten.dk Parameters Denne artikel beskriver hvorfor parameters er gode. Den forudsætter lidt kendskab til VB.NET og ADO.NET. Der findes en tilsvarende artikel
Læs mereHvad er Objekter - Programmering
Denne guide er oprindeligt udgivet på Eksperten.dk Hvad er Objekter - Programmering En rigtig god gennemgang af hvad objekter er! Hvordan de oprettes og anvendes! Det er helt klart til nybegyndere, som
Læs mereErhvervserfaring 2000 - Senior IT Specialist, IBM 1995 2000 Systemudvikler, Dan Net 1987 1995 Systemudvikler, KMD
Personlige data Navn: Kurt Koch Nielsen Adresse: Holmeås 8, 2670 Greve Telefon hjem: +45 43 90 50 75 Telefon mobil: +45 28 80 94 17 E-mail: kurt@kochnielsen.dk Fødselsdato: 19-02-1967 Civilstand: Gift,
Læs mereRMI med BlueJ. Tutorial lavet af Jákup W. Hansen TSU 2006 3.semester 11. desember 2007
RMI med BlueJ Tutorial lavet af Jákup W. Hansen TSU 2006 3.semester 11. desember 2007 Hvad er RMI? Når man arbejder med Distribuerede Systemer, som igen vil sige at man ønsker at flere end én komputer
Læs mereHvilket sprog er hurtigst
Denne guide er oprindeligt udgivet på Eksperten.dk Hvilket sprog er hurtigst Denne artikel forsøger at aflive forskellige myter om hvilke sprog der er hurtigst. Den forudsætter ikke noget særligt. Skrevet
Læs mereVideregående programmering i Java
Videregående programmering i Java Dag 6 Komponenter (og lidt Swing og MVC) Læsning: VP 4, evt. VP 6 Dette materiale er under Åben Dokumentlicens, se http://www.sslug.dk/linuxbog/licens.html Grafiske komponenter
Læs mereCertificate Revocation Authority. Certificate Revocation Authority
Certificate Revocation Authority i Certificate Revocation Authority Certificate Revocation Authority ii REVISION HISTORY NUMBER DATE DESCRIPTION NAME 1.0.6 Februar 2015 AA Certificate Revocation Authority
Læs mereHvad er et distribueret objekt? Plan 12.3. Objekter, objektreferencer, metoder, parameteroverførsel. Objekter: notation
Plan 12.3. Oversigt over grundlæggende begreber Java: eksempel på applikation, programmering og oversættelse Uddybning af grundlæggende begreber Java RMI implementation Forklaring af øvelsen Hvad er et
Læs mereOracle8i R8.1.5 JAVA. Oracle8i R Oracle8i Enterprise Edition Oracle8i R Oracle8i R Oracle8i R8.1.
2000 6 Oracle8i R8.1.7 Oracle8i R8.1.5 Oracle8i R8.1.6 Oracle8i Enterprise Edition Oracle8i R8.1.6 http://otn.oracle.co.jp/ Oracle8i R8.1.7 Oracle8i Oracle8i R8.1.7 Java XML JAVA Oracle8i R8.1.7 Java Oracle
Læs mereDen forudsætter kendskab til C++ og lidt kendskab til SQL og MySQL C API.
Denne guide er oprindeligt udgivet på Eksperten.dk Brug af MySQL i C++ Denne artikel bygger ovenpå artiklen "MySQL C API" og forklarer hvordan man kan programmere mere objekt orienteret. Den forudsætter
Læs mereLogging i Java. Den forudsætter kendskab til Java og noget generel udviklings erfaring. Denne guide er oprindeligt udgivet på Eksperten.
Denne guide er oprindeligt udgivet på Eksperten.dk Logging i Java Denne artikel beskriver baggrunden for logging frameworks og viser hvordan man bruger 2 af de mest almindelige: Apache Log4J og J2SE/Java
Læs mereCurriculum Vitae Jack Petersen
Curriculum Vitae Jack Petersen Jeg er løsningsarkitekt og erfaren Java-udvikler i de sidste 15+ år har jeg arbejdet i den finansielle sektor, hvor jeg har bygget både frontend og backend systemer. De sidste
Læs mereDatabase programmerings tips
Denne guide er oprindeligt udgivet på Eksperten.dk Database programmerings tips Denne artikel vil introducere nogle problem stillinger med flere samtidige brugere, som man skal tænke på, når man udvikler
Læs mereI denne artikel vil vi bruge en User klasse som vi så vil gruppere på forskellige måder.
Denne guide er oprindeligt udgivet på Eksperten.dk Collections i.net Når du kigger i namespacet System.Collections finder du over 10 forskellige klasser. At vælge den rigtige til netop din applikations
Læs mereMySQL C API. Denne artikel beskriver hvordan man bruger MySQL C API. Der er beskrivelse af build med forskellige compilere.
Denne guide er oprindeligt udgivet på Eksperten.dk MySQL C API Denne artikel beskriver hvordan man bruger MySQL C API. Der er beskrivelse af build med forskellige compilere. Den forudsætter lidt kendskab
Læs mereTilfældige tal. Denne artikel introducerer generering af tilfældige tal og viser lidt om hvad man kan og ikke mindst hvad man ikke bør bruge.
Denne guide er oprindeligt udgivet på Eksperten.dk Tilfældige tal Denne artikel introducerer generering af tilfældige tal og viser lidt om hvad man kan og ikke mindst hvad man ikke bør bruge. Den forudsætter
Læs mereXML parsning i Java. Denne artikel beskriver hvordan man parser XML i Java. Den beskriver W3C DOM, SAX og JDOM.
Denne guide er oprindeligt udgivet på Eksperten.dk XML parsning i Java Denne artikel beskriver hvordan man parser XML i Java. Den beskriver W3C DOM, SAX og JDOM. Den forudsætter kendskab til Java og XML.
Læs mereapplikation----x----odbc driver manager----foobar ODBC driver----foobar database
Denne guide er oprindeligt udgivet på Eksperten.dk ODBC i C/C++ Denne artikel beskriver hvordan man bruger ODBC i C/C++. Der er beskrivelse af build med forskellige compilere. Den forudsætter lidt kendskab
Læs mereJSP, Tomcat. Tutorial lavet af Jákup W. Hansen TSU semester 10.october 2007
JSP, Tomcat Tutorial lavet af Jákup W. Hansen TSU 2006 3.semester 10.october 2007 Hvad er JSP(Java Server Pages): Det er en teknik som er bygget ovenover Servlets teknikken, men fidusen er at det skal
Læs mereUniversity of Southern Denmark Syddansk Universitet. DM503 Forelæsning 11
DM503 Forelæsning 11 Generics Pakker Exceptions Indhold Generics Nedarvning og Generics Generics Nedarvning og Generics Husk Box fra sidst Generics public class Box {! private T object;! public void
Læs mereGeografisk lokalisering i ASP.NET
Denne guide er oprindeligt udgivet på Eksperten.dk Geografisk lokalisering i ASP.NET Denne artikel forklarer lidt om hvorfor og hvordan man laver geografisk lokalisering og viser noget kode. Der er andre
Læs mereDenne artikel gennemgår kort nogle mulighederne for brug af XML i ASP. Det sker ved brug af eksempler. Eksemplerne vil være i VBS.
Denne guide er oprindeligt udgivet på Eksperten.dk XML i ASP Denne artikel gennemgår kort nogle mulighederne for brug af XML i ASP. Det sker ved brug af eksempler. Eksemplerne vil være i VBS. Den forudsætter
Læs mereDelphi og Databaser for begyndere
Denne guide er oprindeligt udgivet på Eksperten.dk Delphi og Databaser for begyndere Denne artikel handler om hvordan man udnytter noget af det bedste i Delphi: Dets gode muligheder for integrering med
Læs mereDen forudsætter kendskab til XML og VB.NET men ikke til brug af XML i VB.NET.
Denne guide er oprindeligt udgivet på Eksperten.dk Brug af XML i VB.NET Denne artikel vil vise lidt om hvordan man kan bruge XML i VB.NET. Den forudsætter kendskab til XML og VB.NET men ikke til brug af
Læs mereOffset til terminalskærm i Java
Denne guide er oprindeligt udgivet på Eksperten.dk Offset til terminalskærm i Java Ikke en atikkel - men en Classe til java der gør det nemt at skrive ud på avancerede måder når man kun opererer i dosvindue.
Læs mereMySQL i Java. Tutorial lavet af Jákup W. Hansen TSU 2006 2.semester 05.januar 2007
MySQL i Java Tutorial lavet af Jákup W. Hansen TSU 2006 2.semester 05.januar 2007 Hvad er MySQL? Det er et database system, som er gratis for os at bruge. Det er lidt mere besværligt i starten at bruge
Læs mereI mit script tager jeg højde for det problem ved, at gemme et unikt tal mellem 0-9 på 6 cifre og derved vil de så blive vist som 2 online.
Denne guide er oprindeligt udgivet på Eksperten.dk Hvem er online? Online script, som tager højde for at der kan være flere personer, som har den samme IP-adresse. Scriptet viser hvor lang tid brugeren
Læs mereSigmaT.
Java + Groovy Disposition Om SigmaT Eksempel på indlejring af Groovy Overvågning af PEM Ønske om dynamisk loaded Java uden at fifle med classloaderen Groovy til hjælp Opsamling hvad jeg ikke har fortalt
Læs mereRatingsystem i PHP og MySQL
Denne guide er oprindeligt udgivet på Eksperten.dk Ratingsystem i PHP og MySQL Lær at lave et system til at vise rating/bedømmelse på artikler og nyheder. Skrevet den 03. Feb 2009 af virtual1ty I kategorien
Læs mereDatabase tips. Den forudsætter lidt kendskab til SQL men er for mindre erfarne. Denne guide er oprindeligt udgivet på Eksperten.dk
Denne guide er oprindeligt udgivet på Eksperten.dk Database tips Denne artikel vil give nogle forskellige små praktiske råd om ting man skal tænke på når man arbejder med databaser og applikationer som
Læs mereTest med NUnit. Denne artikel introducerer NUnit. Den forklarer ideen med NUnit. Og den viser hvordan man konkret bruger det.
Denne guide er oprindeligt udgivet på Eksperten.dk Test med NUnit Denne artikel introducerer NUnit. Den forklarer ideen med NUnit. Og den viser hvordan man konkret bruger det. Den forudsætter kendskab
Læs mereNye Java XML API'er
Denne guide er oprindeligt udgivet på Eksperten.dk Nye Java XML API'er Denne artikel beskriver nye XML features i Java 1.6 - StAX og JAXB, samt XStreams. Den forudsætter kendskab til Java og brug
Læs mereVideregående Programmering Obligatorisk opgave - 3. semester, efterår 2004
Overvågningssystem Beskrivelse Bagagesorteringssystemet består af et antal skranker (check-in) til modtagelse og registrering af bagage, et automatiseret sorteringsanlæg samt et antal terminaler (gates),
Læs mereWeb- og serverprogrammering
Dette materiale er under Åben Dokumentlicens, se http://www.sslug.dk/linuxbog/licens.html Web- og serverprogrammering Databasekommunikation - dag 7 Strategier til databaseadgang JDBC (Java DataBase Connectivity)
Læs mereSWC eksamens-spørgsmål. Oversigt
SWC eksamens-spørgsmål Oversigt #1 Typer og variable #2 Aritmetik og logik #3 Klasser (definition, objekter) #4 Klasser (metoder) #5 Klasser (nedarvning, polymorfi) #6 Conditional statements #7 Repetition
Læs mereDag 10 Flertrådet programmering
Videregående programmering i Java Dag 10 Flertrådet programmering Fremlæggelse af programmering/status for projekter Dokumentation med javadoc Flertrådede designmønstre: Arbejdstråd, Producent Konsument,
Læs mereVideregående programmering i Java
Videregående programmering i Java Dag 9 Andre designmønstre Andre designmønstre: Uforanderlig, Fluevægt, Lagdelt Initialisering, Komposit/Rekursiv Komposition, Kommando/Ændring Fremlæggelse af programmering/status
Læs mereVersion Dato Beskrivelse 1.0.0 26/11/2012 Initial version 1.2.0 05/03/2013 Tilføjet eksempel med Template Agent, generelt udvidet dokumentet.
MOX og APOS2 Forord Dette dokument er en del af APOS version 2 manualerne. APOS version 2 (APOS2 herefter) er et organisation, klassifikation og personale system baseret på Sag & Dokument standarderne.
Læs mereModel Drevet Design i Praksis
Model Drevet Design i Praksis Dansk IT - På Vej Hjem møde d. 8/9-2009 Jeppe Cramon - TigerTeam ApS Lidt om mig 15 års erfaring som software udvikler Partner i TigerTeam Første erfaring med model drevet
Læs mereSoftware Construction 1 semester (SWC) Spørgsmål 1
Spørgsmål 1 Objekter #1 Giv en kort præsentation af begrebet objekt, samt hvorledes du erklærer(declare), opretter(create) og bruger objekter Du kan beskrive o Datatyper o Variable / Instans variable /
Læs mereJacob Nordfalk. Ingeniørhøjskolen i København. Nykøbing F itvisioncenter 24. februar 2004
Genbrugelige komponenter og designmønstre i Java Jacob Nordfalk Ingeniørhøjskolen i København Nykøbing F itvisioncenter 24. februar 2004 Program Om Jacob Nordfalk introduktion (ikke-teknisk del) Komponentbaseret
Læs mereServlets, Tomcat & BlueJ
Servlets, Tomcat & BlueJ Tutorial lavet af Jákup W. Hansen TSU 2006 3.semester 05.october 2007 Hvad er Servlets: For at forstå det, må vi først få styr på to begreber, nemlig statiske og dynamiske hjemmesider
Læs mereNye features i Java 1.7/7.0
Denne guide er oprindeligt udgivet på Eksperten.dk Nye features i Java 1.7/7.0 Denne artikel beskriver nye features i Java 1.7/7.0, som blev releaset 28. juli 2011. Den forudsætter et vist kendskab til
Læs mereIntroduktion til SQL queries
Denne guide er oprindeligt udgivet på Eksperten.dk Introduktion til SQL queries Denne artikel beskriver nogle forskellige muligheder i SQL queries. Eksemplerne skulle gerne være standard SQL og virke i
Læs mereUdfordringer og problemstillinger. En liste over de udfordringer og problemstillinger, der er ved Java og JEE udvikling
Java og JEE 1 2 Udfordringer og problemstillinger En liste over de udfordringer og problemstillinger, der er ved Java og JEE udvikling 3 Generelt om Java og JEE 4 Generelt, I Man undervurderer hvor mange
Læs mereDM01 DM01. 3. Obl. Afl. Jacob Christiansen, 130282, jacob.ch@mail.tdcadsl.dk. D12, Elias 18/3-2003. Side 1 af 11
DM01 DM01 3. Obl. Afl. Jacob Christiansen, 130282, jacob.ch@mail.tdcadsl.dk D12, Elias 18/3-2003 Side 1 af 11 DM01 Indholdsfortegnelse: BILAG:...2 1 FORMÅL:...3 2 KLASSER:...4 2.1 DILEMMA:...4 2.1.1 METODER:...4
Læs mereJava Klasse nedarvninger
Denne guide er oprindeligt udgivet på Eksperten.dk Java Klasse nedarvninger Et let lille overblik i hvordan klasse nedarvning virker i java Skrevet den 07. dec 2011 af mochners I kategorien Programmering
Læs mereAutomatisk build og deploy med Maven. Geek Night hos VP SECURITIES - 26. januar 2011 Mads Pultz <mpz@trifork.com>
Automatisk build og deploy med Maven Geek Night hos VP SECURITIES - 26. januar 2011 Mads Pultz 1 Agenda Introduktion til case (kontekst) Byg demoer - Bamboo, Nexus og RAD Modulopbygning
Læs mereLoginsystem (med MySQL)
Denne guide er oprindeligt udgivet på Eksperten.dk Loginsystem (med MySQL) Dette er en guide til, hvordan man kan lave et loginsystem med php og muligvis også med sessioner og MySQL Skrevet den 02. Feb
Læs mereUndtagelseshåndtering i C#
Denne guide er oprindeligt udgivet på Eksperten.dk Undtagelseshåndtering i C# I modsætning til C++ kan man i C# ikke skrive et program uden undtagelseshåndtering, så derfor har jeg skrevet denne guide
Læs mereCurriculum Vitae for Søren Brønsted
Curriculum Vitae for Søren Brønsted Person oplysninger Søren Brønsted Kirkebjergvej 2 4623 Lille Skensved Tlf: 52 19 14 10 email: soren@bronsted.dk Født: 1963 Profilbeskrivelse Jeg er er en senior Java/J2EE
Læs mereKontrol-strukturer i PHP
Denne guide er oprindeligt udgivet på Eksperten.dk Kontrol-strukturer i PHP Denne artikel gennemgår kontrolstrukturer i PHP. 'if', 'switch', 'while' og 'for' bliver gennemgået. Den forudsætter lidt grundlæggende
Læs mereBits, bit operationer, integers og floating point
Denne guide er oprindeligt udgivet på Eksperten.dk Bits, bit operationer, integers og floating point Denne artikel beskriver hvordan data gemmes som bits og hvordan man kan manipulere med bits. Den forudsætter
Læs mereWeb- og serverprogrammering
Web- og serverprogrammering Arkitekturer i webprogrammer - dag 6 Model-View-Controller-arkitukturen Flerlags-arkitekturer Læsning: WJSP 10 Dette materiale er under Åben Dokumentlicens, se http://www.sslug.dk/linuxbog/licens.html
Læs merePROJEKT 3. The Design Diaries. LINK TIL BLOG: Af Mikkel Borg Svendsen & Sebastian Frank MUL B
PROJEKT 3 The Design Diaries LINK TIL BLOG: http://mbsgraphic.dk/blog/ Af Mikkel Borg Svendsen & Sebastian Frank MUL B 1 INDHOLDS- FORTEGNELSE HVEM ER BLOGGERNE? 3 USE CASE 4 ATTRIBUT TABEL 5 PHP CODE
Læs mereTagwall med Php & MySQL
Denne guide er oprindeligt udgivet på Eksperten.dk Tagwall med Php & MySQL Her laver vi en tagwall i Php & MySQL... jeg forklarer dog ikke så meget, men jeg håber du kan få det til at blive til en tagwall
Læs mereEksempel på en database: studenter, kurser, eksamener
Udvidet Programmering 1999 Forelæsning 20, fredag 12. november 1999 Relationsdatabaser: relationer, tupler, attributter Forespørgselssproget SQL Databasesystemet PostgreSQL Tilgang til relationsdatabaser
Læs mereBegrynder til at lave log ind system
Denne guide er oprindeligt udgivet på Eksperten.dk Begrynder til at lave log ind system Hej Vil jeg gerne lave en lille programmering forklare til hvordan du laver din helt egen lille start på at log ind
Læs mereSkriftlig eksamen i Datalogi
Roskilde Universitetscenter side 1 af 9 sider Skriftlig eksamen i Datalogi Modul 1 Vinter 1999/2000 Opgavesættet består af 6 opgaver, der ved bedømmelsen tillægges følgende vægte: Opgave 1 5% Opgave 2
Læs mereTest af It-komponent
Test af It-komponent I programmeringssproget Java Programmet Login service Elev: Mads Funch Klasse 2.4 Mat, It, Programmering Skole: Roskilde Tekniske Gymnasium HTX Underviser: Karl Dato: 31-08-2016 Side
Læs mereCV for Christian Plougmann Hag
CV for Christian Plougmann Hag Navn Christian Plougmann Hag Født 1970 Civilstand Gift, 2 børn IT-erfaring siden 1991 Personlig profil Christian er en kapacitet, der med sine mange års erfaring med J2EE/JavaEEsystemudvikling,
Læs mereSoftware 1 with Java. Recitation No. 7 (Servlets, Inheritance)
Software 1 with Java Recitation No. 7 (Servlets, Inheritance) Servlets Java modules that run on a Web server to answer client requests For example: Processing data submitted by a browser Providing dynamic
Læs mereDatabase for udviklere. Jan Lund Madsen PBS10107
Database for udviklere Jan Lund Madsen PBS10107 Indhold LINQ... 3 LINQ to SQL og Arkitektur... 3 O/R designere... 5 LINQ Den store introduktion med.net 3.5 er uden tvivl LINQ(udtales link): Language-INtegrated
Læs mereKIH Database. Systemdokumentation for KIH Databasen. 12. september 2014. Side 1 af 20
KIH Database Systemdokumentation for KIH Databasen 12. september 2014 Side 1 af 20 Indholdsfortegnelse Indholdsfortegnelse Indledning Systemoverblik KIH Database applikationsserver Forudsætninger før installation
Læs mereKIH Database. Systemdokumentation for KIH Databasen. 1. maj 2013. Side 1 af 13
KIH Database Systemdokumentation for KIH Databasen 1. maj 2013 Side 1 af 13 Indholdsfortegnelse Indholdsfortegnelse... 2 Indledning... 3 Systemoverblik... 3 KIH Database applikationsserver... 5 Forudsætninger
Læs mereb) Udvid din implementation af forme til at understøtte.equals. To objekter af samme form er ens hvis de har samme værdier i felterne.
Exercise 1: Opgave 9.1 på CodeJudge. a) Lav klasserne Cirkel, Rektangel og Kvadrat, som implementerer vedhæftede interface From.java (se CodeJudge). Lav Rektangel før du laver Kvadrat. Kan du bruge nedarvning
Læs mereSpring Schema Extension eller Spring Domain Specific Languages
Spring Schema Extension eller Spring Domain Specific Languages Forfatter: Jeppe Cramon Cramon Consulting (http://www.cramon.dk) Dato: 23/7-2005 Efter at have arbejdet med Spring i lang tid, har jeg lagt
Læs mereListen over reserverede ord er meget lang, men de væsentligste vil jeg beskrive her i denne artikel:
Denne guide er oprindeligt udgivet på Eksperten.dk SQL og ASP En artikel omkring simpel SQL og hvordan disse opbygges, udformes og udføres, sådan at man kan få et brugbart resultat i ASP. Dette ligefra
Læs mereUploade billeder eller andre filer ved hjælp af php og mysql
Denne guide er oprindeligt udgivet på Eksperten.dk Uploade billeder eller andre filer ved hjælp af php og mysql Denne artikel viser hvordan man kan uploade et billede eller en anden fil, og tilknytte det
Læs mereSom sagt kræves der helst lidt viden om OOP hvis man virkelig vil lærer noget, og ikke bare lave copypaste
Denne guide er oprindeligt udgivet på Eksperten.dk Indkøbsvogn i PHP I denne artikel vil jeg prøve at lave en indkøbskurv som let kan udvides, og som ikke er svær at forstå. Det er bedst med viden om OOP(klasser),
Læs mereIntroduktion til ActionScript, fortsat
Introduktion til ActionScript, fortsat Kaspar Rosengreen Nielsen kaspar@interactivespaces.net i n t e r a c t i v e s p a c e s. n e t Kaspar Nielsen, kaspar@interactivespaces.net 1 Dagens program Opsamling
Læs mereIT projekt person galleri
Denne guide er oprindeligt udgivet på Eksperten.dk IT projekt person galleri Denne artikel forsøger at forklare lidt om hvilke funktioner der ligger bag ved de forskellige titler som deltagerne i et IT
Læs mereI denne artikel vil jeg gennemgå hvordan en side for RSS "Live Bogmærke" kan se ud.
Denne guide er oprindeligt udgivet på Eksperten.dk RSS "Live Bogmærke" I denne artikel vil jeg gennemgå hvordan en side for RSS "Live Bogmærke" kan se ud. Skrevet den 10. Feb 2009 af madsass I kategorien
Læs mereNote om RMI af Peter Kjærsgaard
Note om RMI af Peter Kjærsgaard 1. Filosofi Filosofien i RMI er, at et objekt på en server skal kunne kaldes fra en klient, som om server-objektet lå på klienten. RMI er dermed på et højere niveau end
Læs mereTech College Aalborg. ASP.NET Hjemmeside. Projekt Smart Zenior Home - Guide til ASP.NET hjemmeside med Visual Studio
Tech College Aalborg ASP.NET Hjemmeside Projekt Smart Zenior Home - Guide til ASP.NET hjemmeside med Visual Studio Isabella Sihm Ziersen Indhold ASP.Net hjemmeside... 2 Visual Studio... 2 Brug af templates
Læs mere