Java & het Web Programma: De essentie van een web applicatie (webapp) Protocol van een webapp Talen van het web Java Servlets & Containers.

Slides:



Advertisements
Verwante presentaties
Internet College 1 Architecturen.
Advertisements

Databases via internet
Deel XIV Eerste echte e-commerce applicatie Implementatie (vervolg) 1 Internetapplicaties Deel 14: Eerste echte e-commerce applicatie: Implementatie (vervolg)
Deze presentatie mag noch geheel, noch gedeeltelijk worden gebruikt of gekopieerd zonder de schriftelijke toestemming van Seniornet Vlaanderen VZW Mijn.
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Webapplicaties: de serverkant
... M A K E Y O U R N E T W O R K S M A R T E R IP-Adres instellen ppt_aa1_p10_ip_addressing_v4.1_nl_0508.
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Blok 7: netwerken Les 8 Christian Bokhove.
Woensdag 24 juni 2009 Web 2.0 en Technologie Bram de Kruijff.
Java in Space Joffrey Lambregs. Agenda Introductie Waarom van C naar Java Tekortkomingen van Java Oplossingen JSR302 DAL-Levels Data diodes Werken in.
Klassen en objecten.
Hoofdstuk 5: Bestanden.
GWT-RPC Bram Vandeputte. Wat is GWT-RPC Raamwerk voor envoudige client-server uitwisseling van Java Objecten. Gebaseerd op de Java Servlet architectuur.
PLDA – Connectiviteit Rudolf de Schipper Geoffroy Fauveaux 09/11/2004.
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Webapplicaties: de clientkant in het universitaire onderwijs Sylvia Stuurman – Herman Koppelman Faculteit Informatica.
Wolter Kaper - Ruby on Rails Webtoepassing ontwerpen Webprogrammeren, week 1.
Introductie in: PHP. Groei in webapplicaties Groei in webapplicaties Het ontstaan van PHP Het ontstaan van PHP De client-serverarchitectuur De client-serverarchitectuur.
Hoofdstuk 16 en 19 PHP en MYSQL
Het electronische paspoort
Deel XIX Security, Servlets & authenticatie 1 Internetapplicaties Deel XIX: Security, Servlets & Authenticatie.
Deel XXI 1 Internetapplicaties Internetprogrammeren Capita Selecta.
Deel XX Hosting 1 Internetapplicaties Deel XX Hosting.
Deel X: JSP + Java + database 1 Internetapplicaties Deel 10: JSP + Java + database: Client Server via http.
Windows Applicaties Bouwen met Visual Studio.NET Sijmen Koffeman Development Consultant Microsoft.
Client-side scripting. 1.Scripting in webpagina’s 1. Verschillende talen VB: toepassingen in Windowsomgeving VBA: toepassingen in MS-Office VBScript internet.
PHP & MYSQL LES 02 PHP & FORMULIEREN. PHP & MYSQL 01 PHP BASICS 02 PHP & FORMULIEREN 03 PHP & DATABASES 04 CMS: BEST PRACTICE.
PHP & MYSQL LES 01 PHP BASICS. PHP & MYSQL 01 PHP BASICS 02 PHP & FORMULIEREN 03 PHP & DATABASES 04 CMS: BEST PRACTICE.
Farmaceut domein (Client) Innospense domein (Server) Browser Webserver
Starten met PHP Dynamischer bouwen.
MVC in de praktijk Jeroen Swart.NET architect, Quintor
Datacommunicatie en netwerken
1 OMI Digitaal publiceren in bredere context.
Behind Interactive Media. Agenda 1.Huiswerk doornemen 2.Server side & Client side 3.Quiz 4.Huiswerk.
Prototyping Week 7 // Tweenlite & API. TweenMax Snel mooie en effectieve animatie.
Client side vs Server side Server side code Code wordt op de webserver uitgevoerd Bewerkt de html die naar de gebruiker gestuurd wordt voordat die verzonden.
Java Objectgeoriënteerd Programmeren in Java met BlueJ
Java Objectgeoriënteerd Programmeren in Java met BlueJ Hoofdstuk 7 Polymorfie en overerving © 2014, Gertjan Laan, versie 2.
INFITT01 - Internettechnologie WEEK 3. Programma Sessies JSP.
Java & het Web Programma: Databases (jdbc, JNDI, ORM, JPA)
Java & het Web Programma: 3rd party libraries Standard actions (E)xpression (L)anguage.
Java & het Web Programma: Beveiliging Filters. Security.....wat is dat(1)? Beveiliging draait om 4 belangrijke steunpilaren: 1.Authenticatie: is de persoon.
Java & het Web Programma: Contexts Listeners Scope/Attributes Thread safety.
Java & het Web Programma: Sessies JSP. Stateless vs. Stateful(1) HTTP is stateless WAT IS STATELESS?
Java & het Web Programma: JSP. JSP....herhaling Welke van de volgende expressions is geldig/ongeldig? %>
Java & het Web Programma: JSTL Uitgebreide demo. JSP....herhaling Standard actions en (E)xpression (L)anguage: -Standard actions hebben de syntax:
Variabelen. Wat zijn variabelen? In een programmeertaal zijn er “dingen” nodig die ervoor zorgen dat het programma informatie voor korte of langere tijd.
Hoe beheer je efficiënt computers op school? Linux Terminal Server Project (LTSP)in de praktijk Rob Burggraaf Bovenschoolse ICT coördinator VPCO.
Hoe een website realiseren ? Horen, zien en ontsluiten Gooik, 27 januari 2006 Johnny Van Bavegem Heemkundige Kring van Gooik.
wordPress  Het meest flexibele CMS CMS= Content Management System.
Functional Web Applications Implementation and Use of Client-Side Interpreters Jan Martin Jansen.
GBIF NODES Committee Meeting Copenhagen, Denmark 4 th October 2009 GBIF IPT Vereisten Kyle Braak Developer GBIF Secretariaat.
Webwinkel in het D-cluster van de opleiding Logistiek Ad van Kooten – docent ERP toepassingen  Pract. 1.
Java voor beginners Doel: Een spel maken in LWJGL Door: Jim van Leeuwen.
De definitie van een object. Een object is een verzameling van eigenschappen en bewerkingen. Veel voorkomende objecten zijn: D (display) Gui (user interface)
Netwerken 6 Enigma Netwerken paragraaf 9. Applicatielaag End-to-end principe De infrastructuur (het internet) staat los van de toepassingen Makkelijk.
Software Development fundamentals
TranSearch Real Time Document & Asset Management Web Client
M5 Datacommunicatie Applicatielaag
ASP.NET MVC Web Development
Praegus B.V.. .
Rest webservice IN WINDEV / WEBDEV 22.
Software Development fundamentals
ASP.NET MVC Web Development
Software Development fundamentals
– Software development fundamentals
– Software development fundamentals
Software Development fundamentals
Netwerken & Internet 1.
Transcript van de presentatie:

