2I1070 Lektion 2 Servlets och databaskopplingar Internetprogrammering 2I1049 Treskiktsarkitektur Klient-server med servlets

Relevanta dokument
Tentamen ITK:P2. Inga hjälpmedel tillåtna förutom penna och papper. Skriv tydligt och texta gärna. 14 st frågor, 70 poäng.

Föreläsning 4. Innehåll. Java EE 7 subapi. Java EE. Java EE. DD2390 Internetprogrammering 6 hp

2I1073 Lektion 2. Lektion 2a. Lektion 2a. Servlets, säkerhet, och filhantering. import java.io.*; import javax.servlet.*; import javax.servlet.http.

Servlets y JSP Fernando Berzal,

Klientprogrammering mot databaser

F8 Webbteknologier 1. Dynamiska webbsidor

Surfning. Webbklienter och webbservrar. Specialskrivna webbservrar. Kommunikation med sockets

INTRODUKTION TILL JDBC

Classpath. Class loading + resurser. Class loader. jar-filer

Webbservrar, severskript & webbproduktion

Högskolan Dalarna sid 1 av 7 DI-institutionen Hans-Edy Mårtensson Sten Sundin Micael Karlsson

F10 Webbteknologier. EDA095 Nätverksprogrammering. Roger Henriksson Datavetenskap Lunds universitet

F9 Webbteknologier 1. EDA095 Nätverksprogrammering. Roger Henriksson Datavetenskap Lunds universitet

Basic Internet Programming. Servlets, Cookies and Sessions. Björn Eiderbäck Cristian Bogdan

FÖRSLAG TILL LÖSNINGAR FÖR TENTAMEN I INTERNETPROGRAMMERING MED JAVA, 5p för SY , kl

Vad ska ni göra? ProgramvaruUtveckling för Stora System. Kravförvirring. 9 frågor till prefekten. Christin Lindholm

Innehåll. Föreläsning 3. javax.naming.context. javax.sql.datasource. Vad är JDBC? Java Naming and Directory Interface(JNDI) Viktigaste metoder:

Objektorienterad programmering i Java I

Exempel. Föreläsning 6. Innehåll. Fördefinierade variabler. PageContext. Java Server Pages (JSP) DD2390 Internetprogrammering 6 hp

Exempel. Lektion 4. Innehåll. Fördefinierade variabler. PageContext. Java Server Pages (JSP) DD2483 Enterprise Java 6 hp

FÖ 07 - JDBC Åtkomst till databaser från applikationer med Java - exempelkod -

DI-institutionen Sid 1 av 5 Hans-Edy Mårtensson Sten Sundin Micael Karlsson

Nätverk Internet. Databasdrivna applikationer och applikationer som använder databaser. Internet. Ett nätverk. Varför nätverksapplikationer?

Föreläsning 14. Filhantering

Tung bakgrundsaktivitet t.ex. Aktiva objekt t.ex. Animering, simulering. DD2385 Programutvecklingsteknik Några bilder till föreläsning 9 6/5 2013

Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.

Internationalisering/lokalisering på webben

Högskolan Dalarna sid 1 av 5 DI-institutionen Hans-Edy Mårtensson Sten Sundin

DI-institutionen Sid 1 av 6 Hans-Edy Mårtensson Sten Sundin

Trafla databasen vi hämtar data från (remote export) ligger på en godtycklig maskin i nätverket. Den här databasen är en MIMER databas.

Objektorienterad Programkonstruktion. Föreläsning 11 6 dec 2016

Bakom kulisserna. SMHI webservices. Infrastruktur och säkerhetslösningar Demonstration av webservices

PHP-presentation Dataföreningens Open Source-nätverk

Laboration 10 - NetBeans

emopluppen Installationsmanual

Javas Exceptions. DD2385 Programutvecklingsteknik Fler bilder till föreläsning 7 23/ Kort om Javas Exceptions Trådar i Java

ASP.NET Thomas Mejtoft

Installations- och uppdateringsprogram för FileMaker Server 12.0v2 augusti 2012

Björn Persson. Komponenter med J2EE. Del 1

emopluppen Användning av "Ant" Niklas Backlund Version: 1.4 ( 2002/04/26 07:27:52 UTC)

Funktionsbeskrivning

Design och implementation av en webbaserad databas

Programinstallation Datorbaserat handsmörjningssystem

Grundläggande programmering DVG A08 & ISG A04. Allmän information. Å vem är jag då. Karlstads Universitet, Johan Öfverberg 1

Installera din WordPress med 9 enkla steg

Uniform Resource Locator (URL) JavaServer Pages - JSP. Webbklienter. Webbserver. Hypertext Transfer Protocol (HTTP) HTTP Request

Laboration 10 - Eclipse

