Java & het Web Programma: Sessies JSP. Stateless vs. Stateful(1) HTTP is stateless......... WAT IS STATELESS?

Slides:



Advertisements
Verwante presentaties
Grammar Chapter 4 – G1 What en Which.
Advertisements

Deel XVII: JSP-applicatiearchitectuur 1 Internetapplicaties Deel 17: JSP-applicatiearchitectuur Model 2 = MVC = Model View Controller.
Databases via internet
Deel XIV Eerste echte e-commerce applicatie Implementatie (vervolg) 1 Internetapplicaties Deel 14: Eerste echte e-commerce applicatie: Implementatie (vervolg)
Google Analytics. Google Analytics: waarom Google analytics meet hoeveel mensen er op de site komen, brengt in beeld wat we weten van dit mensen en wat.
Van domeinklasse tot implementatie
Webapplicaties: de serverkant
OOP met Java Sessie 1.
HTML Les 1: Introductie HTML
Klassen en objecten.
Hoofdstuk 6: Controle structuren
Inleiding Informatica Prof. Dr. O. De Troyer Hoofdstuk 10: Omgaan met problemen.
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.
Interrogative sentences
Verdieping Programmeren in Java - deel 1 college 6 mei 2001.
Introductie in: PHP. Groei in webapplicaties Groei in webapplicaties Het ontstaan van PHP Het ontstaan van PHP De client-serverarchitectuur De client-serverarchitectuur.
Woordvolgorde met woorden van tijd
LauwersCollege Buitenpost Java Applet programma dat op een website zichtbaar is Java Application programma dat zelfstandig werkt Javascript Scripttaal.
Opgave 1a: void nvoid staat in de header van een methode die geen resultaatwaarde heeft nde aanroep van een void-methode is dan een opdracht i.p.v. een.
In deze powerpoint vind je basis-grammatica: zaken die je na 3 onderbouwjaren eigenlijk niet onbekend voor mogen komen. Klik op een van onderstaande onderwerpen.
Deel XXI 1 Internetapplicaties Internetprogrammeren Capita Selecta.
Internetapplicaties - V Sessies 1 Internetapplicaties Deel 5: Sessies.
Herhaling Java-programmatie en geautomatiseerd testen (vervolg)
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.
Starten met PHP Dynamischer bouwen. PHP is een een scripttaal waarmee de server pagina’s in elkaar kunt laten zetten. Het verschil met HTML: Een php pagina.
PHP & MYSQL LES 01 PHP BASICS. PHP & MYSQL 01 PHP BASICS 02 PHP & FORMULIEREN 03 PHP & DATABASES 04 CMS: BEST PRACTICE.
Link Popularity Het principe van linkpopulariteit kun je als volgt samenvatten: hoe meer webpagina's er naar een bepaalde webpagina linken, des te belangrijker.
Starten met PHP Dynamischer bouwen.
JSF cursus deel 1 oefeningen
Les 2: Interactie in je space door middel van klikbare objecten en actionscript. Wat is actionscript en programmeren?
Deltion College Engels B1 Gesprekken voeren [Edu/008] theme: ‘I have to arrest you, you’ve stolen my heart’ … can-do : kan een eenvoudig face-to-face gesprek.
Instructie weblog. Start van je eigen weblog 1) Ga naar weblog.aocfriesland.nl 2) Je krijgt het volgende scherm te zien. 3) Ga naar inloggen, zowel links.
Animatie nAnimatie: “tekenfilm” programma toont automatisch veranderende beelden nGemakkelijk te programmeren met gebruik van de klasse Thread “draadje”
Datacommunicatie en netwerken
Tircms03-p les 4 Klassen. Abstracte datatypes in C struct stack { char info[100]; int top; }; void reset(stack *s) { s->top = -1; } void push(stack *s,
JAVA: een platformonafhankelijke taal
2G 16 November Today’s lesson  Last class  Mull  Puffins  Check homework (ex )  Thursday 9 December: TEST UNIT 2.
Scope. Scope van variaben/methoden Een variabele is te gebruiken binnen de { en } waarbinnen hij is aangemaakt. Hetzelfde geld voor een methode { int.
Encapsulatie: Every man is an island upon himself.
Polymorphisme en Interfaces: inleiding
Deltion College Engels B2 Schrijven [Edu/005] thema: Writing a hand-out can-do: kan een begrijpelijke samenvatting schrijven © Anne Beeker Alle rechten.
Klik op een vlag. Click on a flag Language: Ongewenste Cookies verwijderen Start Wat doen Cookies eigenlijk ? Cookies kunnen gebruikt worden voor het.
Prototyping Week 7 // Tweenlite & API. TweenMax Snel mooie en effectieve animatie.
Deltion College Engels B2 (telefoon)gesprekken voeren[Edu/002] /subvaardigheid lezen/schrijven thema: I am so sorry for you… can-do : kan medeleven betuigen.
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.
WHY ME LORD WAAROM IK HEER. What did I ever done? Wat heb ik ooit gedaan.
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.
Java Objectgeoriënteerd Programmeren in Java met BlueJ Hoofdstuk 8: Gebruikersinterface © 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: De essentie van een web applicatie (webapp) Protocol van een webapp Talen van het web Java Servlets & Containers.
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:
Functional Web Applications Implementation and Use of Client-Side Interpreters Jan Martin Jansen.
Loops en errors Array's Random try catch for loop while loop do while loop.
Windows applicatieontwikkeling
Gameprogrammeren: Lists en interfaces
OOS Object geOrienteerd Software-ontwerp - 5
Praegus B.V.. .
English 23 April 2018.
Software Development fundamentals
ASP.NET MVC Web Development
Windows applicatieontwikkeling
HTML5 introductie.
Transcript van de presentatie:

Java & het Web Programma: Sessies JSP

Stateless vs. Stateful(1) HTTP is stateless WAT IS STATELESS?

Stateless vs. Stateful(2) Het draait allemaal om 'conversational state'. Server: "hi request from client X, nice to meet you" Request van client X Stateless

Stateless vs. Stateful(3) Het draait allemaal om 'conversational state'. Server: "hi request from client X, nice to meet you, use label 'xyz' next time you are here" Server: "I see you've been here! Hello, what can I do for you again" Request van client X Request van client X met label 'xyz' Stateful

HttpSession...wat is dat(1)? Client X doet een request P naar servlet A. Container start thread A op. In thread A wordt een attribuut in een HttpSession A gezet (bijv. het resultaat van een zoekopdracht) Servlet A Thread A Container Client X HttpSession A setAttribute()

HttpSession...wat is dat(2)? Thread A stuurt een response terug naar client X Servlet A Thread A Container Client X HttpSession A

HttpSession...wat is dat(3)? Client X doet een request Q naar servlet A. Container start thread B op. In thread B zoekt de sessie van Client Xen zet een attribuut in een HttpSession A (bijv. het resultaat van een andere zoekopdracht) Servlet A Thread B Container Client X HttpSession A setAttribute() Zelfde client Zelfde servlet Ander request Andere thread Zelfde sessie

HttpSession...wat is dat(4)? Thread B stuurt een response terug naar client X Servlet A Thread B Container Client X HttpSession A In HttpSession A staan nu de resultaten (als attributen) van twee zoekopdrachten

HttpSession...wat is dat(5)? Client Y doet een request R naar servlet A. Container start thread C op. In thread C zoekt de sessie van Client Yen zet een attribuut in een HttpSession B Servlet A Thread C Container Client Y HttpSession B setAttribute() Andere client Zelfde servlet Ander request Andere thread Andere sessie HttpSession A

HttpSession...wat is dat(6)? Een stateful http session kan o.a. bereikt worden door: 1.Session Cookies 2.URL rewriting Session cookies zijn mini bestandjes die uitgewisseld worden tussen server en client. Deze cookie bestaat alleen gedurende de sessie en wordt door de container gebruikt voor het terugvinden van de sessie. Als de sessie niet meer geldig is dan wordt de cookie verwijderd. Als een browser geen cookies accepteert dan kan gekozen worden voor URL rewriting. Hierbij wordt aan het eind van elke url een uniek session id geconcateneerd.

HttpSession...wat is dat(7)? Het gebruik van cookies is heel eenvoudig, geef het commando 'HttpSession session = request.geSession();' in bijvoorbeeld een servlet. De container creeërt een cookie en stuurt dit naar de browser. Die stuurt het (als het cookies accepteert) met ieder request terug naar de server. Dit is alles, wat je NIET doet: 1.HttpSession object instantieren 2.Cookie object instantieren 3.Uniek sessionID genereren en aan cookie binden. 4.Cookie in de response zetten Dit alles doet de container voor je!

HttpSession...wat is dat(8)? Sommige gebruikers willen dat hun browser (uit veiligheid overwegingen) geen cookies accepteert. Hoe kun je nu toch een HttpSession opzetten?? URL rewriting is de oplossing. Er wordt een uniek sessionID achter elke link geplaatst, bijv: HttpSession session = request.getSession(); out.println(" "); URL rewriting code moet je zelf toevoegen en wordt alleen door server gebruikt als cookies niet geaccepteerd worden.

HttpSession...wat is dat(9)? Vraag: Hoe weet een container of cookies wel of niet werken en wanneer hij moet overschakelen op URL rewriting????

JSP.....wat is dat(1)? Opmaakcode schrijven (HTML) in een java servlet is op z'n minst lastig. Wat nu als het een heel uitgebreide pagina is met HTML, css javascript etc....Dat is het nagenoeg onmogelijk om servlets te gebruiken. Toch??? Het antwoord: JSP (java server page) Een JSP is een pagina waarin zowel opmaakcode als java door elkaar gebruikt mogen worden.

JSP...wat is dat(2)? Een simpel voorbeeld: Current Date time: of

JSP...wat is dat(3)? MAAAAARRRR een JSP is eigenlijk gewoon een servlet!!!!! De eerste keer dat een JSP wordt aangeroepen, vertaalt de container de JSP 'MijnJSP.jsp' naar 'MijnJSP_jsp.java' en compileert deze naar 'MijnJSP_jsp.class'. Vervolgens wordt deze class geinstantieerd tot een 'MijnJSP servlet'!

JSP...wat is dat(4)? Onderstaande jsp code wordt vertaald in.....?

JSP...wat is dat(5)? package jsp_servlet; import java.util.*; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import javax.servlet.jsp.*; import javax.servlet.jsp.tagext.*; import com.foo.bar; // Imported as a result of import … class _myservlet implements javax.servlet.Servlet, javax.servlet.jsp.HttpJspPage { // Inserted as a // result of int serverInstanceVariable = 1; … public void _jspService( javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response ) throws javax.servlet.ServletException, java.io.IOException { javax.servlet.ServletConfig config = …; // Get the servlet config Object page = this; PageContext pageContext = …; // Get the page context for this request

JSP...wat is dat(6)? javax.servlet.jsp.JspWriter out = pageContext.getOut(); HttpSession session = request.getSession( true ); try { out.print( " \r\n" ); out.print( " \r\n" ); … // From int localStackBasedVariable = 1; … out.print( " \r\n" ); out.print( " " ); // From out.print( toStringOrBlank( "expanded inline data " + 1 ) ); out.print( " \r\n" ); … } catch ( Exception _exception ) { // Clean up and redirect to error page in } } }

JSP...wat is dat(7)? In een JSP gebruik je: -directives -scriptlets of -expressions wordt geconverteerd naar: ou t.println(Counter.getCount()); -declarations

JSP...wat is dat(8)? In een JSP gebruik je: Scriptlets en expressions eindigen altijd in de 'service methode' van het uiteindelijke servlet. Gedeclareerde variabelen zijn dus lokale variabelen. en eindigen als: public class.... public void _jspService(HttpServletRequest ) {..... int count =1; out.println(++count); }

JSP...wat is dat(9)? In een JSP gebruik je: Declarations eindigen altijd als class instance variabelen eindigt als: public class MijnServlet extends... { int count =1; public void _jspService(HttpServletRequest ) {..... }

JSP...wat is dat(10)? In een JSP staan een aantal 'implicit objects' tot je beschikking. Dit zijn object die je meteen kunt gebruiken en niet apart hoeft op te zoeken of te creëren. JSPWriter - out HttpServletRequest - request HttpServletResponse - response HttpSession - session ServletContext - application ServletConfig - config JSPException - exception PageContext - pageContext