Java & het Web Programma: De essentie van een web applicatie (webapp) Protocol van een webapp Talen van het web Java Servlets & Containers

Java & het Web Het web is essentieel onderdeel van ons leven geworden.... Veel gehoorde technische termen: HTML, CSS, webserver, database, browser, security, xslt, XML, HTTP En Java......wat voor rol speelt Java hier in?

Wat gebeurt er...conceptueel

HTTP....wat is dat(1)? Het World Wide Web communiceert via het HTTP netwerk protocol. Dat staat voor Hyper Text Transfer Protocol. Dit protocol is beschrijft hoe clients (bijv. browsers) 'praten' met (web)servers. HTTP is een request/response protocol, d.w.z. de client verstuurt een request voor een resource (bijv. een html pagina) en de server antwoord met een response.

HTTP....wat is dat(2)? HTTP is een stateless protocol (i.t.t. stateful)! Bij elk request is de client een voor de server!! Dit is lastig bij bijv. winkelwagen: je wilt tussen verschillende requests door bijhouden wie de client is! Oplossing: HTTP sessie, cookies, URL rewriting

HTTP....wat is dat(3)? HTTP kent verschillende methodes waarmee een request gedaan kan worden: -GET Belangrijk!! -POST Belangrijk!! -PUT -DELETE -TRACE -HEAD Heel soms handig! -OPTIONS -CONNECT

HTTP....wat is dat(4)? GET Alleen voor het opvragen van een resource. Een GET is (zou moeten zijn) IDEMPOTENT. D.w.z. dat het request GEEN 'neven effecten' mag hebben (bijv. update database) POST Is NIET idempotent. Toestand van server + achterliggende systemen hoeft niet hetzelfde te zijn voor en na de POST. Wordt gebruikt voor formulieren.

HTTP get....wat is dat(1)? GET request: GET /services/csp/policy?build=2929 HTTP/1.1 Host: addons.mozilla.org User-Agent: Mozilla/5.0 (X11; Linux i686; rv:2.0.1) Gecko/ Firefox/4.0.1 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*; q=0.8 --> Content-Type response Accept-Language: en-us,en;q=0.5 Accept-Encoding: gzip, deflate Accept-Charset: ISO ,utf-8;q=0.7,*;q=0.7 Keep-Alive: 115 Connection: keep-alive

HTTP get....wat is dat(2)? GET request: Heeft geen body, dus kan niet veel gebruikers data niet de server (hangt af van client/server) data verzenden kan alleen via URL, dus alles is zichtbaar (dus geen wachtwoord via GET versturen)! Is (zou moeten zijn) IDEMPOTENT Kan "gebookmarked" worden

