52
Unit VI: Servlets

Unit VI: Servlets - WordPress.comAJP Unit- VI Mrs.Chavan P.P. 2 . Department of Computer Engineering AJP Unit- VI Mrs.Chavan P.P. 3 . Life Cycle of a Servlet •The web container maintains

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Unit VI: Servlets - WordPress.comAJP Unit- VI Mrs.Chavan P.P. 2 . Department of Computer Engineering AJP Unit- VI Mrs.Chavan P.P. 3 . Life Cycle of a Servlet •The web container maintains

Unit VI: Servlets

Page 2: Unit VI: Servlets - WordPress.comAJP Unit- VI Mrs.Chavan P.P. 2 . Department of Computer Engineering AJP Unit- VI Mrs.Chavan P.P. 3 . Life Cycle of a Servlet •The web container maintains

Servlet

• Servlet technology is used to create a web application (resides at server side and generates a dynamic web page).

• Servlet technology is robust and scalable because of java language. Before Servlet, CGI (Common Gateway Interface) scripting language was common as a server-side programming language.

Department of Computer Engineering

AJP Unit- VI Mrs.Chavan P.P. 2

Page 3: Unit VI: Servlets - WordPress.comAJP Unit- VI Mrs.Chavan P.P. 2 . Department of Computer Engineering AJP Unit- VI Mrs.Chavan P.P. 3 . Life Cycle of a Servlet •The web container maintains

Department of Computer Engineering

AJP Unit- VI Mrs.Chavan P.P. 3

Page 4: Unit VI: Servlets - WordPress.comAJP Unit- VI Mrs.Chavan P.P. 2 . Department of Computer Engineering AJP Unit- VI Mrs.Chavan P.P. 3 . Life Cycle of a Servlet •The web container maintains

Life Cycle of a Servlet

• The web container maintains the life cycle of a servlet instance. Let's see the life cycle of the servlet: – Servlet class is loaded.

– Servlet instance is created.

– init method is invoked.

– service method is invoked.

– destroy method is invoked.

Department of Computer Engineering

AJP Unit- VI Mrs.Chavan P.P. 4

Page 5: Unit VI: Servlets - WordPress.comAJP Unit- VI Mrs.Chavan P.P. 2 . Department of Computer Engineering AJP Unit- VI Mrs.Chavan P.P. 3 . Life Cycle of a Servlet •The web container maintains

Servlet Life Cycle there are three states of a servlet: new (init()), ready (service) and end (destroy). The servlet is in new state if servlet instance is created. After invoking the init() method, Servlet comes in the ready state. In the ready state, servlet performs all the tasks. When the web container invokes the destroy() method, it shifts to the end state.

Department of Computer Engineering

AJP Unit- VI Mrs.Chavan P.P. 5

Page 6: Unit VI: Servlets - WordPress.comAJP Unit- VI Mrs.Chavan P.P. 2 . Department of Computer Engineering AJP Unit- VI Mrs.Chavan P.P. 3 . Life Cycle of a Servlet •The web container maintains

1) Servlet class is loaded

• The classloader is responsible to load the servlet class. The servlet class is loaded when the first request for the servlet is received by the web container.

2) Servlet instance is created

• The web container creates the instance of a servlet after loading the servlet class. The servlet instance is created only once in the servlet life cycle.

Department of Computer Engineering

AJP Unit- VI Mrs.Chavan P.P. 6

Page 7: Unit VI: Servlets - WordPress.comAJP Unit- VI Mrs.Chavan P.P. 2 . Department of Computer Engineering AJP Unit- VI Mrs.Chavan P.P. 3 . Life Cycle of a Servlet •The web container maintains

3) init method is invoked

• The web container calls the init method only once after creating the servlet instance. The init method is used to initialize the servlet. It is the life cycle method of the javax.servlet.Servlet interface.

• Syntax: public void init(ServletConfig config) throws ServletException

Department of Computer Engineering

AJP Unit- VI Mrs.Chavan P.P. 7

Page 8: Unit VI: Servlets - WordPress.comAJP Unit- VI Mrs.Chavan P.P. 2 . Department of Computer Engineering AJP Unit- VI Mrs.Chavan P.P. 3 . Life Cycle of a Servlet •The web container maintains

4) service method is invoked

• The web container calls the service method each time when request for the servlet is received. If servlet is not initialized, it follows the first three steps as described above then calls the service method. If servlet is initialized, it calls the service method. Notice that servlet is initialized only once.

• syntax : public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException

Department of Computer Engineering

AJP Unit- VI Mrs.Chavan P.P. 8

