2I1073 Föreläsning 2 KTH-MI Peter Mozelius Server, servlets och databaskopplingar.

Slides:



Advertisements
Liknande presentationer
Snabbguide och tips.
Advertisements

Händelsehantering i grafiska gränssnitt byggda med Tkinter
Tomas Sandström, Adtollo
En introduktion till programmeringsspråket Python
Föreläsning 9 Programmeringsteknik och Matlab 2D1312/2D1305
Välkommen till kattens magiska värld
Klicka på Aktivera redigering i meddelandefältet,
Datavalidering med JavaScript
Producerad av Publiciteta&Co Sundsbussarna Förslag på ny design av hemsida Publiciteta&Co 2006.
FTP, HTTP, HTML, XML och XHTML
1 MSPEL Föreläsning 1 DSV Peter Mozelius XML, XHTML, CSS och Java applets.
Mjukvara och nätverk Vad är det?.
Programmering B PHP Lektion 1
MMS & Webb-TV Av: Traditionell TV Mobil-TV Webb-TV Out-of-home Fritidshus Pod-TV.
Hämta företagsdata till Excel
”Ett sätt att distribuera Business Objects via webben”
Algoritmer och data strukturer -Länkade listor
2I1049 Föreläsning 11 Modularisering, återanvändning och JavaBeans
Next previous Internetprogrammering 2000 Internetprogrammering 2000 Föreläsning 10 Distribuerad programmering med Javas RMI, Remote Method Invocation.
2I1070 Lektion 2 KTH-MI Peter Mozelius Servlets och databaskopplingar.
1 ITK:P2 F9 HTTP, Java servlets och Apache Tomcat DSV Peter Mozelius.
Metoder i java Det finns två typer av metoder i java
Välkommen Vahid Mosavat
Programmeringsteknik för K och Media
Programmeringsteknik K och Media
Att programmera i språket Java
NETinfo 2009–10-09 Magnus Persson Epost: Telefon: 046 –
Att integrera databaser med Java
Föreläsning 8 Appletprogram/fristående grafiska program Rita linjer, rektanglar mm Skriva text Byta färg Appletprogram html.
Next previous Innehåll Inledning Några enkla exempel Pekare till och kort beskrivning av större exempel Speciella referenser (som används i marginalen)
Next previous Lite mer om CGI-programmering Innehåll Vad är CGI? Vad är Forms? Vad är Perl? Forms, CGI och Perl. Något om Cookies. Internetprogrammering.
Next previous Lite mer om CGI-programmering Innehåll Vad är CGI? Vad är Forms? Vad är Perl? Forms, CGI och Perl Internetprogrammering F 14 Läs också: Kursboken.
Databaser i B2KUNO Johan Eklund. Hur går jag vidare? Avancerade tillämpningar:  Analysera data  Generera information Utveckla följande färdigheter:
Mahmud Al Hakim Webmaster DAG 11 VT09 Mahmud Al Hakim
W EBMASTER DAG 11 HT08 Mahmud Al Hakim
WEBMASTER DAG 13 Mahmud Al Hakim
Föreläsning 13 Polymorfism, Paket och JAR-filer. Polymorfism Ordet härstammar från grekiskan Poly – många Morf – form Polymorf – många former Någonting.
1 ITK:P1 Föreläsning 5 Iteration, slumpning och arrayer DSV Peter Mozelius.
Objektorienterad programmering i Java
OOP F4:1 Marie Olsson OOP Objekt-orienterad programmering Föreläsning 4 Metoder klass-metoder instans-metoder.
Programmering B PHP Lektion 1 Mahmud Al Hakim Folkuniversitetet
Datasamlingar och generiska enheter
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 8 ( ) Innehåll: Trådprogrammering i Java - Avbrott (”interrupts”) - Metoden join() -
UTVECKLING MED RAMVERKET.NET Marcus Medina. Dagens visdomsord ” Ingen vet vad han klarar innan han har försökt. ” - Publilius Syrus (85 f.Kr.-43 f.Kr.).
PROCESSPROGRAMMERING Föreläsning ‏ Innehåll: Högnivå objekt för trådprogrammering: - Trådgrupper (”Thread pools”)‏ - Exekverare (Executor.
Mitt första Java program Mahmud Al Hakim Copyright, Mahmud Al Hakim, 1.
Servlets — Java på serversidan. previous next 2 Servlets Introduktion Javaservlets är en i raden av SUN:s många tillämpningar av Java. Servlets kan grovt.
Föreläsning 14 ”Enkel” Filhantering.
Java servlets och databaskopplingar
1 ITK:P1 Föreläsning 8 Multimedia för spelkonstruktion DSV Peter Mozelius.
Next previous RMI, Remote Method Invocation Om du har boken av Marty Hall, läs avsnitt 15.8 För fler exempel se:
Föreläsning 1 Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
Java paket och jar-filer
Koha En presentation av bibliotekssystemet Koha. Projeketets syfte & mål Projektets syfte är att öka kunskapsnivån i Halland och Sverige kring bibliotekssystemet.
Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 11 C# I/O Streams C# använder “strömmar” för in- och utmatningsoperationer.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 8 ( )‏ Innehåll:  Introduktion till Java EE (Enterprise Edition)  Enterprise Java Beans.
1 ITK:P2 F6 Sortering av generiska containerklasser DSV Peter Mozelius.
ITK:P1 Föreläsning 2 Introduktion till objektorientering DSV Marie Olsson.
PROCESSPROGRAMMERING Föreläsning 1 ( )‏ Innehåll: Introduktion till paralellprogrammering (“concurrent programming”)‏ Introduktion till parallellprogrammering.
ITK:P2 F8 Strömmar och filhantering DSV Peter Mozelius.
1 2I1073 Föreläsning 1 KTH-MI Peter Mozelius XHTML, stilmallar och Javascript.
Ladda ner och installera JAVA Mahmud Al Hakim DynamicOS
Java Beans
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 2 ( )‏ Innehåll:Trådar: - Avbrott (”interrupts”)‏ - Metoden join()‏ Högnivå objekt för.
Windows Live Messenger. MSN. Vad är Windows Live Messenger ? Ett klient program för direktmeddelanden, dvs ett program som laddas ned från Internet och.
Föreläsning 9 Inläsning och utskrift på fil –SimpleTextFileReader –SimpleTextFileWriter Felsökning Java API.
Databaser, avancerade frågor
Från databas till Excel
IT Databas Göran Wiréen
Medicinska webbapplikationer
Presentationens avskrift:

2I1073 Föreläsning 2 KTH-MI Peter Mozelius Server, servlets och databaskopplingar

Klient - server I förra föreläsningen tittade vi en hel del på olika tekniker för klientsidan på Internet Nu går vi över till serversidan Treskiktsarkitektur – webbklient - webbserver - data – XHTML - Java servlets - databas

Klient-server med servlets

Java servlets Applets på serversidan 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

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 Ni väljer själva genom uppvärmningsövning2 – ver 4 – ver 5 – ver 6 Men det finns tyvärr en del smådetaljer som skiljer

Apache Tomcat Starta Tomcat: – startup.bat – startup.sh Stoppa Tomcat: – shutdown.bat – shutdown.sh

Apache Tomcat Anropa Tomcat genom: – –

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 servlet-api.jar  OBS jar-filen heter fr o m version5 servlet-api.jar I Windows under kontrollpanelen/miljövariabler

Apache Tomcat Om man vill använda JSP så är det också viktigt att sätta miljövariabeln:  JAVA_HOME ( Exempelvis: C:\jdk.16.x )  TOMCAT_HOME  heter fr om version 4  CATALINA_HOME

Tomcats konfigurationsfiler Tomcat har många konfigurationsfiler Två av dem är: web.xml servlets – mappning av servlets – CATALINA_HOME\webapps\miwebb\WEB-INF\ server.xml servlet context – Mappning av servlet context – CATALINA_HOME\conf\ PAUS 15 min

Servletanrop När servern får ett anrop från en servlet startas en ny tråd där service-metoden kollar vilken typ av HTTP-förfrågan det rör sig om: – GET – POST – HEAD – TRACE – PUT – DELETE

Servletanrop service kallar sedan på en passande metod: – doGet() – doPost() – [ doHead() ] – doTrace() – doPut() – doDelete()

GET och POST I 99% så handlar det om GET och POST GET – tänkt för att hämta saker från servern – jobbar med URL + frågesträng – vissa servrar klipper av frågesträngen efter x tecken POST – skickar data till servern utan att klienten ser – passar bättre för stora mängder data – säkrare än GET

doGet() och doPost() När du behöver bägge metoderna i en servlet så kan de med fördel kombineras enligt:  public void doGet(HttpServletRequest request,  HttpServletResponse response) {  Här finns koden som gör jobbet; }}  public void doPost(HttpServletRequest request,  HttpServletResponse response) {  doGet(request, response); }}

