note description : "Basic Service that build a generic front to demonstrate the use of Cookies" date : "$Date$" revision : "$Revision$" class APPLICATION_EXECUTION inherit WSF_EXECUTION create make feature -- Basic operations execute -- Execute the incomming request local l_message: STRING l_header: HTTP_HEADER l_time: HTTP_DATE l_cookies: STRING l_answer: STRING do -- all the cookies create l_cookies.make_empty across request.cookies as ic loop l_cookies.append (ic.item.name) l_cookies.append("
") end if request.path_info.same_string ("/") then create l_header.make create l_answer.make_from_string (web_page) if request.cookie ("_EWF_Cookie") = Void then -- First access the the home page, find a cookie with specific name `_EWF_Cookie' l_answer.replace_substring_all ("$header_title", "Hey, thanks for access our cool site, this is your first acess") l_answer.replace_substring_all ("$cookies", l_cookies) create l_time.make_now_utc l_time.date_time.day_add (40) l_header.put_cookie_with_expiration_date ("_EWF_Cookie", "EXAMPLE",l_time.date_time, "", Void, False, True) else -- No a new access l_answer.replace_substring_all ("$header_title", "Welcome back, please check all the new things we have!!!") l_answer.replace_substring_all ("$cookies", l_cookies) end l_header.put_content_type_text_html l_header.put_content_length (l_answer.count) response.put_header_text (l_header.string) response.put_string (l_answer) elseif request.path_info.same_string ("/visitors") then create l_header.make create l_answer.make_from_string (visit_page) if request.cookie ("_visits") = Void then -- First access the the visit page, find a cookie with specific name `_visits' l_answer.replace_substring_all ("$visit", "1") l_answer.replace_substring_all ("$cookies", l_cookies) create l_time.make_now_utc l_time.date_time.day_add (40) l_header.put_cookie_with_expiration_date ("_visits", "1",l_time.date_time, "/visitors", Void, False, True) else if attached {WSF_STRING} request.cookie ("_visits") as l_visit then create l_time.make_now_utc l_time.date_time.day_add (40) l_answer.replace_substring_all ("$visit", (l_visit.value.to_integer + 1).out ) l_answer.replace_substring_all ("$cookies", l_cookies) l_header.put_cookie_with_expiration_date ("_visits", (l_visit.value.to_integer + 1).out,l_time.date_time, "/visitors", Void, False, True) end end create l_time.make_now_utc l_time.date_time.second_add (120) l_header.put_content_type_text_html -- This cookie expires in 120 seconds, its valid for 120 seconds l_header.put_cookie_with_expiration_date ("_Framework", "EWF",l_time.date_time, "/", Void, False, True) -- This is a session cookie, valid only to the current browsing session. l_header.put_cookie ("Session", "Cookie",Void, "/", Void, False, True) l_header.put_content_length (l_answer.count) response.add_header_text (l_header.string) response.put_string (l_answer) end end feature -- Home Page web_page: STRING = "[ EWF Handling Cookies

$header_title

Visitors

Cookies for the home page

$cookies
]" visit_page: STRING = "[ EWF Handling Visit Page

The number of visits is $visit

Cookies for the Visit page

$cookies

Back to Home
]" end