Page 9: Unit VI: Servlets - WordPress.comAJP Unit- VI Mrs.Chavan P.P. 2 . Department of Computer Engineering AJP Unit- VI Mrs.Chavan P.P. 3 . Life Cycle of a Servlet •The web container maintains

5) destroy method is invoked

• The web container calls the destroy method before removing the servlet instance from the service. It gives the servlet an opportunity to clean up any resource for example memory, thread etc.

• syntax : public void destroy()

Department of Computer Engineering

AJP Unit- VI Mrs.Chavan P.P. 9

Page 10: Unit VI: Servlets - WordPress.comAJP Unit- VI Mrs.Chavan P.P. 2 . Department of Computer Engineering AJP Unit- VI Mrs.Chavan P.P. 3 . Life Cycle of a Servlet •The web container maintains

Servlet API

• The javax.servlet and javax.servlet.http packages represent interfaces and classes for servlet api.

• The javax.servlet package contains many interfaces and classes that are used by the servlet or web container. These are not specific to any protocol.

• The javax.servlet.http package contains interfaces and classes that are responsible for http requests only.

Department of Computer Engineering

AJP Unit- VI Mrs.Chavan P.P. 10

Page 11: Unit VI: Servlets - WordPress.comAJP Unit- VI Mrs.Chavan P.P. 2 . Department of Computer Engineering AJP Unit- VI Mrs.Chavan P.P. 3 . Life Cycle of a Servlet •The web container maintains

Interfaces in javax.servlet package • There are many interfaces in javax.servlet package. They are as

follows: • Servlet • ServletRequest • ServletResponse • RequestDispatcher • ServletConfig • ServletContext • SingleThreadModel • Filter • FilterConfig • FilterChain • ServletRequestListener • ServletRequestAttributeListener • ServletContextListener • ServletContextAttributeListener Department of Computer Engineering

AJP Unit- VI Mrs.Chavan P.P. 11

Page 12: Unit VI: Servlets - WordPress.comAJP Unit- VI Mrs.Chavan P.P. 2 . Department of Computer Engineering AJP Unit- VI Mrs.Chavan P.P. 3 . Life Cycle of a Servlet •The web container maintains

Classes in javax.servlet package • There are many classes in javax.servlet package.

They are as follows: • GenericServlet • ServletInputStream • ServletOutputStream • ServletRequestWrapper • ServletResponseWrapper • ServletRequestEvent • ServletContextEvent • ServletRequestAttributeEvent • ServletContextAttributeEvent • ServletException • UnavailableException

Department of Computer Engineering

AJP Unit- VI Mrs.Chavan P.P. 12

Page 13: Unit VI: Servlets - WordPress.comAJP Unit- VI Mrs.Chavan P.P. 2 . Department of Computer Engineering AJP Unit- VI Mrs.Chavan P.P. 3 . Life Cycle of a Servlet •The web container maintains

Servlet Interface

• Servlet interface provides commonbehaviorto all the servlets.Servlet interface defines methods that all servlets must implement.

Department of Computer Engineering

AJP Unit- VI Mrs.Chavan P.P. 13

Page 14: Unit VI: Servlets - WordPress.comAJP Unit- VI Mrs.Chavan P.P. 2 . Department of Computer Engineering AJP Unit- VI Mrs.Chavan P.P. 3 . Life Cycle of a Servlet •The web container maintains

Methods of Servlet interface Method Description

public void init(ServletConfig config) initializes the servlet. It is the life cycle method of servlet and invoked by the web container only once.

public void service(ServletRequest request,ServletResponse response)

provides response for the incoming request. It is invoked at each request by the web container.

public void destroy() is invoked only once and indicates that servlet is being destroyed.

public ServletConfig getServletConfig()

returns the object of ServletConfig.

public String getServletInfo() returns information about servlet such as writer, copyright, version etc.

Department of Computer Engineering

AJP Unit- VI Mrs.Chavan P.P. 14

Page 15: Unit VI: Servlets - WordPress.comAJP Unit- VI Mrs.Chavan P.P. 2 . Department of Computer Engineering AJP Unit- VI Mrs.Chavan P.P. 3 . Life Cycle of a Servlet •The web container maintains

import java.io.*; import javax.servlet.*; public class First implements Servlet{ ServletConfig config=null; public void init(ServletConfig config){ this.config=config; System.out.println("servlet is initialized"); } public void service(ServletRequest req,ServletResponse res) throws IOException,ServletException{ res.setContentType("text/html"); PrintWriter out=res.getWriter(); out.print("<html><body>"); out.print("<b>hello simple servlet</b>"); out.print("</body></html>"); } public void destroy(){System.out.println("servlet is destroyed");} public ServletConfig getServletConfig(){return config;} public String getServletInfo(){return "copyright 2007-1010";} } Department of Computer Engineering