HttpServletRequest Ett sätt att få tag i viktig information HTTP Request = klientens förfrågan Request Header Läs innehållet i Request Header genom: – request.getHeader() – request.getHeaderNames() – request.getContentType() – request.getContentLength()

HttpServletRequest Andra användbara metoder är: – request.getMethod() – request.getProtocol() – request.getRequestURI() – request.getParameter() – request.getCookies() Mera om kakor om en liten stund

HttpServletResponse HTTP Response = serverns svar Här finns metoder som t ex – response.addCookie() //lägg till en kaka MEN den metod som vi mest ska använda är: response.getWriter() PrintWriter Öppnar en PrintWriter som kan skriva ut det vi vill ha som svar till klienten.

Cookies Med kakor så kan besökarnas individuella önskemål registreras och kommas ihåg En vanlig MEN omdiskuterad teknik I en del webbläsare är kakfunktionen avstängd Cookies är inte en del av HTTP utan en bit data som kan bäddas in i en request | response Netscape extension Från början en Netscape extension

Cookies Cookies finns i ett flertal språk I Java finns – j avax.servlet.http.Cookie Cookie kaka = new Cookie(name, value); allaSessionensKakor = request.getCookies() PAUS 15 min

ODBC - JDBC Open Data Base Connectivity Microsoftstandard för databaskopplingar JDBC framtagen av Javasoft Motsvarigheten för koppplingar från Java interoperabilitet En huvudpoäng är interoperabilitet