Java: Utvecklingsverktyg, datatyper, kontrollstrukturer

Att skriva till och läsa från terminalfönstret

Tentamensskrivning Nätverksprogrammering (EDA095 - FED) , kl 8-13

Innehåll. MySQL Grundkurs

Att använda Java SE JDK 6

Översikt. Skriva och läsa data. Kontrollflöde. Två sorters loopar. For-loop. For-loop

Björn Eiderbäck, Cristian Bogdan

INSTALLATION...3 ATT KOMMA IGÅNG...3 PROGRAMMETS DESIGN...4 LÄGGA TILL TABELL...4 EDITERA TABELL...4 EDITERA RELATION...5 SPARA OCH AVSLUTA...

Tentamensskrivning Nätverksprogrammering (EDA095) , kl 8-13

CliMate: Laboration 3 dataselektion

FÖRSLAG TILL LÖSNINGAR, TENTAMEN I IKB007 INTERNETPROGRAMMERING MED JAVA, 5p för SY2, , kl

2I1049 Föreläsning 9. Iterativ programutveckling. Iterativ programutveckling. Modularisering, återanvändning och JavaBeans

Laboration 24 Databasen MySQL och java

Installation & konfiguration SQL server

Laboration 5 - Biblioteksapplikation

Administrationsmanual ImageBank 2

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering

Utveckling av ett webbaserat bokningssystem för Gefle Gourmetservice

Föreläsnings 9 - Exceptions, I/O

Instruktion för användande av Citrix MetaFrame

Sakfrågan Preliminär specifikation

Lite mer om CGI-programmering

DI Studio nyheter

Tentamen Nätverksprogrammering Lösningsförslag

F10 Webbteknologier. EDA095 Nätverksprogrammering. Roger Henriksson Datavetenskap Lunds universitet

SiteVision 2.0. Driftdokumentation

PROV. 13 JSP Standard Tag Library

ITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet

F10 Webbteknologier. EDA095 Nätverksprogrammering. Roger Henriksson Datavetenskap Lunds universitet

Vid problem med programmet kontakta alltid C/W Cadware AB på telefon

Programvaror - Jo, tack, det vill vi ha...

Systembeskrivning. Alhanko

Tentamen Nätverksprogrammering Lösningsförslag

Scala Doc SQL Installation

Javaprogrammering - Del 1. Kursupplägg. Hello world. Kompilera. Kör. Environmentvariabler. föreläsningar övningar 1, 2, 3 och 4 INLÄMNINGSUPPGIFT 2

Objektorienterad Programkonstruktion. Föreläsning 10 7 dec 2015

Databaser på webben. Revision Johan Näsholm, johan@nasholm.com

F4. programmeringsteknik och Matlab

Sample exam questions. Database exam TIG058

Hämta data mha URLer Föreläsning 2b. Innehåll Klassen URL

Installera SoS2000. Kapitel 2 Installation Innehåll

Att göra en databas av ett Excelark och koppla till en kortdesign (ingår i standardversionen fr.o.m. version 6.10)

Android översikt. TDDD80 Mobila och sociala applikationer

Att använda Java SE JDK 6

VAD GÖR DU / VEM ÄR DU?

INSTALLATION AV KLIENT

ID1004 Laboration 3, 5-6 November 2012

Översikt. Installation av EasyPHP 1. Ladda ner från Jag använder Release Installera EasyPHP.

Tentamen Nätverksprogrammering Lösningsförslag

Lektion 5 HTML, CSS, PHP och MySQL

Nya webbservern Dvwebb.mah.se

Teknisk kravspecifikation för nytt Omsorgs system

Objektorienterad programmering i Java Undantag Sven-Olof Nyström Uppsala Universitet Skansholm: Kapitel 11

Transkript:

2I1070 Lektion 2 Servlets och databaskopplingar KTH-MI Peter Mozelius Internetprogrammering Tidigare på kursen 2I1049 har vi enbart sysslat med fristående program där allt körs på en och samma dator. I internetsammanhang kan det istället se ut enligt: Treskiktsarkitektur webbklient - webbserver - data XHTML - Java servlets - databas Klient-server med servlets