AJP Unit- VI Mrs.Chavan P.P. 15

Page 16: Unit VI: Servlets - WordPress.comAJP Unit- VI Mrs.Chavan P.P. 2 . Department of Computer Engineering AJP Unit- VI Mrs.Chavan P.P. 3 . Life Cycle of a Servlet •The web container maintains

ServletConfig Interface

An object of ServletConfig is created by the web container for each servlet. This object can be used to get configuration information from web.xml file.

If the configuration information is modified from the web.xml file, we don't need to change the servlet

Department of Computer Engineering

AJP Unit- VI Mrs.Chavan P.P. 16

Page 17: Unit VI: Servlets - WordPress.comAJP Unit- VI Mrs.Chavan P.P. 2 . Department of Computer Engineering AJP Unit- VI Mrs.Chavan P.P. 3 . Life Cycle of a Servlet •The web container maintains

Methods of ServletConfig interface

• public String getInitParameter(String name): Returns the parameter value for the specified parameter name.

• public Enumeration getInitParameterNames(): Returns an enumeration of all the initialization parameter names.

• public String getServletName(): Returns the name of the servlet.

• public ServletContext getServletContext(): Returns an object of ServletContext.

Department of Computer Engineering

AJP Unit- VI Mrs.Chavan P.P. 17

Page 18: Unit VI: Servlets - WordPress.comAJP Unit- VI Mrs.Chavan P.P. 2 . Department of Computer Engineering AJP Unit- VI Mrs.Chavan P.P. 3 . Life Cycle of a Servlet •The web container maintains

Syntax to provide the initialization parameter for a servlet

<web-app> <servlet> ...... <init-param> <param-name>parametername</param-name> <param-value>parametervalue</param-value> </init-param> ...... </servlet> </web-app>

Department of Computer Engineering

AJP Unit- VI Mrs.Chavan P.P. 18

Page 19: Unit VI: Servlets - WordPress.comAJP Unit- VI Mrs.Chavan P.P. 2 . Department of Computer Engineering AJP Unit- VI Mrs.Chavan P.P. 3 . Life Cycle of a Servlet •The web container maintains

//DemoServlet.java import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class DemoServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); ServletConfig config=getServletConfig(); String driver=config.getInitParameter("driver"); out.print("Driver is: "+driver); out.close(); } }

Department of Computer Engineering

AJP Unit- VI Mrs.Chavan P.P. 19

Page 20: Unit VI: Servlets - WordPress.comAJP Unit- VI Mrs.Chavan P.P. 2 . Department of Computer Engineering AJP Unit- VI Mrs.Chavan P.P. 3 . Life Cycle of a Servlet •The web container maintains

//web.xml <web-app> <servlet> <servlet-name>DemoServlet</servlet-name> <servlet-class>DemoServlet</servlet-class> <init-param> <param-name>driver</param-name> <param-value>sun.jdbc.odbc.JdbcOdbcDriver</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>DemoServlet</servlet-name> <url-pattern>/servlet1</url-pattern> </servlet-mapping> </web-app>

Department of Computer Engineering

AJP Unit- VI Mrs.Chavan P.P. 20

Page 21: Unit VI: Servlets - WordPress.comAJP Unit- VI Mrs.Chavan P.P. 2 . Department of Computer Engineering AJP Unit- VI Mrs.Chavan P.P. 3 . Life Cycle of a Servlet •The web container maintains

ServletContext Interface

• An object of ServletContext is created by the web container at time of deploying the project. This object can be used to get configuration information from web.xml file. There is only one ServletContext object per web application.

Department of Computer Engineering

AJP Unit- VI Mrs.Chavan P.P. 21

Page 22: Unit VI: Servlets - WordPress.comAJP Unit- VI Mrs.Chavan P.P. 2 . Department of Computer Engineering AJP Unit- VI Mrs.Chavan P.P. 3 . Life Cycle of a Servlet •The web container maintains

Usage of ServletContext Interface • There can be a lot of usage of ServletContext object. Some of them are as

follows:

• The object of ServletContext provides an interface between the container and servlet.

• The ServletContext object can be used to get configuration information from the web.xml file.

• The ServletContext object can be used to set, get or remove attribute from the web.xml file.

• The ServletContext object can be used to provide inter-application communication.

