Transcript Cookies

JSON
JSON

JavaScript Object Notation

a lightweight text-based open standard designed for humanreadable data interchange.

Derived from JavaScript for representing singleton
Internet technologies – Ohad ©
JSON Example
{
“someString: “asas”,
“someNum” : 4,
“someArr” : [“aa”,”bb”],
“someJson”: { someStr2:”aaa”}
}
Internet technologies – Ohad ©
JSON and AJAX


JSON is the most standard data format for ajaxing
http://localhost:8888/ajax.html
Internet technologies – Ohad ©
JSON and JavaScript


String to Object: str.parseJSON();
Object to String JSON.stringify(obj);
Internet technologies – Ohad ©
JSON in Java

GSON



A free open source that helps translate object<-> JSON
http://code.google.com/p/google-gson/
http://sites.google.com/site/gson/gson-user-guide
Internet technologies – Ohad ©
Cookies
Cookies




A piece of text stored by a user's web browser
Key-value format
May be encrypted
With or without an expiration date.


Cookies without an expiration date exist until the
browser terminates
Cookies can’t be used as a virus
Usage




HttpSession
Personalization
Tracking (e.g. “Remember me?”)
3rd parties cookies
Implementation
Cookies and HTTP

Cookies are part of the Http request and Response
headers
Request: “Set-Cookie: name=value“
 Response: “Cookie: name=value”

Cookies and JavaEE

Adding a cookie:


Cookie cookie = new Cookie("CName","Cookie Value");
cookie.setMaxAge(100); //in seconds
response.addCookie(cookie);
Reading cookies:

Cookie[] cookies = request.getCookies();
Cookies and JavaScript

Creating a cookie:


Reading all cookies:


document.cookie = name+"="+value+expires+";
var cookiesArray = document.cookie.split(';');
Erasing a cookie

Same as creating whereas “expires = -1”;
Session hijecking
HttpFilters

Filter is like a lightweight servlet that



doesn't generate its own content
instead it plugs into the request handling process and
executes in addition to the normal page processing.

Filters can be applied to any resource
 Filter implements the interface javax.servlet.Filter,

and configured in the web application web.xml file

doFilter()
Filter Example
doFilter(request, response, FilterChain chain) {
long startTime = System.currentTimeMillis();
chain.doFilter(request, response);
long stopTime = System.currentTimeMillis();
System.out.println("Time to execute request: " +
(stopTime - startTime) + " milliseconds");
 {
In Web.xml
<filter>
 <filter-name>Timer</filter-name>
 <filter-class>internet.demo.Timer</filter-class>
</filter>
<filter-mapping>
 <filter-name>Timer</filter-name>
 <url-pattern>/*</url-pattern> // any file..
</filter-mapping
Other usages


Auto-redirect to login page …
Block access to resources such as pictures..
Servlet 3.0
New Version for servlets

Annotations




@Servlet(urlMappings={"/MyApp"}) // no web.xml
@GET on @POST on any method
@ServletFilter @FilterMapping("/foo") // no web.xml
Asynchronous Support

the Servlet Engine “understands” that this thread can be
suspended
Chrome Extensions
Chrome Extension



Chrome is a web browser developed by Google
It was first released on September 2008
Chrome is the third most widely used browser,


with 13.35% of worldwide usage
Chrome includes V8

A JS VM
Extension



An extension is a zipped bundle of files—HTML,
CSS, JavaScript, images..
adds functionality to the Chrome browser.
Extensions are essentially web pages.
Popup extension

Manifast.json
{
"name": "My First Extension",
"version": "1.0",
"description": "The first extension that I made.",
"browser_action":
{
"default_icon": "icon.png"
"popup": "popup.html" },
"permissions": [ "http://api.flickr.com/" ]
}
Background extension

Manifast.json
{
"name": "My First Extension",
"version": "1.0",
"description": "The first extension that I made.",
"background_page": "bg.html",
"permissions": [ "http://api.flickr.com/" ]
}
The backgroundPage.html:



<html> <body> <script type="text/javascript">
//the extension functionality here
</script> </body> </html>
API for background
chrome.browserAction.onClicked.addListener(
function(tab){ //do something when someone click}
);
chrome.tabs.executeScript(tabs[i].id, {“code”:code}
chrome.management.onInstalled.addListener()..
API:
http://code.google.com/chrome/extensions/api_index.
html
Tutorial

http://project67555.appspot.com/extension.html
Q/A
Internet technologies – Ohad ©