HTTP post....wat is dat(1)? POST request: POST /stat HTTP/1.1 Host: docs.google.com User-Agent: Mozilla/5.0 (X11; Linux i686; rv:2.0.1) Gecko/ Firefox/4.0.1 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*; q=0.8 Accept-Language: en-us,en;q=0.5 Accept-Encoding: gzip, deflate color=red&taste=bitter --> message body

HTTP post....wat is dat(2)? POST request: Heeft een body via welke de gebruikers data wordt verstuurd. Onbeperkt in lengte Formulier (=POST) kan niet "gebookmarked" worden. Is NIET idempotent (=kan 'bij effecten hebben')

HTTP response....wat is dat(1)? HTTP response: HTTP/ OK Cache-Control: no-cache, no-store, max-age=0, must- revalidate Pragma: no-cache Expires: Fri, 01 Jan :00:00 GMT Date: Wed, 08 Jun :05:20 GMT Content-Type: text/javascript --> Accept in request Content-Encoding: gzip X-Content-Type-Options: nosniff X-XSS-Protection: 1; mode=block Content-Length: 420

Waar zit de Java (1)? Er zijn verschillende soorten webservers, bijvoorbeeld: -Apache (statische HTML, PHP, Ruby.....) -IIS (ASP,.NET) -Tomcat, GlassFish, WebLogic, Jonas...etc (Java) De laatsten zijn eigenlijk servletcontainers/applicatieservers welke ook als webserver kunnen fungeren. In de praktijk worden deze vaak gebruikt i.c.m. Apache

Waar zit de Java (2)? Java of PHP???? PHP: -Scripttaal, draait in interpreter -Relatief makkelijk te schrijven deployen -Open source, veel 3rd party libraries -Wat moeilijker te schalen (d.w.z. 'groter' te maken)

Waar zit de Java (3)? Java: -Gecompileerde taal -Type safe, fouten worden compile time ontdekt (bij PHP runtime, is daardoor lastiger te testen) -Aanvankelijk moeilijker te deployen -'Open source', veel 3rd party libraries -goed te schalen -Meer controle oer threads -mogelijkheid tot asynchrone transacties -robuuster

Waar zit de Java (4)? Java wordt gebruikt in servlet containers (bijv. Tomcat) en applicatie servers (bijv. Glassfish) Tomcat (Apache Software Foundation) is de referentie implementatie van een servlet/JSP container volgens de J2EE specification van Sun/Oracle, d.w.z. dat Tomcat de J2EE specificatie correct implementeert.

Java, belangrijke classes en aantal belangrijke Java classes en interfaces welke een centrale rol spelen in Java en het Web: -abstract class javax.servlet.http.HttpServlet -interface javax.servlet.http.HttpServletRequest -interface javax.servlet.http.HttpServletResponse -interface javax.servlet.http.HttpSession De laatste 3 zijn interfaces zodat elke servletcontainer de interfaces op zijn eigen manier kan implementeren! Het is nl. de servletcontainer die de objecten genereert die deze interfaces implementeren.

Webserver & Servletcontainer Een webserver alleen kan niet zoveel... Geen dynamische content Geen data opslag Combinatie met servlet container: Web server stuurt HTTP request door naar Tomcat. In Tomcat 'draait' een servlet (= java class) welke bepaalde functionaliteit uitvoert. Apache Servlet in Tomcat Request & Response

Een Servletcontainer Een servlet kan niet los draaien, zoals een java class met een 'main' methode. Een servlet draait in een container zoals bijv. Tomcat. De container verzorgt bepaalde diensten voor de servlet. -Wachten/genereren ServletRequest/ServletResponse -Lifecycle management -Verschaft servlet makkelijk toegang tot bepaalde resources (databases, jndi etc...)

Een Servlet Eigenschappen: Een java class die javax.servlet.http.HttpServlet extends Draait altijd in een 'container' (wordt 'ge-deployed' in een servlet container) Lifecycle van een servlet wordt geregeld door de container Wordt slecht 1 instantie van gemaakt! NIET threadsafe --> i.c.m. 1 instantie: voorzichtig met class variabelen! Override get/post methodes Wordt geconfigureerd in WEB-INF/web.xml deployment descriptor.

Servlet: een simpel voorbeeld package test; import java.io.*; import javax.servlet.http.*; import javax.servlet.*; public class HelloServlet extends HttpServlet { public void doGet (HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { PrintWriter out = res.getWriter(); out.println("Hello, world!"); out.close(); }

Servlet: een simpel voorbeeld De web.xml --> moet in WEB-INF hello test.HelloServlet hello /hello