Department of Computer Engineering

AJP Unit- VI Mrs.Chavan P.P. 22

Page 23: Unit VI: Servlets - WordPress.comAJP Unit- VI Mrs.Chavan P.P. 2 . Department of Computer Engineering AJP Unit- VI Mrs.Chavan P.P. 3 . Life Cycle of a Servlet •The web container maintains

Commonly used methods of ServletContext interface

• public String getInitParameter(String name):Returns the parameter value for the specified parameter name.

• public Enumeration getInitParameterNames():Returns the names of the context's initialization parameters.

• public void setAttribute(String name,Object object):sets the given object in the application scope.

• public Object getAttribute(String name):Returns the attribute for the specified name.

• public Enumeration getInitParameterNames():Returns the names of the context's initialization parameters as an Enumeration of String objects.

• public void removeAttribute(String name):Removes the attribute with the given name from the servlet context.

Department of Computer Engineering

AJP Unit- VI Mrs.Chavan P.P. 23

Page 24: Unit VI: Servlets - WordPress.comAJP Unit- VI Mrs.Chavan P.P. 2 . Department of Computer Engineering AJP Unit- VI Mrs.Chavan P.P. 3 . Life Cycle of a Servlet •The web container maintains

ServletRequest Interface

• An object of ServletRequest is used to provide the client request information to a servlet such as content type, content length, parameter names and values, header informations, attributes etc.

Department of Computer Engineering

AJP Unit- VI Mrs.Chavan P.P. 24

Page 25: Unit VI: Servlets - WordPress.comAJP Unit- VI Mrs.Chavan P.P. 2 . Department of Computer Engineering AJP Unit- VI Mrs.Chavan P.P. 3 . Life Cycle of a Servlet •The web container maintains

Methods of ServletRequest interface Method Description

public String getParameter(String name) is used to obtain the value of a parameter by name.

public String[] getParameterValues(String name)

returns an array of String containing all values of given parameter name. It is mainly used to obtain values of a Multi select list box.

java.util.Enumeration getParameterNames()

returns an enumeration of all of the request parameter names.

public int getContentLength() Returns the size of the request entity data, or -1 if not known.

public String getCharacterEncoding() Returns the character set encoding for the input of this request.

public String getContentType() Returns the Internet Media Type of the request entity data, or null if not known.

public ServletInputStream getInputStream() throws IOException

Returns an input stream for reading binary data in the request body.

public abstract String getServerName() Returns the host name of the server that received the request.

public int getServerPort() Returns the port number on which this request was received.

Department of Computer Engineering

AJP Unit- VI Mrs.Chavan P.P. 25

Page 26: Unit VI: Servlets - WordPress.comAJP Unit- VI Mrs.Chavan P.P. 2 . Department of Computer Engineering AJP Unit- VI Mrs.Chavan P.P. 3 . Life Cycle of a Servlet •The web container maintains

Example

Index.html

<form action="welcome" method="get">

Enter your name<input type="text" name="name"><br>

<input type="submit" value="login">

</form>

Department of Computer Engineering

AJP Unit- VI Mrs.Chavan P.P. 26

Page 27: Unit VI: Servlets - WordPress.comAJP Unit- VI Mrs.Chavan P.P. 2 . Department of Computer Engineering AJP Unit- VI Mrs.Chavan P.P. 3 . Life Cycle of a Servlet •The web container maintains

//DemoServ.java import javax.servlet.http.*; import javax.servlet.*; import java.io.*; public class DemoServ extends HttpServlet{ public void doGet(HttpServletRequest req,HttpServletResponse res) throws ServletException,IOException { res.setContentType("text/html"); PrintWriter pw=res.getWriter(); String name=req.getParameter("name");//will return value pw.println("Welcome "+name); pw.close(); }} Department of Computer Engineering

AJP Unit- VI Mrs.Chavan P.P. 27

Page 28: Unit VI: Servlets - WordPress.comAJP Unit- VI Mrs.Chavan P.P. 2 . Department of Computer Engineering AJP Unit- VI Mrs.Chavan P.P. 3 . Life Cycle of a Servlet •The web container maintains

GenericServlet class

• GenericServlet class implements Servlet, ServletConfig and Serializable interfaces. It provides the implementation of all the methods of these interfaces except the service method.

• GenericServlet class can handle any type of request so it is protocol-independent.

Department of Computer Engineering

AJP Unit- VI Mrs.Chavan P.P. 28

Page 29: Unit VI: Servlets - WordPress.comAJP Unit- VI Mrs.Chavan P.P. 2 . Department of Computer Engineering AJP Unit- VI Mrs.Chavan P.P. 3 . Life Cycle of a Servlet •The web container maintains

