Thanks to visit codestin.com
Credit goes to www.scribd.com

0% found this document useful (0 votes)
24 views26 pages

FPT Servlet

Uploaded by

tuannhade180647
Copyright
© © All Rights Reserved
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)
24 views26 pages

FPT Servlet

Uploaded by

tuannhade180647
Copyright
© © All Rights Reserved
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
You are on page 1/ 26

Servlet Introduction

Objectives
 Servlet hierarchy
 Servlet Life cycle
 HttpServlet
 HttpServletRequest
 HttpServletResponse
 Servlet mapping
 Servlets collaboration

06/24/24 2/41
What a Servlet is
• Servlets are small Java programs that run on a
Web server and help to build dynamic Web pages.
• Servlets receive and respond to requests from Web
clients, usually across HTTP, the HyperText
Transfer Protocol.
• Java Servlet technology was created as a portable
way to provide dynamic, user-oriented content.
• Because the servlet is running on the server side, it
does not require any Java-support from Web
browser
• Servlet is multi-thread
• Controller
06/24/24 3/41
What a Servlet is
• Servlet is multi-thread

06/24/24 4/41
What a Servlet is...

Request Web
Web
Browser
Browser Internet HTTP Protocol Server
Server
Client
Client Response
ServletContainer

Servlets

Database
Database
06/24/24 5/41
Hierarchy of Servlet class
• The javax.servlet package
provides interfaces and classes
for writing servlets

• When a servlet accepts a call from a client, it receives two


objects:
– ServletRequest, which encapsulates the communication from the
client to the server.
– ServletResponse, which encapsulates the communication from the
servlet to the client.

06/24/24 6/24
The Servlet interface
 At the heart of servlet architecture is the
interface javax.servlet.Servlet.
 It provides the framework for all servlets.
 The Servlet interface defines five methods.
The three most important are as follows:
 init() method—Initializes a servlet
 service() method—Receives and responds to
client requests
 destroy() method—Performs cleanup
 All servlets must implement this interface,
either directly or through inheritance.
06/24/24 7/41
The servlet framework.

06/24/24 8/41
The Servlet Life Cycle

init

service

destroy

06/24/24 9/41
Servlet life cycle
 The init() method is where the servlet's
life cycle begins.
 It is called by the server immediately after the
servlet is instantiated.
 It is called only once.
 public void init(ServletConfig config) throws
ServletException;
 In the init() method, the servlet creates and
initializes any resources, including data members,
that it will be using while handling requests.

06/24/24 10/41
Servlet life cycle
 The service() method handles all
requests sent by a client.
 The entry point for executing application logic
in a servlet
 It cannot start servicing requests until the
init() method has been executed.
 The service() method implements a
request and response paradigm.
 We should never implement this method
directly if extending from HttpServlet

06/24/24 11/41
Servlet life cycle
 The destroy() method signifies the end of a
servlet's life.
 When a service is being shut down, it calls the servlet's
destroy() method.
 This is where any resources that were created in the init()
method will be cleaned up.
 If you have an open database connection, you should close it
here.
 This is also a good place to save any persistent information that
will be used the next time the servlet is loaded.
 The getServletConfig() method returns the
servlet's ServletConfig object, which contains
the servlet's startup configuration and initialization
parameters.
06/24/24 12
The ServletRequest
 ServletRequest encapsulate information about the
client's request includes: parameter name/value pairs,
attributes, and an input stream.
 getAttribute(String name) returns value of

the object keyed by the name for the current request.


 getParameter(String name) method returns

the value of the requested parameter.


 If the parameter has or could have more than one

value, use the getParameterValues() method.


 getRemoteAddress() method returns a String

representing the IP address of the client sending the


request.

06/24/24 13/41
The ServletResponse
 ServletResponse sends MIME data back to the
client from the servlet's service method.
 getWriter() method returns a print writer used

for writing formatted text to the response object.


 getOutputStream() method returns an output
stream used for writing binary data to the response.
 setContentType() method sets the content
type of the current response.
 This method must be called before calling the
getWriter() or getOutputStream() methods.

06/24/24 14/41
HttpServlet
 The HttpServlet class has already implemented the
service() method.
protected void service(HttpServletRequest req,
HttpServletResponse resp)throws ServletException, IOException;
 When the HttpServlet.service() method is
invoked, it reads the method type stored in the request
and determines which method to invoke based upon this
value.
 If the method type is GET, it will call doGet(). If the method
