JDC_Lecture21 - Computer Science

Download Report

Transcript JDC_Lecture21 - Computer Science

UMass Lowell Computer Science 91.460
Java and Distributed Computing
Prof. Karen Daniels
Fall, 2000
Lecture 21
Java Servlets
Wed. 11/22/00
based on material from http://java.sun.com
and Deitel, Chapter 19
What is a Servlet?

Servlets are somewhat of a server-side
analog of client-side applets
 but,
servlets have no GUI
Java module that extends request/responseoriented servers
 Works with Java-enabled web (HTTP)
servers that support the Java Servlet API

 executes
in a web server thread
What is a Servlet’s Context?
Java 2 Platform
Enterprise Edition
Standard Edition
Micro Edition
What can a Servlet do?

Handle HTTP client requests
 Handle
multiple requests concurrently
 Forward requests to other servers and servlets
Generate dynamic documents
 Work with databases (e.g. using JDBC)

How is a Servlet different from…?

From Common Gateway Interface (CGI)
script?
 Can
perform similar tasks, but…
 Servlet:
provides platform independence
 efficient: executes in a web server thread



CGI script spawns a new process
can access server resources
How is a Servlet different from…?

From Java Server Pages (JSP)? JSP:
 is
an extension of the Servlet concept
 in principle, can do JSP tasks with a Servlet

but JSP is more convenient for some tasks
 allows
mixing of static HTML with
dynamically-generated HTML

dynamic part is written in Java
 separates
display aspects from content
JSP for display aspects
 Servlet for content management

 supports
XML
How is a Servlet different from…?
 From
JavaScript? JavaScript:
 works
on the client side
 generates HTML dynamically on the
client side
How does a Servlet work?

invoked via URL in .html file






executes in a Java-enabled web server thread
supports the Java Servlet API
implements the Servlet interface
extends (typically) HttpServlet Class
uses HTTP request types/methods:




URL = web server address + location of Servlet .class file
GET: gets info. from the web server (e.g. HTML document)
POST: sends info. to the web server
overrides HttpServlet Class doGet( ) and/or doPost( )
doGet( ), doPost( ) called by HttpServlet service( )
How does a Servlet work?

HttpServletRequest interface (key methods)





doDelete( ): called for HTTP DELETE request (e.g. file)
doOptions( ): called for HTTP OPTIONS request
doPut( ): called for HTTP PUT request
doTrace(): called for HTTP TRACE request
String getParameter( String parameterName )


Enumeration getParameterNames( )



Returns names of all parameters sent to Servlet in POST
String[ ] getParameterValues( String name )


Returns value for a parameter sent to Servlet in GET or POST
Returns values for a parameter sent to Servlet in GET or POST
Cookie[ ] getCookies( ): Cookie objects stored on client by server
HttpSession getSession( boolean create ): client session object
How does a Servlet work?

HttpServletResponse interface (key methods)


void addCookie( Cookie cookie )
ServletOutputStream getOutputStream( )


PrintWriter getWriter( )


Sets up byte-based output stream for sending data to client
Sets up character-based output stream for sending data to client
void setContentType( String type )

Specifies type of response to browser

MIME type (e.g. text/html)
Servlet Code Samples & Demos
http://kdaniels:8080
Deitel Chapter 19 sample code
Resources
http://java.sun.com
 UML CS Internet & Web Systems courses
