Server Side: JSP and Java Servlets

Preview:

DESCRIPTION

Server Side: JSP and Java Servlets. Chris North cs3724: HCI. Client-side. Method: Download and run program on client Examples: Java applets, javascript, activeX, css, plugins, Good for: dynamic interaction, Reducing server load Animations, processing intensive - PowerPoint PPT Presentation

Citation preview

Server Side:JSP and Java Servlets

Chris North

cs3724: HCI

Client-side

• Method:• Download and run program on client

• Examples:• Java applets, javascript, activeX, css, plugins,

• Good for:• dynamic interaction,

• Reducing server load

• Animations, processing intensive

• Server security, crash protection

Server-side

• Method:• Dynamically generated web pages on server• Download resulting html page to client

• Examples:• JSP, Java Servlets, php, asp, cgi, perl, includes, C

• Good for:• database interaction• Broad client compatibility, customize to browser/OS• Data synchro, collaborative apps• Access control• Small downloads• No installs• Code security, hack protection• Client security• Screen scraping• simple interaacations

Example: Data-Driven Websites

• Websites that provide access to:• Lots o data

• Dynamic data

• Customized views of data

• E.g. ebay.com

• Scripts map data to html

Database

html

Server-side processing

Client (Browser)

1. User click

5. Display html

Server (Web server)

2. Receive HTTP request

3. Execute script

4. Send html resultResponsehtml page

URL requestscript.jsp

html

Script.jsp

Example

Books.exe Cart.exe Purchase.exe

•Shows books list•Add to cart

•View cart button

•Displays cart contents•Delete items

•Purchase button

•Charges credit card•Displays ‘thankyou’

•Link back to books

Amazon.com server

Problems

• Many simultaneous users

• No state data maintained

• Client not in sync with server (e.g. back button)

Books.exe Cart.exe Purchase.exe

Different than GUI programming!

• One user (per executable)

• ‘Global’ state data

• Client = server

Shopping.exe

Books windowCart window

Purchase window

Problems

• Myscript.exe starts from scratch each time• Each page request is completely independent

• No state data maintained between requests» Who is the user?

» What is his data?

» Where is he in the ‘application’?

• How to maintain state info across page accesses?• Pile all state data into hidden form items

• Cookies

• Store state data in a database, index by unique user id

Java Servlets

• Html:• Link: URL/servlet

• Form post

• Servlet• Init()

• Destroy()

• doGet()

• doPost()

example

Out.println(“<html><body>”);

Out.println(“<p>hello world”);

Out.println(new java.util.Date( ));

Out.println(“</body></html>”);

• Browser recieves:<html><body>

Hello world 2:00pm, March 28, 2002

</body></html>

Java Server Pages (JSP)

• Html + code• New tags <% %> and <%= %>• Myscript.jsp:<html><body>Hello world <%= new java.util.Date() %></body></html>

• Client receives:<html><body>Hello world 2:00pm, March 28, 2002</body></html>

Processing form input

• Global object: request, session

<% session.putValue(“username”, request.getParameter(“UserName”)) %>

<html><body>

Thanks for giving us your name, <%= session.getValue(“username”) %>

</body></html>

Session Data

• Global object: session<html><body>

Hello,

<%= session.getValue(“username”) %>

</body></html>

• Client receives:<html><body>

Hello, Chris

</body></html>

JSP objects

• Application

• Config

• Out

• Request

• Response

• Session

Recommended