Methods of GenericServlet class

• public void init(ServletConfig config) is used to initialize the servlet.

• public abstract void service(ServletRequest request, ServletResponse response) provides service for the incoming request. It is invoked at each time when user requests for a servlet.

• public void destroy() is invoked only once throughout the life cycle and indicates that servlet is being destroyed.

• public ServletConfig getServletConfig() returns the object of ServletConfig.

• public String getServletInfo() returns information about servlet such as writer, copyright, version etc.

• public void init() it is a convenient method for the servlet programmers, now there is no need to call super.init(config)

• public ServletContext getServletContext() returns the object of ServletContext.

Department of Computer Engineering

AJP Unit- VI Mrs.Chavan P.P. 29

Page 30: Unit VI: Servlets - WordPress.comAJP Unit- VI Mrs.Chavan P.P. 2 . Department of Computer Engineering AJP Unit- VI Mrs.Chavan P.P. 3 . Life Cycle of a Servlet •The web container maintains

Methods of GenericServlet class

• public String getInitParameter(String name) returns the parameter value for the given parameter name.

• public Enumeration getInitParameterNames() returns all the parameters defined in the web.xml file.

• public String getServletName() returns the name of the servlet object.

• public void log(String msg) writes the given message in the servlet log file.

• public void log(String msg,Throwable t) writes the explanatory message in the servlet log file and a stack trace.

Department of Computer Engineering

AJP Unit- VI Mrs.Chavan P.P. 30

Page 31: Unit VI: Servlets - WordPress.comAJP Unit- VI Mrs.Chavan P.P. 2 . Department of Computer Engineering AJP Unit- VI Mrs.Chavan P.P. 3 . Life Cycle of a Servlet •The web container maintains

//First.java import java.io.*; import javax.servlet.*; public class First extends GenericServlet{ public void service(ServletRequest req,ServletResponse res) throws IOException,ServletException{ res.setContentType("text/html"); PrintWriter out=res.getWriter(); out.print("<html><body>"); out.print("<b>hello generic servlet</b>"); out.print("</body></html>"); } } Department of Computer Engineering

AJP Unit- VI Mrs.Chavan P.P. 31

Page 32: Unit VI: Servlets - WordPress.comAJP Unit- VI Mrs.Chavan P.P. 2 . Department of Computer Engineering AJP Unit- VI Mrs.Chavan P.P. 3 . Life Cycle of a Servlet •The web container maintains

javax.servlet.http Package • The javax.servlet.http package contains interfaces and classes

that are responsible for http requests only.

• Interfaces in javax.servlet.http package

There are many interfaces in javax.servlet.http package. They are as follows:

– HttpServletRequest

– HttpServletResponse

– HttpSession

– HttpSessionListener

– HttpSessionAttributeListener

– HttpSessionBindingListener

– HttpSessionActivationListener

– HttpSessionContext (deprecated now)

Department of Computer Engineering

AJP Unit- VI Mrs.Chavan P.P. 32

Page 33: Unit VI: Servlets - WordPress.comAJP Unit- VI Mrs.Chavan P.P. 2 . Department of Computer Engineering AJP Unit- VI Mrs.Chavan P.P. 3 . Life Cycle of a Servlet •The web container maintains

• Classes in javax.servlet.http package

There are many classes in javax.servlet.http package. They are as follows:

– HttpServlet

– Cookie

– HttpServletRequestWrapper

– HttpServletResponseWrapper

– HttpSessionEvent

– HttpSessionBindingEvent

– HttpUtils (deprecated now)

Department of Computer Engineering

AJP Unit- VI Mrs.Chavan P.P. 33

Page 34: Unit VI: Servlets - WordPress.comAJP Unit- VI Mrs.Chavan P.P. 2 . Department of Computer Engineering AJP Unit- VI Mrs.Chavan P.P. 3 . Life Cycle of a Servlet •The web container maintains

HttpServletRequest Interface

• HttpServletRequest is an interface and extends the ServletRequest interface.

• By, extending the ServletRequest this interface is able to allow request information for HTTP Servlets.

• Object of the HttpServletRequest is created by the Servlet Container and then it is passed to the service method (doGet(), doPost(), etc.) of the Servlet.

Department of Computer Engineering

AJP Unit- VI Mrs.Chavan P.P. 34

Page 35: Unit VI: Servlets - WordPress.comAJP Unit- VI Mrs.Chavan P.P. 2 . Department of Computer Engineering AJP Unit- VI Mrs.Chavan P.P. 3 . Life Cycle of a Servlet •The web container maintains

