0% found this document useful (0 votes)
77 views15 pages

JSP and Java Servlets Overview

This document compares and contrasts client-side and server-side web development. It discusses how client-side uses downloaded programs like Java applets and JavaScript, while server-side dynamically generates web pages on the server using technologies like JSP, PHP, and ASP. Server-side is better for database interaction, broad compatibility, and maintaining state across page requests. The document then provides an example of how JSP can be used to build data-driven websites and maintain state using session objects.
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
77 views15 pages

JSP and Java Servlets Overview

This document compares and contrasts client-side and server-side web development. It discusses how client-side uses downloaded programs like Java applets and JavaScript, while server-side dynamically generates web pages on the server using technologies like JSP, PHP, and ASP. Server-side is better for database interaction, broad compatibility, and maintaining state across page requests. The document then provides an example of how JSP can be used to build data-driven websites and maintain state using session objects.
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd

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 Database
• Customized views of data
• E.g. [Link]

• Scripts map data to html html


Server-side processing

Client (Browser) Server (Web server)

URL request
1. User click 2. Receive HTTP request
[Link]
3. Execute script
[Link]
Response
5. Display html 4. Send html result
html page
html
Example
[Link] server

[Link] [Link] [Link]

•Shows books list •Displays cart contents •Charges credit card


•Add to cart •Delete items •Displays ‘thankyou’

•View cart button •Purchase button •Link back to books


Problems
• Many simultaneous users
• No state data maintained
• Client not in sync with server (e.g. back button)

[Link] [Link] [Link]


Different than GUI programming!
• One user (per executable)
• ‘Global’ state data
• Client = server

[Link]

Books window
Cart window
Purchase window
Problems
• [Link] 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
[Link](“<html><body>”);
[Link](“<p>hello world”);
[Link](new [Link]( ));
[Link](“</body></html>”);

• Browser recieves:
<html><body>
Hello world 2:00pm, March 28, 2002
</body></html>
Java Server Pages (JSP)
• Html + code
• New tags <% %> and <%= %>
• [Link]:
<html><body>
Hello world <%= new [Link]() %>
</body></html>

• Client receives:
<html><body>
Hello world 2:00pm, March 28, 2002
</body></html>
Processing form input
• Global object: request, session

<% [Link](“username”,
[Link](“UserName”)) %>

<html><body>
Thanks for giving us your name, <%=
[Link](“username”) %>
</body></html>
Session Data
• Global object: session
<html><body>
Hello,
<%= [Link](“username”) %>
</body></html>

• Client receives:
<html><body>
Hello, Chris
</body></html>
JSP objects
• Application
• Config
• Out
• Request
• Response
• Session

You might also like