Server Side: JSP and Java Servlets

illinoiseggoSoftware and s/w Development

Oct 28, 2013 (3 years and 11 months ago)

94 views

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 result

Response

html page

URL request

script.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 window

Cart 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