Professional Documents
Culture Documents
6 Servlets
6 Servlets
6 Servlets
SERVLETS 14 Marks
Mr.Ghanawajeer D.J.
SYLLABUS
• 6.1. The Life Cycle of Servlet
1
SYLLABUS
• 6.2. Creating Simple Servlet:The
ServletRequest Interface,
ServletResponse Interface,
GenericServlet class
2
SYLLABUS
• 6.3. The javax.servlet.http Package:
HttpSessionBindingEvent Class
3
SYLLABUS
• 6.4. Handling HTTP Request and Response,
POST Request
4
INTRODUCTION
• Servlet is a Technology that is used to create web
application.
• Web component that is deployed on server side to create
dynamic web pages.
• Servlet is an API that provides many Interfaces and classes
including documentation.
• Servlet is an Interface that must be implemented for creating
any servlet.
5
INTRODUCTION
• Servlet is a class that extend the functionalities of server
and responds to the incoming requests.
6
INTRODUCTION
• This request-response model of communication is the
foundation for the highest-level view of networking in Java
servlets.
7
INTRODUCTION
• When a user selects a Web site to browse through their
browser (the client application), a request is sent to the
appropriate Web server (the server application).
8
OVERVIEW OF SERVLET
TECHNOLOGY
9
INTRODUCTION
• A servlet extends the functionality of a server. The
javax.servlet package and the javax.servlet.http package
provide the classes and interfaces to define servlets.
10
INTRODUCTION
• A Servlet is a Java program that runs on a Web server. It is
similar to an applet, but is processed on the server rather
than a client's machine.
• Servlets are often run when the user clicks a link, submits a
form, or performs another type of action on a website.
11
INTRODUCTION
• The Servlet APIs are now developed by the Apache group
(www.apache.org).
• Before you can program with servlets, you must download
and install the Apache group's implementation of servlets
called Tomcat.
• You may download Tomcat at no charge from Sun
Microsystems at the Website:
java.sun.com/products/jsp/tomcat
12
INTRODUCTION
• After downloading Tomcat, install it on your system and
carefully read the readme file supplied in the doc directory.
13
INTRODUCTION
• To develop servlets, you also need to copy the servlet.jar file
containing the servlet class files from the installation
directory to your JDK extensions directory (the directory
c:\jdk1.3\jre\lib\ext on Windows or the directory
~/jdk1.3/jre/lib/ext on UNIX).
14
OVERVIEW OF SERVLET
TECHNOLOGY
• Servlets are the analog on the server side to applets on the
client side. Servlets are normally executed as part of a Web
server.
• In fact, Servlets have become so popular that they are now
supported by most major Web servers, including the
Netscape Web servers, Microsoft's Internet Information
Server (IIS), the World Wide Web Consortium's Jigsaw Web
server and the popular Apache Web server.
15
OVERVIEW OF SERVLET
TECHNOLOGY
• The Servlets in this chapter show the communication
between clients and servers via the HTTP protocol of the
World Wide Web.
16
OVERVIEW OF SERVLET
TECHNOLOGY
17
DIRECTORY STRUCTURE
ROOT Save
.java program
18
TYPES OF SERVLET
• Generic Servlet:
• javax.servlet (package)
• extends javax.servlet.Servlet
• service method
• Http Servlet:
• javax.servlet.http (package)
• extends javax.servlet.HttpServlet
• doget(), doPost()….
19
SERVLET APPLICATION
ARCHITECTURE
20
THE SERVLET API
• We discuss at a high level the servlet related classes,
methods and exceptions. Architecturally, all servlets must
implement the Servlet interface.
21
THE SERVLET API
• The servlet packages define two abstract classes that
implement the interface Servlet - class GenericServlet (from
the package javax.servlet) and class HttpServlet (from the
package javax.servlet.http).
22
THE SERVLET API
(JAVAX.SERVLET)
Interfaces:
• Servlet:Declare a life cycle methods for servlet.
• ServletConfig:Allows servlets to initialization parameters
• ServletContext: Enables servlets to log events and access
information about their environment
• ServletRequest: used to read data from client request
23
THE SERVLET API
(JAVAX.SERVLET)
Interfaces:
• ServletResponse: used to write data from client response
• SingleThreadModel: Indicates that the servlet is thread safe
24
THE SERVLET API
(JAVAX.SERVLET)
Classes:
• GenericServlet: Implements the Servlet & ServletConfig
Interface.
• ServletInputStream: Encapsulates an input stream for
reading request from a client.
• ServletOutputStream: Encapsulates an output stream for
writing responses to client.
25
THE SERVLET API
(JAVAX.SERVLET)
Classes:
• ServletException: Indicates servlet errors occurred.
• UnavailableException: Indicates servlet is unavailable.
26
THE SERVLET API
(JAVAX.SERVLET)
Servlet:
28
THE SERVLET API
(JAVAX.SERVLET)
Servlet: The Life Cycle of Servlet
Initialization
init()
Service
service()
doGet() Concurrent
doPost()
doDelete() Threads
doHead()
doTrace()
of Execution
doOptions()
Destruction
destroy()
29
THE SERVLET API
(JAVAX.SERVLET)
Servlet: Methods of Servlet Life Cycle
• init() :
• service():
30
THE SERVLET API
(JAVAX.SERVLET)
Servlet: Methods of Servlet Life Cycle
• destroy():
31
THE SERVLET API
(JAVAX.SERVLET)
Servlet: Methods of Servlet Life Cycle
32
THE SERVLET API
(JAVAX.SERVLET)
Servlet: Methods of Servlet Life Cycle
• ServletConfig getServletConfig()
34
THE SERVLET API
(JAVAX.SERVLET)
Servlet: Methods of Servlet Life Cycle
• String getServletInfo()
35
THE SERVLET API
(JAVAX.SERVLET)
Servlet: Methods of Servlet Life Cycle
• void destroy()
37
THE SERVLET API
(JAVAX.SERVLET)
ServletConfig:
39
THE SERVLET API
(JAVAX.SERVLET)
ServletConfig: Methods
• Enumeration<String> getInitParameterNames()
40
THE SERVLET API
(JAVAX.SERVLET)
ServletConfig: Methods
• ServletContext getServletContext()
• String getServletName()
41
THE SERVLET API
(JAVAX.SERVLET)
<web-app>
ServletConfig: Example
<servlet>
......
<init-param>
Web.xml
<param-name>size</param-name>
<param-value>25</param-value>
</init-param>
......
</servlet>
</web-app>
42
THE SERVLET API
(JAVAX.SERVLET)
ServletConfig: Example
ServletConfig config=getServletConfig();
String str=config.getInitParameter(“size");
43
THE SERVLET API
(JAVAX.SERVLET)
ServletContext:
46
THE SERVLET API
(JAVAX.SERVLET)
ServletContext: Methods
• Enumeration getInitParameterNames()
47
THE SERVLET API
(JAVAX.SERVLET)
ServletContext: Methods
• void log(String s)
49
THE SERVLET API
(JAVAX.SERVLET)
ServletContext: Example
50
THE SERVLET API
(JAVAX.SERVLET)
ServletRequest:
• This interface is for getting data from the client to the servlet
for a service request
51
THE SERVLET API
(JAVAX.SERVLET)
ServletRequest:
52
THE SERVLET API
(JAVAX.SERVLET)
ServletRequest: Methods
• String getProtocol()
• String getContentType()
53
THE SERVLET API
(JAVAX.SERVLET)
ServletRequest: Methods
• int getContentLength()
• int getServerPort()
54
THE SERVLET API
(JAVAX.SERVLET)
ServletRequest: Methods
• String getRemoteAddr()
• String getRemoteHost()
55
THE SERVLET API
(JAVAX.SERVLET)
ServletRequest: Methods
57
THE SERVLET API
(JAVAX.SERVLET)
ServletResponse:
59
THE SERVLET API
(JAVAX.SERVLET)
ServletResponse: Methods
60
THE SERVLET API
(JAVAX.SERVLET)
ServletResponse: Methods
61
THE SERVLET API
(JAVAX.SERVLET)
ServletResponse: Example
62
THE SERVLET API
(JAVAX.SERVLET)
GenericServlet:
63
THE SERVLET API
(JAVAX.SERVLET)
GenericServlet:
64
THE SERVLET API
(JAVAX.SERVLET)
GenericServlet:
• The request object tells the servlet about the request made
by client while the response object is used to return a
response back to the client.
65
THE SERVLET API
(JAVAX.SERVLET)
GenericServlet: Methods
• void destroy()
66
THE SERVLET API
(JAVAX.SERVLET)
GenericServlet: Methods
• ServletConfig getServletConfig()
• String getServletInfo()
67
THE SERVLET API
(JAVAX.SERVLET)
GenericServlet: Methods
• ServletContext getServletContext()
68
THE SERVLET API
(JAVAX.SERVLET)
GenericServlet: Methods
• Enumeration getInitParameterNames()
• String getServletName()
69
THE SERVLET API
(JAVAX.SERVLET)
GenericServlet : Reading Servlet Parameters Example
<html>
<body>
<center>
<form name="Form1" method="post"
action="http://localhost:8080/Dnyan/servlet/PostParameters">
<table>
<tr>
<td>employee</td>
<td><input type=textbox name="e" size="25" value=""></td>
70
</tr>
THE SERVLET API
(JAVAX.SERVLET)
GenericServlet : Reading Servlet Parameters Example
<tr>
<td>phone</td>
<td><input type=textbox name="p" size="25" value=""></td>
</tr>
</table>
<input type=submit value="submit">
</body>
</html> 71
THE SERVLET API
(JAVAX.SERVLET)
GenericServlet : Reading Servlet Parameters Example
Enumeration e=req.getParameterNames()
while(e.hasMoreElements())
{
String pname=(String)e.nextElement();
pw.print(pname+”=“);
Stirng pvalue=req.getParameter(pname);
pw.println(pvalue);
}
72
THE SERVLET API
(JAVAX.SERVLET.HHTP)
Interfaces:
• HttpServletRequest: used to read data from an HTTP client
request.
• HttpServletResponse:used to write data to HTTP client
response.
• HttpSession: Allows session data to be read and write.
73
THE SERVLET API
(JAVAX.SERVLET.HHTP)
Classes:
• Cookie: Allows state information to be stored on a client
machine.
• HttpServlet: Provides methods to handle HTTP request &
responses.
• HttpSessionEvent: This is notified when session object is
changed.
74
THE SERVLET API
(JAVAX.SERVLET.HHTP)
Classes:
• HttpSessionBindingEvent: Events of this type are either sent
to an object that implements HttpSessionBindingListener
when it is bound or unbound from a session.
75
THE SERVLET API
(JAVAX.SERVLET.HTTP)
HttpServletRequest:
76
THE SERVLET API
(JAVAX.SERVLET.HTTP)
HttpServletRequest:
77
THE SERVLET API
(JAVAX.SERVLET.HHTP)
HttpServletRequest : Methods
78
THE SERVLET API
(JAVAX.SERVLET.HTTP)
HttpServletRequest : Methods
• Enumeration getParameterNames()
79
THE SERVLET API
(JAVAX.SERVLET.HTTP)
HttpServletRequest : Methods
80
THE SERVLET API
(JAVAX.SERVLET.HTTP)
HttpServletRequest : Methods
• Cookie[] getCookies()
81
THE SERVLET API
(JAVAX.SERVLET.HTTP)
HttpServletRequest : Methods
83
THE SERVLET API
(JAVAX.SERVLET.HTTP)
HttpServletResponse:
85
THE SERVLET API
(JAVAX.SERVLET.HTTP)
HttpServletResponse : Methods
86
THE SERVLET API
(JAVAX.SERVLET.HTTP)
HttpServletResponse : Methods
• ServletOutputStream getOutputStream()
87
THE SERVLET API
(JAVAX.SERVLET.HTTP)
HttpServletResponse : Methods
• PrintWriter getWriter()
88
THE SERVLET API
(JAVAX.SERVLET.HTTP)
HttpServletResponse : Methods
89
THE SERVLET API
(JAVAX.SERVLET.HTTP)
HttpServletResponse : Methods
90
THE SERVLET API
(JAVAX.SERVLET.HTTP)
HttpSession:
91
THE SERVLET API
(JAVAX.SERVLET.HTTP)
HttpSession:
93
THE SERVLET API
(JAVAX.SERVLET.HTTP)
HttpSession : Methods
94
THE SERVLET API
(JAVAX.SERVLET.HTTP)
HttpSession : Methods
• boolean isNew()
96
THE SERVLET API
(JAVAX.SERVLET.HTTP)
HttpServlet class:
97
THE SERVLET API
(JAVAX.SERVLET.HTTP)
HttpServlet class:
99
THE SERVLET API
(JAVAX.SERVLET.HTTP)
HttpServlet : Methods
100
THE SERVLET API
(JAVAX.SERVLET.HTTP)
HttpServlet : Methods
101
THE SERVLET API
(JAVAX.SERVLET.HTTP)
Cookies class:
104
THE SERVLET API
(JAVAX.SERVLET.HTTP)
Cookies Class : Methods
• int getMaxAge()
105
THE SERVLET API
(JAVAX.SERVLET.HTTP)
Cookies Class : Methods
• String getName()
106
THE SERVLET API
(JAVAX.SERVLET.HTTP)
Cookies Class : Methods
• String getValue()
• String getPath()
108
THE SERVLET API
(JAVAX.SERVLET.HTTP)
Handling HTTP Request & Response:
109
THE SERVLET API
(JAVAX.SERVLET.HTTP)
Handling HTTP GET Request: Example
110
THE SERVLET API
(JAVAX.SERVLET.HTTP)
Handling HTTP POST Request: Example
111
COOKIES AND SESSION TRACKING
Session Tracking:
112
COOKIES AND SESSION TRACKING
Session Tracking:
113
COOKIES AND SESSION TRACKING
Session Tracking:
Cookies
URL Rewriting
HttpSession
115
COOKIES AND SESSION TRACKING
Session Tracking: Cookies
116
COOKIES AND SESSION TRACKING
Session Tracking: Cookies
117
COOKIES AND SESSION TRACKING
Session Tracking: Cookies
118
COOKIES AND SESSION TRACKING
Session Tracking: Cookies
119
COOKIES AND SESSION TRACKING
Session Tracking: Cookies
• Types of Cookies:
• Non-persistent Cookie:
120
COOKIES AND SESSION TRACKING
Session Tracking: Cookies
• Types of Cookies:
• Persistent cookie:
121
COOKIES AND SESSION TRACKING
Session Tracking: Cookies
• Advantages of Cookies:
• Simplest technique of maintaining the state.
122
COOKIES AND SESSION TRACKING
Session Tracking: Cookies
• Disadvantages of Cookies:
• It will not work if Cookie is disabled from the browser.
123
COOKIES AND SESSION TRACKING
Session Tracking: Cookies Example
124
COOKIES AND SESSION TRACKING
Session Tracking: Hidden Form Field
125
COOKIES AND SESSION TRACKING
Session Tracking: Hidden Form Field
126
COOKIES AND SESSION TRACKING
Session Tracking: Hidden Form Field
127
COOKIES AND SESSION TRACKING
Session Tracking: Hidden Form Field Example
128
COOKIES AND SESSION TRACKING
Session Tracking: URL Rewriting
url?name1=value1&name2=value2&??
129
COOKIES AND SESSION TRACKING
Session Tracking: URL Rewriting
130
COOKIES AND SESSION TRACKING
Session Tracking: URL Rewriting
131
COOKIES AND SESSION TRACKING
Session Tracking: URL Rewriting
132
COOKIES AND SESSION TRACKING
Session Tracking: URL Rewriting
133
COOKIES AND SESSION TRACKING
Session Tracking: URL Rewriting Example
134
COOKIES AND SESSION TRACKING
Session Tracking: HttpSession
135
COOKIES AND SESSION TRACKING
Session Tracking: HttpSession
137