type is POST, it will call doPost().
 These are the methods that you will want to override
 Typically, we should not override the service() method, but the
doPost() and/or doGet() method
06/24/24 15/41
HttpServlet

06/24/24 16/41
HttpServlet Class
• The protocol defines a set of text-based request messages
called HTTP ‘methods’ implemented in HttpServlet class:
 doGet Called by the server (via the service method)to allow a servlet to handle
a GET request
 doHead Receives an HTTP HEAD request from the protected
service method and handles the request
 doPost called by the server to allow a servlet to handle post
request
 doPut Called by the server (via the service method) to allow a servlet to
handle a PUT request
 doDelete Called by the server (via the service method) to allow a
servlet to handle a DELETE request
 doTrace Called by the server (via the service method) to allow a
servlet to handle a TRACE request
 doOptions Called by the server (via the service method) to allow a servlet
to handle a OPTIONS request

06/24/24 17/41
The HttpServletRequest
 HttpServletRequest provides the
HttpServlet.service() to access HTTP header
information sent by the client.
 getQueryString() method returns the query string from the
request.
 getSession(true) method returns the session associated
with the request. If there is no valid session and the boolean
parameter passed in is true, then it will create a new session.
 getRemoteUser() method returns the name of the user
making the request. If the name is not available, null is
returned.
 getMethod() method returns the HTTP method used by the
client request.
 setAttribute(name, object) save object into request with name
 getAttribute(name) return the object referenced by name
attributes pass informations from one servlet to another
06/24/24
18/41
The HttpServletResponse
 HttpServletResponse
 encodeURL() method encodes the passed-in
String and returns it. If no changes are
necessary, then it simply returns the String.
 sendError(int er, String msg) method
sends an error to the client in the response object.
The error consists of the int status code and a
String message.
 sendRedirect(url) method redirects the client
to the passed-in URL, which must be an absolute
URL.
06/24/24 19/41
Servlet init parameter
 Init parameters of a servlet can help to specify important aspects that are
going to be handled during requests service .
 Semester code for a servlet to retrieve student’s timetable

 Declare in web.xml for servlet or anotation

 @WebServlet(name = “Schedule", urlPatterns = {"/schedule"},


initParams={ @WebInitParam(name=“semester", value=“Fall 2021")}))
 String semCode=getInitParameter(“semester”);

06/24/24 20/41
Servlet mapping-Invoke a Servlet
 There are two ways to invoke a servlet.
 Servlet mapping in web.xml: calling by url-pattern

 Mapping by @webServlet annotation

06/24/24 21/41
A Simple Servlet
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class FirstServlet extends HttpServlet {

public void doGet(HttpServletRequest request,


HttpServletResponse response)
throws ServletException, IOException
{
PrintWriter out = response.getWriter();
out.println(“<h1>First Servlet</h1>");
}
}

06/24/24 22/41
Servlet Collaboration
 A servlet can receive a request from client and
delegates the processing to another servlet.
 There are 2 solutions for this collaboration:
 Using servlet chaining:
 configure the servlet container to chain the servlet;

 not supported by servlet API specification

 Using Request Dispatching


 Allow a servlet to dispatch a request to another

servlet for generating the response


 The RequestDispatcher used for this purpose

06/24/24 23/41
RequestDispatcher
 A servlet obtains a RequestDispatcher object
for a resource by calling:
 ServletContext.getRequestDispatcher(String URLpath)
 ServletRequest. getRequestDispatcher(String URLpath)
 ServletContext.getNameDispatcher(String name)
 void forward(request,response)
 Forwards a request from a servlet to another resource
 The request and response parameters must be the same
objects as were passed to the calling servlet
 void include(request,response)
 Includes the content of a resource (servlet, JSP page, HTML
file) in the response

06/24/24 24/41
Summary
 Servlets concept
 Servlets hierarchy structure
 Servlet life cycle
 HttpServlet
 HttpServletRequest
 HttpServletResponse
 Servlet Init parameter
 Servlet mapping
 Servlet Collaboration
06/24/24 25/41
Constructive question
 How many servlet instance are instantiated to
serve many request from multi client?
 When the servlet's init() method is invoked?
 A web application allows users to log in with
different roles. Try to come up the solution to
meet this requirement that is most convenient
for users
 Write a single servlet that responds to user
login requests with no support components

06/24/24 26/24

You might also like