Java servlets Ett effektivt alternativ till äldre CGI-lösningar CGI startar en ny process för varje nytt anrop Servlets startar bara en ny tråd CGI avslutar processen efter anropet Servlets ligger kvar i minnet mellan anrop En liten enkel servlet Vi ska nu titta på koden för en riktigt enkel servlet som inte gör mer än att skriva ut det vanliga Hello World! Först behövs följande importsatser: import java.io.*; import javax.servlet.*; import javax.servlet.http.*; En liten enkel servlet public class HelloWorld extends HttpServlet { public void doget(httpservletrequest request, HttpServletResponse response) throws IOException, ServletException { response.setcontenttype("text/html"); PrintWriter out = response.getwriter(); out.println("<html>"); out.println("<head>");

En liten enkel servlet out.println("<title>hello World!</title>"); out.println("</head>"); out.println("<body>"); out.println("<h1>hello World!</h1>"); out.println("</body>"); out.println("</html>"); } } Apache Tomcat Det finns flera sätt att köra servlets Ett mycket vanligt sätt är m h a Tomcat Som alltid när det gäller Apacheprodukter helt fri att använda öppen källkod Följer servlet- och JSP-specifikatioerna Det sätt som vi kommer att använda MEN visst finns det kommersiella alternativ Apache Tomcat Det kommer hela tiden nya versioner Det finns en del smådetaljer som skiljer Mer information finns på: http://jakarta.apache.org/tomcat/ 15 min paus!

Apache Tomcat Starta Tomcat: startup.bat startup.sh Stoppa Tomcat: shutdown.bat shutdown.sh Apache Tomcat Anropa Tomcat genom: http://127.0.0.1:8080/ http://localhost:8080/index.html Apache Tomcat Om du använder SDK standard edition Se till så att servlet.jar finns med i CLASSPATH Exempelvis: SET CLASSPATH=.;E:\tomcat\lib\servlet.jar OBS jar-filen heter i version5 servlet-api.jar OBS I autoexec.bat för Win9X I kontrollpanelen/miljövariabler för WinXP

Apache Tomcat Två andra miljövariabler är: JAVA_HOME (Exempelvis: C:\jdk1.5.x\) och CATALINA_HOME (Sökvägen till Tomcat) Konfigurationsfiler Tomcat har många konfigurationsfiler Två av dem är: web.xml mappning av servlets CATALINA_HOME\webapps\miwebb\WEB-INF\ server.xml Mappning av servlet context CATALINA_HOME\conf\ ODBC - JDBC Open Data Base Connectivity Microsoftstandard för databaskopplingar JDBC framtagen av Javasoft Motsvarigheten för koppplingar från Java En huvudpoäng är interoperabilitet

JDBC Gemensamt API Olika drivrutiner java.sql Genom import java.sql.*; så får ni tillgång till klasser för metadata: ResultSet resultset = statement.executequery( SELECT ); ResultSetMetaData metadata = resultset.getmetadata(); MySQL En på Internet mycket vanlig relationsdatabas Finns både i kommersiella och gratisversioner Liten, snabb och stabil Det finns andra mer avancerade databaser

MySQL MySQL har blivit enklare att installera och mer lättanvänd i de senaste versionerna MEN, allt är inte intuitivt och lättillgängligt Information och stödprogram finns att hämta på: http://dev.mysql.com/doc/ 15 min paus! Databaskoppling i Java En databaskoppling kan ske enligt: 1. Registrera JDBC-drivrutinen 2. Etablera kontakten med databasen 3. Exekvera en SQL-fråga 4. Bearbeta resultatet av SQL-frågan 5. Koppla ner och stäng Registrera drivrutinen Innan JDBC-drivrutinen kan användas så ska den registreras i stil med: try{ Class.forName("org.gjt.mm.mysql.Driver ); } catch (ClassNotFoundException cnfe) { out.println( Det gick inte att ladda drivrutinen: " + cnfe.getmessage()); } (En JDBC-drivrutin är en javaklass nåbar via CLASSPATH)

Etablera kopplingen När drivrutinen är laddad går det sedan bra att upprätta en koppling till MySQL genom: jdbc:mysql://server/database_name Vilket i en koppling lokalt till den egna datorn kan se ut enligt: Connection connection = DriverManager.getConnection( jdbc:mysql://localho st/uppg2d?user=rudolf&password=4477x2w32"); Etablera kopplingen En liten databas finns någonstans på den världsvida väven Koppla dig dit enligt: Connection connection = DriverManager.getConnection( jdbc:mysql://server.adress.se/user=peter &password=hemligt"); Exekvera en SQL-fråga När det finns en koppling till databasen går det sedan bra att köra SQL-frågan: Statement stmt = connection.createstatement(); ResultSet resultset = stmt.executequery("select * FROM studenter");

Bearbeta resultatet Klassen ResultSet har två andvändbara metoder: next() previous() while ( resultset.next() ){ out.println("<tr>"); out.println("<td>" + resultset.getstring( Koppla ner och stäng Stäng ner det som öppnats: out.close(); statement.close(); connection.close(); Vi tittar nu på ett litet kompendium som sammanfattar det vi har gått igenom Nästa års 2I1073 Vi kommer nästa år på kursen 2I1073 att arbeta med bland annat: Tomcat MySQL Java Servlets HTML XML XHTML Tack för i år!