Methods of HttpServletRequest HttpServletRequest has various methods. Some of them are as follows :

• String getContextPath() : This method is used to get the portion of the requested URI.

• Cookie[] getCookies() : This method is used to get all the Cookie the object in an array.

• java.lang.String getHeader(java.lang.String name) : This method is used to get the given request header.

• int getIntHeader(java.lang.String name) : This method is used to get the given request header value as an int.

• java.lang.String getMethod() : This method is used to get the HTTP method within which the request was made.

• HttpSession getSession() : This method is used to get the current session or creates a new session if the request doesn't have session.

• java.lang.String getRequestedSessionId() : This method is used to get the id of the current session.

Department of Computer Engineering

AJP Unit- VI Mrs.Chavan P.P. 35

Page 36: Unit VI: Servlets - WordPress.comAJP Unit- VI Mrs.Chavan P.P. 2 . Department of Computer Engineering AJP Unit- VI Mrs.Chavan P.P. 3 . Life Cycle of a Servlet •The web container maintains

HttpServletResponse Interface

• The HttpServletResponse interface enables a servlet to formulate an HTTP response to a client.

• The response object encapsulates all information to be returned from the server to the client.

• In the HTTP protocol, this information is transmitted from the server to the client either by HTTP headers or the message body of the request.

Department of Computer Engineering

AJP Unit- VI Mrs.Chavan P.P. 36

Page 37: Unit VI: Servlets - WordPress.comAJP Unit- VI Mrs.Chavan P.P. 2 . Department of Computer Engineering AJP Unit- VI Mrs.Chavan P.P. 3 . Life Cycle of a Servlet •The web container maintains

Methods of HttpServletResponse • public void addCookie(Cookie cookie)- Adds the specified cookie to the

response. This method can be called multiple times to set more than one cookie.

• public void addDateHeader (String name, long date)- Adds a response header with the given name and date-value.

• public void addHeader(String name,String value)- Adds a response header with the given name and value.

• public void addlntHeader(String name,int value)- Adds a response header with the given name and integer value.

• public boolean containsHeader(String name)- Returns a boolean indicating whether the named response header has already been set.

• public String encodeRedirectURL(String url)- Encodes the specified URL for use in the sendRedirect method or, if encoding is not needed, returns the URL unchanged.

Department of Computer Engineering

AJP Unit- VI Mrs.Chavan P.P. 37

Page 38: Unit VI: Servlets - WordPress.comAJP Unit- VI Mrs.Chavan P.P. 2 . Department of Computer Engineering AJP Unit- VI Mrs.Chavan P.P. 3 . Life Cycle of a Servlet •The web container maintains

Methods of HttpServletResponse • public String encodeURL(String url)- Encodes the specified URL by including

the session ID in it, or, if encoding is not needed, returns the URL unchanged.

• public void sendError(int sc) throws IOException - Sends an error response to the client using the specified status code and clearing the buffer.

• public void sendError(int Be, String mag) throws IOException - Sends an error response to the client using the specified status clearing the buffer.

• public void sendRedirect(string location) throws IOException - Sends a temporary redirect response to the client using the specified redirect location URL.

• public void setDateHeader(String name,long date) - Sets a response header with the given name and date-value.

• public void setHeader(String name, String value) - Sets a response header with the given name and value.

• public void setlntHeader (String name,int value) - Sets a response header with the given name and integer value.

• public void setStatus(int sc) - Sets the status code for this response. Department of Computer Engineering

AJP Unit- VI Mrs.Chavan P.P. 38

Page 39: Unit VI: Servlets - WordPress.comAJP Unit- VI Mrs.Chavan P.P. 2 . Department of Computer Engineering AJP Unit- VI Mrs.Chavan P.P. 3 . Life Cycle of a Servlet •The web container maintains

HttpSession Interface • In web terminology, a session is simply the limited

interval of time in which two systems communicate with each other.

• the web applications that work on http protocol use several different technologies that comprise Session Tracking, which means maintaining the state (data) of the user, in order to recognize him/her.

• In order to achieve session tracking in servlets, cookies have been one of the most commonly used technic.

Department of Computer Engineering

AJP Unit- VI Mrs.Chavan P.P. 39

Page 40: Unit VI: Servlets - WordPress.comAJP Unit- VI Mrs.Chavan P.P. 2 . Department of Computer Engineering AJP Unit- VI Mrs.Chavan P.P. 3 . Life Cycle of a Servlet •The web container maintains

