Server Side: JSP and Java Servlets: Chris North cs3724: HCI
Server Side: JSP and Java Servlets: Chris North cs3724: HCI
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 Database
• Customized views of data
• E.g. ebay.com
URL request
1. User click 2. Receive HTTP request
script.jsp
3. Execute script
Script.jsp
Response
5. Display html 4. Send html result
html page
html
Example
Amazon.com 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’?
• 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