JDBC Gemensamt API Olika drivrutiner

java.sql metadata 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

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").newInstance(); } catch (ClassNotFoundException cnfe) { out.println("Couldn’t load database driver: " + 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 KI-databas ligger nåbar via: Andromeda.dsv.su.se Koppla dig dit enligt: Connection connection = DriverManager.getConnection(” jdbc:mysql://Andromeda.dsv.su.se/kilabuser=**** &password=********");

Exekvera en SQL-fråga När det finns en koppling till databasen så 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å användbara metoder: – next() – previous() while ( resultSet.next() ){ out.println(" "); out.println(" "+resultSet.getString(…

Koppla ner och stäng out.close(); statement.close(); connection.close(); Mer information finns inne i First Class i 2I1073/MySQL där Ken har lagt upp det ni behöver för Uppgift2d och projektet

Java Web Start Ett sätt att starta javaapplikationer på serversidan via en webbläsare: Applikationen packas i en jar-fil Tillsammans med en manifest-fil (som vi gjorde på 2I1049 förra året) Startas genom en JNLP-fil – JNLP-filen länkas in från ett XHTML-dokument

Java Web Start En enkel JNLP-fil återfinns på: u2e/u2e.txt u2e/u2e.txt Gör sedan den frivilliga Uppgift2e e/uppgift2e.htm Tack för idag!