Download - Ch6 conversational state

Transcript
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