Ch6 conversational state

29
Εξέταση 2ης εργασίας Παρακαλώ οι παρακάτω να παραμείνουν την 2η ώρα για να συζητήσουμε την εργασία τους 546(alkis), 593 (antonis), 917(thodoros), 935, 941, 959(sotiri), 989, 996(alexandros), 1502(evi), 1557

description

Cookies and such

Transcript of Ch6 conversational state

Page 1: Ch6   conversational state

Εξέταση 2ης εργασίας

• Παρακαλώ οι παρακάτω να παραμείνουν την 2η ώρα για να συζητήσουμε την εργασία τους

546(alkis), 593 (antonis), 917(thodoros), 935, 941, 959(sotiri), 989, 996(alexandros), 1502(evi), 1557

Page 2: Ch6   conversational state

3η εργασίαΜελετήστε το 5ο κεφάλαιο του βιβλίου Head First Servlets & JSP, Second Edition, και προσπαθήστε τις ερωτήσεις της εξέτασης.

Χρησιμοποιήστε τον σύνδεσμο http://www.datadisk.co.uk/html_docs/jsp/jsp_mvc_tutorial.htm για να υλοποιήσετε μια web application η οποία θα μας βοηθάει να επιλέξουμε το είδος του καφέ που επιθυμούμε.

Καταθέστε την εργασία σας πριν τις 08.00 της Δευτέρας 27 Οκτωβρίου συμπληρώνοντας την παρακάτω φόρμα.

Page 3: Ch6   conversational state

Εργασία εξαμήνου

Δώστε τις προτάσεις σας και συζητήστε τες μαζί μου.

Page 4: Ch6   conversational state

Conversational StateChapter 6

Page 5: Ch6   conversational state

Conversational state• Web servers have no short-term memory. As soon as they close

connection to your session they forget you.

• Most of the time this is what you need

• Sometimes you do need to keep the conversation with the container alive for awhile.

• Keep client specific state across multiple requests

Page 6: Ch6   conversational state

Implement

• Use a stateful session enterprise javabean

• Use a database

• Use an HttpSession

Page 7: Ch6   conversational state

How Sessions

Work

Page 8: Ch6   conversational state

Clients & Sessions

• HTTP is stateless

• HTTPS is not but it is heavy in many respects

• Unique IP is not enough

Page 9: Ch6   conversational state

Unique Session ID

Page 10: Ch6   conversational state

Cookies

Page 11: Ch6   conversational state

Let the container do most

Get or set

HttpSession session = request.getsession();

Page 12: Ch6   conversational state

Existing or not?

Page 13: Ch6   conversational state

Pre-existing session?

Page 14: Ch6   conversational state

URL re-writing

Page 15: Ch6   conversational state

URL re-writing only after encoding

Page 16: Ch6   conversational state

Summary for get.Session()I want a session for THIS client

A session that matches the session ID sent or

A new session

The session is with the client associated with the request

Page 17: Ch6   conversational state

You need to do some killing

Page 18: Ch6   conversational state

• Authority  to  kill  – Container  – You  

• Ways  to  kill  – timeout  – invalidate()  – crash

Killing Sessions

Page 19: Ch6   conversational state

All  sessions

Only  the  session  you  call  

from

Death by timeout

Page 20: Ch6   conversational state

• Cookies  are  sweet  because  the  container  takes  care  of  during  a  session.  

• You  may  keep  a  cookie  across  sessions  too.

Using Cookies

Page 21: Ch6   conversational state

No  getCookie(String)

Using Cookies with Servlet API

Page 22: Ch6   conversational state

Example  (SET  &  send)

Page 23: Ch6   conversational state

Example  (GET)

Page 24: Ch6   conversational state

Cookies  are  not  Headers!

Page 25: Ch6   conversational state

Milestones

Page 26: Ch6   conversational state

Session  is  not  duplicated

Session on different VMs

Page 27: Ch6   conversational state

Session  Migration

Page 28: Ch6   conversational state

Session  related  Listeners

Page 29: Ch6   conversational state

Listeners  &  API