Methods of HttpSession Interface • public HttpSession getSession():Returns the current session

associated with this request, or if the request does not have a session, creates one.

• public HttpSession getSession(boolean create):Returns the current HttpSession associated with this request or, if there is no current session and create is true, returns a new session.

• public String getId():Returns a string containing the unique identifier value.

• public long getCreationTime():Returns the time when this session was created, measured in milliseconds since midnight January 1, 1970 GMT.

• public long getLastAccessedTime():Returns the last time the client sent a request associated with this session, as the number of milliseconds since midnight January 1, 1970 GMT.

• public void invalidate():Invalidates this session then unbinds any objects bound to it.

Department of Computer Engineering

AJP Unit- VI Mrs.Chavan P.P. 40

Page 41: Unit VI: Servlets - WordPress.comAJP Unit- VI Mrs.Chavan P.P. 2 . Department of Computer Engineering AJP Unit- VI Mrs.Chavan P.P. 3 . Life Cycle of a Servlet •The web container maintains

Cookie Class • A cookie is a small collection of information that

can be transmitted to a calling browser, which retrieves it on each subsequent call from the browser so that the server can recognize calls from the same client. A cookie is returned with each call to the site that created it, unless it expires.

• Sessions are maintained automatically by a session cookie that is sent to the client when the session is first created. The session cookie contains the session ID, which identifies the client to the browser on each successive interaction.

Department of Computer Engineering

AJP Unit- VI Mrs.Chavan P.P. 41

Page 42: Unit VI: Servlets - WordPress.comAJP Unit- VI Mrs.Chavan P.P. 2 . Department of Computer Engineering AJP Unit- VI Mrs.Chavan P.P. 3 . Life Cycle of a Servlet •The web container maintains

Types of Cookie 1. Non-persistent cookie 2. Persistent cookie Non-persistent cookie It is valid for single session only. It is removed each time when user closes the browser. Persistent cookie It is valid for multiple session . It is not removed each time when user closes the browser. It is removed only if user logout or signout.

Constructor of Cookie class

Constructor Description

Cookie() constructs a cookie.

Cookie(String name, String value) constructs a cookie with a specified name and value.

Department of Computer Engineering

AJP Unit- VI Mrs.Chavan P.P. 42

Page 43: Unit VI: Servlets - WordPress.comAJP Unit- VI Mrs.Chavan P.P. 2 . Department of Computer Engineering AJP Unit- VI Mrs.Chavan P.P. 3 . Life Cycle of a Servlet •The web container maintains

Cookie Class Methods

Method Description

public void setMaxAge(int expiry) Sets the maximum age of the cookie in seconds.

public String getName() Returns the name of the cookie. The name cannot be changed after creation.

public String getValue() Returns the value of the cookie.

public void setName(String name) changes the name of the cookie.

public void setValue(String value) changes the value of the cookie.

Department of Computer Engineering

AJP Unit- VI Mrs.Chavan P.P. 43

Page 44: Unit VI: Servlets - WordPress.comAJP Unit- VI Mrs.Chavan P.P. 2 . Department of Computer Engineering AJP Unit- VI Mrs.Chavan P.P. 3 . Life Cycle of a Servlet •The web container maintains

HttpSessionEvent and HttpSessionListener

• The HttpSessionEvent is notified when session object is changed. The corresponding Listener interface for this event is HttpSessionListener.

• We can perform some operations at this event such as counting total and current logged-in users, maintaing a log of user details such as login time, logout time etc.

• Methods of HttpSessionListener interface 1. public void sessionCreated(HttpSessionEvent e): is

invoked when session object is created.

2. public void sessionDestroyed(ServletContextEvent e): is invoked when session is invalidated

Department of Computer Engineering

AJP Unit- VI Mrs.Chavan P.P. 44

Page 45: Unit VI: Servlets - WordPress.comAJP Unit- VI Mrs.Chavan P.P. 2 . Department of Computer Engineering AJP Unit- VI Mrs.Chavan P.P. 3 . Life Cycle of a Servlet •The web container maintains

Session Tracking is a way to maintain state (data) of an user. It is also known as session management in servlet. Http protocol is a stateless so we need to maintain state using session tracking techniques. Each time user requests to the server, server treats the request as the new request. So we need to maintain the state of an user to recognize to particular user. HTTP is stateless that means each request is considered as the new request.

Session Tracking in Servlets

Session Tracking Techniques

There are four techniques used in Session tracking: Cookies Hidden Form Field URL Rewriting HttpSession

Department of Computer Engineering

AJP Unit- VI Mrs.Chavan P.P. 45

Page 46: Unit VI: Servlets - WordPress.comAJP Unit- VI Mrs.Chavan P.P. 2 . Department of Computer Engineering AJP Unit- VI Mrs.Chavan P.P. 3 . Life Cycle of a Servlet •The web container maintains

Handling HTTP Requests and Responses

• The HttpServlet class provides specialized methods that handle the various types of HTTP requests. A servlet developer typically overrides one of these methods.

• These methods are doDelete( ), doGet( ) , doHead( ), doOptions( ), doPost( ), doPut( ), and doTrace( ).

Department of Computer Engineering

AJP Unit- VI Mrs.Chavan P.P. 46

Page 47: Unit VI: Servlets - WordPress.comAJP Unit- VI Mrs.Chavan P.P. 2 . Department of Computer Engineering AJP Unit- VI Mrs.Chavan P.P. 3 . Life Cycle of a Servlet •The web container maintains

Handling HTTP GET Requests

• Here we will develop a servlet that handles an HTTP GET request. The servlet is invoked when a form on a web page is submitted. The example contains two files. A web page is defined in ColorGet.html, and a servlet is defined in ColorGetServlet.java.

Department of Computer Engineering

AJP Unit- VI Mrs.Chavan P.P. 47

Page 48: Unit VI: Servlets - WordPress.comAJP Unit- VI Mrs.Chavan P.P. 2 . Department of Computer Engineering AJP Unit- VI Mrs.Chavan P.P. 3 . Life Cycle of a Servlet •The web container maintains

ColorGet.html <html> <body> <center> <form name="Form1" action="http://localhost:8080/examples/servlets/servlet/ColorGetServlet"> <B>Color:</B> <select name="color" size="1"> <option value="Red">Red</option> <option value="Green">Green</option> <option value="Blue">Blue</option> </select> <br><br> <input type=submit value="Submit"> </form> </body> </html> Department of Computer Engineering

AJP Unit- VI Mrs.Chavan P.P. 48

Page 49: Unit VI: Servlets - WordPress.comAJP Unit- VI Mrs.Chavan P.P. 2 . Department of Computer Engineering AJP Unit- VI Mrs.Chavan P.P. 3 . Life Cycle of a Servlet •The web container maintains

// ColorGetServlet.java import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class ColorGetServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String color = request.getParameter("color"); response.setContentType("text/html"); PrintWriter pw = response.getWriter(); pw.println("<B>The selected color is: "); pw.println(color); pw.close(); } }

Department of Computer Engineering

AJP Unit- VI Mrs.Chavan P.P. 49

Page 50: Unit VI: Servlets - WordPress.comAJP Unit- VI Mrs.Chavan P.P. 2 . Department of Computer Engineering AJP Unit- VI Mrs.Chavan P.P. 3 . Life Cycle of a Servlet •The web container maintains

Handling HTTP POST Requests

Here we will develop a servlet that handles an HTTP POST request. The servlet is invoked when a form on a web page is submitted. The example contains two files. A web page is defined in ColorPost.html, and a servlet is defined in ColorPostServlet.java.

Department of Computer Engineering

AJP Unit- VI Mrs.Chavan P.P. 50

Page 51: Unit VI: Servlets - WordPress.comAJP Unit- VI Mrs.Chavan P.P. 2 . Department of Computer Engineering AJP Unit- VI Mrs.Chavan P.P. 3 . Life Cycle of a Servlet •The web container maintains

ColorGet.html <html> <body> <center> <form name="Form1" method=“post” action="http://localhost:8080/examples/servlets/servlet/ColorGetServlet"> <B>Color:</B> <select name="color" size="1"> <option value="Red">Red</option> <option value="Green">Green</option> <option value="Blue">Blue</option> </select> <br><br> <input type=submit value="Submit"> </form> </body> </html> Department of Computer Engineering

AJP Unit- VI Mrs.Chavan P.P. 51

Page 52: Unit VI: Servlets - WordPress.comAJP Unit- VI Mrs.Chavan P.P. 2 . Department of Computer Engineering AJP Unit- VI Mrs.Chavan P.P. 3 . Life Cycle of a Servlet •The web container maintains

// ColorGetServlet.java import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class ColorGetServlet extends HttpServlet { public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String color = request.getParameter("color"); response.setContentType("text/html"); PrintWriter pw = response.getWriter(); pw.println("<B>The selected color is: "); pw.println(color); pw.close(); } }

Department of Computer Engineering

AJP Unit- VI Mrs.Chavan P.P. 52