Download Servlets Tutorial (PDF Version) - Tutorials Point

drivercutInternet and Web Development

Nov 13, 2013 (3 years and 8 months ago)

107 views


Servlets Tutorial








i




SERVLETS
TUTORIAL

Simply Easy Learning by tutorialspoint.com

tutorialsp
oint
.com


TUTORIALS POINT

Simply Easy Learning




ABOUT THE TUTORIAL

Servlets
Tutorial

Servlets provide a component
-
based, platform
-
independent method for building Web
-
based applications,
without the performance limitations of CGI programs. Servlets have access to the entire family of Java
APIs, including the JDBC API to access
enterprise databases.

This tutorial will teach you how to use Java Servlets to develop your web based applications in simple and
easy steps.

Audience

This tutorial is designed for Java programmers with a need to understand the Java Servlets framework
and i
ts APIs. After completing this tutorial you will find yourself at a moderate level of expertise in using
Java Servelts from where you can take yourself to next levels.

Prerequisites

We assume you have good understanding of the Java programming language. It

will be great if you have
a basic understanding of web application and how internet works.

Copyright & Disclaimer Notice


All the content and graphics on this tutorial are the property of tutorialspoint.com. Any content from
tutorialspoint.com or this tut
orial may not be redistributed or reproduced in any way, shape, or form
without the written permission of tutorialspoint.com. Failure to do so is a violation of copyright laws.

This tutorial may contain inaccuracies or errors and tutorialspoint provides n
o guarantee regarding the
accuracy of the site or its contents including this tutorial. If you discover that the tutorialspoint.com site
or this tutorial content contains some errors, please contact us at
webmaster@tutorialspoint.com



TUTORIALS POINT

Simply Easy Learning




T
able of Content

Servlets Tutorial

................................
................................
.......

2

Audience

................................
................................
..................

2

Prerequisites

................................
................................
............

2

Copyright & Disclaimer Notice

................................
..................

2

Overview

................................
................................
..................

7

Servlets Architecture:

................................
................................
................

7

Servlets Tasks:

................................
................................
..........................

8

Servlets Packages:

................................
................................
....................

8

What is Next?

................................
................................
............................

8

Environment

................................
................................
.............

9

Setting up Java Development Kit

................................
...............................

9

Setting up Web Server: Tomcat

................................
...............................

10

Setting up CLASSPATH

................................
................................
..........

11

Life Cycle

................................
................................
...............

12

The init() method :

................................
................................
...................

12

The service() method :

................................
................................
.............

12

The doGet() Method

................................
................................
................

13

The doPost() Method

................................
................................
...............

13

The destroy() method :

................................
................................
............

13

Architecture Digram:

................................
................................
................

14

Examples

................................
................................
...............

15

Sample Code for Hello World:

................................
................................
.

15

Compiling a Servlet:

................................
................................
................

16

Servlet Deployment:

................................
................................
................

16

Form Data

................................
................................
..............

18

GET method:

................................
................................
...........................

18

POST me
thod:

................................
................................
.........................

18

Reading Form Data using Servlet:

................................
...........................

18

GET Method Example Us
ing URL:

................................
..........................

19

Using GET Method to Read Form Data
................................
..

20

GET Method Example Using Form:

................................
.........................

20

POST Method Example Using Form:

................................
......................

2
0

Passing Checkbox Data to Servlet Program

................................
...........

22

Reading Checkbox Data

................................
........................

23

Reading All Form Parameters:

................................
................................

23

Reading All Form Parameters

................................
................

24

Client Request

................................
................................
.......

26

TUTORIALS POINT

Simply Easy Learning




Methods to read HTTP Header:
................................
...............................

27

HTTP Header Request Example:

................................
............................

29

HTTP Header Request Example

................................
............

30

Server Response

................................
................................
...

31

Methods to Set HTTP Response Header:

................................
...............

32

HTTP Header Response Example:

................................
.........................

33

Auto Refresh Header Setting

................................
.................

34

Http Codes

................................
................................
.............

35

Methods to Set HTTP Status Code:

................................
........................

37

HTTP Status Code Example:
................................
................................
...

37

HTTP Status 407
-

Need authentication!!!

..............................

38

APACHE TOMCAT/5.5.29

................................
................................
......

38

Writing Filters

................................
................................
.........

39

Servlet Filter Methods:

................................
................................
.............

39

Servlet Filter Example:

................................
................................
............

40

Servlet Filter Mapping in Web.xml:

................................
..........................

41

Using Multiple Filters:

................................
................................
..............

41

Filters Application Order:

................................
................................
.........

42

Exception Handling

................................
................................

43

web.xml Configuration:

................................
................................
............

43

Request Attributes
-

Errors/Exceptions:

................................
...................

44

Error Handler Servlet Example:

................................
...............................

45

Cookies Handling

................................
................................
...

47

The Anatomy of a Cookie:

................................
................................
.......

47

Servlet Cookies Methods:

................................
................................
........

48

Setting Cookies with Servlet:

................................
................................
...

49

Example:

................................
................................
................................
.

49

Reading Cookies with Servlet:

................................
................................
.

50

Example:

................................
................................
................................
.

50

Found Cookies Name and Value

................................
.............................

51

Delete Cookies with Servl
et:

................................
................................
....

51

Example:

................................
................................
................................
.

52

Cookies Name and Value

................................
................................
........

53

Found Cookies Name and Value

................................
.............................

53

Session Tracking
................................
................................
....

54

Cookies:

................................
................................
................................
..

54

Hidden Form Fields:

................................
................................
................

54

URL Rewriting:

................................
................................
........................

54

The HttpSession Object:

................................
................................
..........

55

TUTORIALS POINT

Simply Easy Learning




Session Tracking Example:

................................
................................
.....

56

Welcome to my website

................................
.........................

57

Session Infomation

................................
................................
..................

57

Welcome Back to my website

................................
................

57

Session Infomation

................................
................................
..................

57

Deleting Session Data:

................................
................................
............

58

Database Access

................................
................................
...

59

Create Table

................................
................................
............................

59

Step 1:

................................
................................
................................
.....

59

Step 2:

................................
................................
................................
.....

59

Step 3:

................................
................................
................................
.....

59

Create Data Records

................................
................................
...............

60

Accessing a Database:

................................
................................
............

60

DatabaseResult

................................
................................
.

62

File Uploading

................................
................................
........

63

Creating a File Upload Form:
................................
................................
...

63

Compile and Running Servlet:

................................
................................
.

66

Handling Date

................................
................................
........

68

Getting Current Date & Time

................................
................................
...

69

Display Current Date & Time

................................
..................

69

Mon Jun 21 21:46:49 GMT+04:00 2010

................................
.

69

Date Comparison:

................................
................................
....................

70

Date Form
atting using SimpleDateFormat:

................................
.............

70

Display Current Date & Time

................................
..................

71

Mon 2010.06.21 at 10:06:44 PM GMT+04:00

................................
.........

71

Simple DateFormat format codes:

................................
...........................

71

Page Redirect

................................
................................
........

72

Example:

................................
................................
................................
.

72

Hits Counter

................................
................................
...........

74

Example:

................................
................................
................................
.

74

Total Number of Hits

................................
..............................

76

6

................................
................................
.............................

76

Hit Counter for a W
ebsite:

................................
................................
.......

76

Example:

................................
................................
................................
.

76

Auto Refresh

................................
................................
..........

78

Auto Page Refresh Example:

................................
................................
..

78

Auto Page Refresh using Servlet

................................
...........

79

Sending Email

................................
................................
........

80

Send a Simple Email:

................................
................................
..............

80

TUTORIALS POINT

Simply Easy Learning




Send Email

................................
................................
.............

82

Send an HTML Email:

................................
................................
.............

82

Send Attachment in Email:

................................
................................
......

83

User Authentication Part:

................................
................................
.........

85

Packaging

................................
................................
..............

86

Creating Servlets in Packages:
................................
................................

86

Compiling Servlets in Packages:

................................
.............................

87

Packaged Servlet Deployment:

................................
...............................

87

Hello World

................................
................................
............

88

Debugging

................................
................................
..............

89

System.out.println()

................................
................................
.................

89

Message Logging:

................................
................................
...................

89

Using JDB Debugger:

................................
................................
..............

90

Using Comments:

................................
................................
....................

91

Client and Server Headers:

................................
................................
.....

91

Important Debugging Tips:

................................
................................
......

91

Internationalization

................................
................................
.

92

Detecting Locale:

................................
................................
.....................

92

Example:

................................
................................
................................
.

93

Lan
guages Setting:

................................
................................
..................

93

Locale Specific Dates:

................................
................................
.............

94

Locale Specific Currency

................................
................................
.........

95

Locale Specific Percentage

................................
................................
.....

95

TUTORIALS POINT

Simply Easy Learning




Overview

What are Servlets?

J
ava Servlets
are programs that run on a Web or Application server and act as a middle layer between a
request
coming from a Web browser or other HTTP client and databases or applications on the HTTP server.

Using Servlets, you can collect input from users through web page forms, present records from a database or
another source, and create web pages dynamically.

J
ava Servlets often serve the same purpose as programs implemented using the Common Gateway Interface
(CGI). But Servlets offer several advantages in comparison with the CGI.



Performance is significantly better.



Servlets execute within the address space of
a Web server. It is not necessary to create a separate process to
handle each client request.



Servlets are platform
-
independent because they are written in Java.



Java security manager on the server enforces a set of restrictions to protect the resources on

a server
machine. So servlets are trusted.



The full functionality of the Java class libraries is available to a servlet. It can communicate with applets,
databases, or other software via the sockets and RMI mechanisms that you have seen already.

Servlets
Architecture:

Following diagram shows the position of Servelts in a Web Application.

C
HAPTER

1

TUTORIALS POINT

Simply Easy Learning





Servlets Tasks:

Servlets perform the following major tasks:



Read the explicit data sent by the clients (browsers). This includes an HTML form on a Web page or it could a
lso
come from an applet or a custom HTTP client program.



Read the implicit HTTP request data sent by the clients (browsers). This includes cookies, media types and
compression schemes the browser understands, and so forth.



Process the data and generate the

results. This process may require talking to a database, executing an RMI or
CORBA call, invoking a Web service, or computing the response directly.



Send the explicit data (i.e., the document) to the clients (browsers). This document can be sent in a vari
ety of
formats, including text (HTML or XML), binary (GIF images), Excel, etc.



Send the implicit HTTP response to the clients (browsers). This includes telling the browsers or other clients what
type of document is being returned (e.g., HTML), setting cook
ies and caching parameters, and other such tasks.

Servlets Packages:

Java Servlets are Java classes run by a web server that has an interpreter that supports the Java Servlet
specification.

Servlets can be created using the

javax.servlet

and

javax.servlet.http

packages, which are a standard part of the
Java's enterprise edition, an expanded version of the Java class library that supports large
-
scale development
projects.

These classes implement the Java Servlet and JSP specifications. At the t
ime of writing this tutorial, the versions
are Java Servlet 2.5 and JSP 2.1.

Java servlets have been created and compiled just like any other Java class. After you install the servlet packages
and add them to your computer's Classpath, you can compile serv
lets with the JDK's Java compiler or any other
current compiler.

What is Next?

I would take you step by step to set up your environment to start with Servlets. So fasten your belt for a nice drive
with Servlets. I'm sure you are going to enjoy this tutoria
l very much.

TUTORIALS POINT

Simply Easy Learning




Environment

A

development
environment

is where you would develop your Servlet, test them and finally run them.

Like any other Java program, you need to compile a servlet by using the Java compiler

javac

and after compilation
the
servlet application, it would be deployed in a configured environment to test and run.

This development environment setup involves following steps:

Setting up Java Development Kit

This step involves downloading an implementation of the Java Software Develo
pment Kit (SDK) and setting up
PATH environment variable appropriately.

You can download SDK from Oracle's Java site:

Java SE Downloads
.

Once you download your J
ava implementation, follow the given instructions to install and configure the setup.
Finally set PATH and JAVA_HOME environment variables to refer to the directory that contains java and javac,
typically java_install_dir/bin and java_install_dir respectiv
ely.

If you are running Windows and installed the SDK in C:
\
jdk1.5.0_20, you would put the following line in your
C:
\
autoexec.bat file.

set

PATH
=
C
:
\
jdk1
.
5.0
_20
\
b
in
;%
PATH
%

set

JAVA_HOME
=
C
:
\
jdk1
.
5.0
_20

Alternatively, on Windows NT/2000/XP, you could also
right
-
click on My Computer, select Properties, then
Advanced, then Environment Variables. Then, you would update the PATH value and press the OK button.

On Unix (Solaris, Linux, etc.), if the SDK is installed in /usr/local/jdk1.5.0_20 and you use the C she
ll, you would put
the following into your .cshrc file.

setenv PATH
/
usr
/
local
/
jdk1
.
5.0
_20
/
bin
:
$PATH

setenv JAVA_HOME
/
usr
/
local
/
jdk1
.
5.0
_20

Alternatively, if you use an Integrated Development Environment (IDE) like Borland JBuilder, Eclipse, IntelliJ IDEA,

or Sun ONE Studio, compile and run a simple program to confirm that the IDE knows where you installed Java.

CHAPTER

2

TUTORIALS POINT

Simply Easy Learning




Setting up Web Server: Tomcat

A number of Web Servers that support servlets are available in the market. Some web servers are freely
downloadable a
nd Tomcat is one of them.

Apache Tomcat is an open source software implementation of the Java Servlet and JavaServer Pages technologies
and can act as a standalone server for testing servlets and can be integrated with the Apache Web Server. Here are
the s
teps to setup Tomcat on your machine:



Download latest version of Tomcat from

http://tomcat.apache.org/
.



Once you downloaded the installation, unpack the binary distribution into a convenient location.
For example in
C:
\
apache
-
tomcat
-
5.5.29 on windows, or /usr/local/apache
-
tomcat
-
5.5.29 on Linux/Unix and create
CATALINA_HOME environment variable pointing to these locations.

Tomcat can be started by executing the following commands on windows machine:

%
CA
TALINA_HOME
%
\
b
in
\
startup
.
bat


or



C
:
\
apache
-
tomcat
-
5.5
.
29
\
b
in
\
startup
.
bat

Tomcat can be started by executing the following commands on Unix (Solaris, Linux, etc.) machine:

$CATALINA_HOME
/
bin
/
startup
.
sh


or


/
usr
/
local
/
apache
-
tomcat
-
5.5
.
29
/
bin
/
startup
.
sh

After startup, the default web applications included with Tomcat will be available by visiting
http://localhost:8080/
. If
everything is fine then it should display following result:

TUTORIALS POINT

Simply Easy Learning





Further information about configuring and running Tomcat can be found in
the documentation included here, as well
as on the Tomcat web site: http://tomcat.apache.org

Tomcat can be stopped by executing the following commands on windows machine:

C
:
\
apache
-
tomcat
-
5.5
.
29
\
b
in
\
shutdown

Tomcat can be stopped by executing the following

commands on Unix (Solaris, Linux, etc.) machine:

/usr/
local
/
apache
-
tomcat
-
5.5
.
29
/
bin
/
shutdown
.
sh

Setting up CLASSPATH

Since servlets are not part of the Java Platform, Standard Edition, you must identify the servlet classes to the
compiler.

If you are
running Windows, you need to put the following lines in your C:
\
autoexec.bat file.

set

CATALINA
=
C
:
\
apache
-
tomcat
-
5.5
.
29

set

CLASSPATH
=%
CATALINA
%
\
common
\
lib
\
servlet
-
api
.
jar
;%
CLASSPATH
%

Alternatively, on Windows NT/2000/XP, you could also right
-
click on My C
omputer, select Properties, then
Advanced, then Environment Variables. Then, you would update the CLASSPATH value and press the OK button.

On Unix (Solaris, Linux, etc.), if you are using the C shell, you would put the following lines into your .cshrc file
.

setenv CATALINA
=
/usr/
local
/
apache
-
tomcat
-
5.5
.
29

setenv CLASSPATH $CATALINA
/
common
/
lib
/
servlet
-
api
.
jar
:
$CLASSPATH

NOTE:

Assuming that your development directory is C:
\
ServletDevel (Windows) or /usr/ServletDevel (Unix) then
you would need to add these
directories as well in CLASSPATH in similar way as you have added above.


TUTORIALS POINT

Simply Easy Learning




Life Cycle

A
servlet
life cycle can be defined as the entire process from its creation till the destruction. The following
are the paths followed by a servlet



The servlet is

initialized by calling the

init ()

method.



The servlet calls

service()

method to process a client's request.



The servlet is terminated by calling the

destroy()

method.



Finally, servlet is garbage collected by the garbage collector of the JVM.

Now let us d
iscuss the life cycle methods in details.

The init() method :

The init method is designed to be called only once. It is called when the servlet is first created, and not called again
for each user request. So, it is used for one
-
time initializations, just
as with the init method of applets.

The servlet is normally created when a user first invokes a URL corresponding to the servlet, but you can also
specify that the servlet be loaded when the server is first started.

When a user invokes a servlet, a single
instance of each servlet gets created, with each user request resulting in a
new thread that is handed off to doGet or doPost as appropriate. The init() method simply creates or loads some
data that will be used throughout the life of the servlet.

The init

method definition looks like this:

publicvoid

init
()
throws
ServletException
{

// Initialization code...

}

The service() method :

The service() method is the main method to perform the actual task. The servlet container (i.e. web server) calls the
service()
method to handle requests coming from the client( browsers) and to write the formatted response back to
the client.

CHAPTER

3

TUTORIALS POINT

Simply Easy Learning




Each time the server receives a request for a servlet, the server spawns a new thread and calls service. The
service() method checks the HTT
P request type (GET, POST, PUT, DELETE, etc.) and calls doGet, doPost, doPut,
doDelete, etc. methods as appropriate.

Here is the signature of this method:

publicvoid

service
(
ServletRequest

request
,

ServletResponse

response
)

throws
ServletException
,
IOException
{

}

The service () method is called by the container and service method invokes doGe, doPost, doPut, doDelete, etc.
methods as appropriate. So you have nothing to do with service() method but you override either doGet() or
doPost() depending on
what type of request you receive from the client.

The doGet() and doPost() are most frequently used methods with in each service request. Here is the signature of
these two methods.

The doGet() Method

A GET request results from a normal request for a URL o
r from an HTML form that has no METHOD specified and
it should be handled by doGet() method.

publicvoid

doGet
(
HttpServletRequest

request
,

HttpServletResponse

response
)

throws
ServletException
,
IOException
{

// Servlet code

}

The doPost() Method

A POST request

results from an HTML form that specifically lists POST as the METHOD and it should be handled
by doPost() method.

publicvoid

doPost
(
HttpServletRequest

request
,

HttpServletResponse

response
)

throws
ServletException
,
IOException
{

// Servlet code

}

The destroy
() method :

The destroy() method is called only once at the end of the life cycle of a servlet. This method gives your servlet a
chance to close database connections, halt background threads, write cookie lists or hit counts to disk, and perform
other such

cleanup activities.

After the destroy() method is called, the servlet object is marked for garbage collection. The destroy method
definition looks like this:

publicvoid

destroy
(){

// Finalization code...

}

TUTORIALS POINT

Simply Easy Learning




Architecture Digram:

The following figure depicts

a typical servlet life
-
cycle scenario.



First the HTTP requests coming to the server are delegated to the servlet container.



The servlet container loads the servlet before invoking the service() method.



Then the servlet container handles multiple requests
by spawning multiple threads, each thread executing the
service() method of a single instance of the servlet.





TUTORIALS POINT

Simply Easy Learning




Example
s

S
ervlets
are Java classes which service HTTP requests and implement the

javax.servlet.Servlet
interface.
Web application
developers typically write servlets that extend javax.servlet.http.HttpServlet, an abstract class that
implements the Servlet interface and is specially designed to handle HTTP requests.

Sample Code for Hello World:

Following is the sample source code stru
cture of a servlet example to write Hello World:

// Import required java libraries

import

java
.
io
.*;

import

javax
.
servlet
.*;

import

javax
.
servlet
.
http
.*;


// Extend HttpServlet class

publicclass
HelloWorld
extends
HttpServlet
{


private
String

message
;


publicvoid

init
()
throws
ServletException

{

// Do required initialization


message
=
"Hello World"
;

}


publicvoid

doGet
(
HttpServletRequest

request
,

HttpServletResponse

response
)

throws
ServletException
,
IOException

{

// Set response content type


resp
onse
.
setContentType
(
"text/html"
);


// Actual logic goes here.

PrintWriter
out
=

response
.
getWriter
();

out
.
println
(
"<h1>"
+

message
+
"</h1>"
);

}


publicvoid

destroy
()

{

// do nothing.

}

CHAPTER

4

TUTORIALS POINT

Simply Easy Learning




}

Compiling a Servlet:

Let us put above code if HelloWorld.java file and
put this file in C:
\
ServletDevel (Windows) or /usr/ServletDevel
(Unix) then you would need to add these directories as well in CLASSPATH.

Assuming your environment is setup properly, go in

ServletDevel

directory and compile HelloWorld.java as follows:

$ javac
HelloWorld
.
java

If the servlet depends on any other libraries, you have to include those JAR files on your CLASSPATH as well. I
have included only servlet
-
api.jar JAR file because I'm not using any other library in Hello World program.

This command

line uses the built
-
in javac compiler that comes with the Sun Microsystems Java Software
Development Kit (JDK). For this command to work properly, you have to include the location of the Java SDK that
you are using in the PATH environment variable.

If
everything goes fine, above compilation would produce

HelloWorld.class

file in the same directory. Next section
would explain how a compiled servlet would be deployed in production.

Servlet Deployment:

By default, a servlet application is located at the pa
th <Tomcat
-
installation
-
directory>/webapps/ROOT and the class
file would reside in <Tomcat
-
installation
-
directory>/webapps/ROOT/WEB
-
INF/classes.

If you have a fully qualified class name of

com.myorg.MyServlet
, then this servlet class must be located in WEB
-
INF/classes/com/myorg/MyServlet.class.

For now, let us copy HelloWorld.class into <Tomcat
-
installation
-
directory>/webapps/ROOT/WEB
-
INF/classes and
create following entries in

web.xml

file located in <Tomcat
-
installation
-
directory>/webapps/ROOT/WEB
-
INF/

<s
ervlet>

<servlet
-
name>
HelloWorld
</servlet
-
name>

<servlet
-
class>
HelloWorld
</servlet
-
class>

</servlet>


<servlet
-
mapping>

<servlet
-
name>
HelloWorld
</servlet
-
name>

<url
-
pattern>
/HelloWorld
</url
-
pattern>

</servlet
-
mapping>

Above entries to be created inside <
web
-
app>...</web
-
app> tags available in web.xml file. There could be various
entries in this table already available, but never mind.

You are almost done, now let us start tomcat server using <Tomcat
-
installation
-
directory>
\
bin
\
startup.bat (on
windows) or
<Tomcat
-
installation
-
directory>/bin/startup.sh (on Linux/Solaris etc.) and finally
type

http://localhost:8080/HelloWorld

in browser's address box. If everything goes fine, you would get following
result:

TUTORIALS POINT

Simply Easy Learning








TUTORIALS POINT

Simply Easy Learning




Form Data

Y
ou must

have come across many situations when you need to pass some information from your browser
to web server and ultimately to your backend program. The browser uses two methods to pass this information to
web server. These methods are GET Method and POST Meth
od.

GET method:

The GET method sends the encoded user information appended to the page request. The page and the encoded
information are separated by the ? character as follows:

http
:
//www.test.com/hello?key1=value1&key2=value2

The GET method is the defual
t method to pass information from browser to web server and it produces a long string
that appears in your browser's Location:box. Never use the GET method if you have password or other sensitive
information to pass to the server. The GET method has size l
imtation: only 1024 characters can be in a request
string.

This information is passed using QUERY_STRING header and will be accessible through QUERY_STRING
environment variable and Servlet handles this type of requests using

doGet()
method.

POST method:

A
generally more reliable method of passing information to a backend program is the POST method. This packages
the information in exactly the same way as GET methods, but instead of sending it as a text string after a ? in the
URL it sends it as a separate m
essage. This message comes to the backend program in the form of the standard
input which you can parse and use for your processing. Servlet handles this type of requests
using

doPost()

method.

Reading Form Data using Servlet:

Servlets handles form data pa
rsing automatically using the following methods depending on the situation:



getParameter():

You call request.getParameter() method to get the value of a form parameter.



getParameterValues():

Call this method if the parameter appears more than once and retu
rns multiple
values, for example checkbox.



getParameterNames():

Call this method if you want a complete list of all parameters in the current request.

CHAPTER

5

TUTORIALS POINT

Simply Easy Learning




GET Method Example Using URL:

Here is a simple URL which will pass two values to HelloForm program using
GET method.

http://localhost:8080/HelloForm?first_name=ZARA&last_name=ALI

Below is

HelloForm.java

servlet program to handle input given by web browser. We are going to
use
getParameter()

method which makes it very easy to access passed information:

//
Import required java libraries

import

java
.
io
.*;

import

javax
.
servlet
.*;

import

javax
.
servlet
.
http
.*;


// Extend HttpServlet class

publicclass
HelloForm
extends
HttpServlet
{


publicvoid

doGet
(
HttpServletRequest

request
,

HttpServletResponse

response
)

throws
ServletException
,
IOException

{

// Set response content type


response
.
setContentType
(
"text/html"
);


PrintWriter
out
=

response
.
getWriter
();


String

title
=
"Using GET Method to Read Form Data"
;

String

docType
=

"<!doctype html public
\
"
-
//w3c//dtd html
4.0 "
+

"transitional//en
\
">
\
n"
;

out
.
println
(
docType
+

"<html>
\
n"
+

"<head><title>"
+

title
+
"</title></head>
\
n"
+

"<body bgcolor=
\
"#f0f0f0
\
">
\
n"
+

"<h1 align=
\
"center
\
">"
+

title
+
"</h1>
\
n"
+

"<ul>
\
n"
+

" <li><b>First Name</b>: "

+

request
.
getParameter
(
"first_na
me"
)+
"
\
n"
+

" <li><b>Last Name</b>: "

+

request
.
getParameter
(
"last_name"
)+
"
\
n"
+

"</ul>
\
n"
+

"</body></html>"
);

}

}

Assuming your environment is setup properly, compile HelloForm.java as follows:

$ javac
HelloForm
.
java

If everything goes fine, above
compilation would produce

HelloForm.class

file. Next you would have to copy this
class file in <Tomcat
-
installation
-
directory>/webapps/ROOT/WEB
-
INF/classes and create following entries
in

web.xml

file located in <Tomcat
-
installation
-
directory>/webapps/ROOT
/WEB
-
INF/

<servlet>

<servlet
-
name>
HelloForm
</servlet
-
name>

<servlet
-
class>
HelloForm
</servlet
-
class>

</servlet>


<servlet
-
mapping>

<servlet
-
name>
HelloForm
</servlet
-
name>

<url
-
pattern>
/HelloForm
</url
-
pattern>

TUTORIALS POINT

Simply Easy Learning




</servlet
-
mapping>

Now type

http://localhost:8080/HelloForm?first_name=ZARA&last_name=ALI

in your browser's Location:box and
make sure you already started tomcat server, before firing above command in the browser. This would generate
following result:

Using GET Method to Read Form
Data



First Name
: ZARA



Last Name
: ALI

GET Method Example Using Form:

Here is a simple example which passes two values using HTML FORM and submit button. We are going to use
same Servlet HelloForm to handle this imput.

<html>

<body>

<form
action
=
"HelloForm"
method
=
"GET"
>

First Name:
<input
type
=
"text"
name
=
"first_name"
>

<br/>

Last Name:
<input
type
=
"text"
name
=
"last_name"
/>

<input
type
=
"submit"
value
=
"Submit"
/>

</form>

</body>

</html>

Keep this HTML in a file Hello.htm and put it in <Tomcat
-
installation
-
directory>
/webapps/ROOT directory. When you
would access

http://localhost:8080/Hello.htm
, here is the actual output of the above form.


Try to enter First Name and Last Name and then click submit button to see the result on your local machine where
tomcat is running. Based on the input provided, it will generate similar result as mentioned in the above example.


POST Method Example Using Form:

Let us do little modification in the above servlet, so that it can handle GET as well as POST methods.
Below
is

HelloForm.java

servlet program to handle input given by web browser using GET or POST methods.

// Import required java libraries

import

java
.
io
.*;

import

javax
.
servlet
.*;

import

javax
.
servlet
.
http
.*;


// Extend HttpServlet class

publicclass
HelloForm
extends
HttpServlet
{


// Method to handle GET method request.

publicvoid

doGet
(
HttpServletRequest

request
,

HttpServletResponse

response
)

TUTORIALS POINT

Simply Easy Learning




throws
ServletException
,
IOException

{

// Set response content type


response
.
setContentType
(
"text/html"
);


PrintWriter
out
=

response
.
getWriter
();


String

title
=
"Using GET Method to Read Form Data"
;

String

docType
=

"<!doctype html public
\
"
-
//w3c//dtd html 4.0 "
+

"transitional//en
\
">
\
n"
;

out
.
println
(
docType
+

"<html>
\
n"
+

"<head><title>"
+

title
+
"</title></head>
\
n"
+

"<body bgcolor=
\
"#f0f0f0
\
">
\
n"
+

"<h1 align=
\
"center
\
">"
+

title
+
"</h1>
\
n"
+

"<ul>
\
n"
+

" <li><b>First Name</b>: "

+

request
.
getParameter
(
"first_name"
)+
"
\
n"
+

" <li><b>Last Name</b>: "

+

request
.
getParameter
(
"last_name"
)+
"
\
n"
+

"</ul>
\
n"
+

"</body></html>
"
);

}

// Method to handle POST method request.

publicvoid

doPost
(
HttpServletRequest

request
,

HttpServletResponse

response
)

throws
ServletException
,
IOException
{


doGet
(
request
,

response
);

}

}

Now compile, deploy the above Servlet and test it using
Hello.htm with the POST method as follows:

<html>

<body>

<form
action
=
"HelloForm"
method
=
"POST"
>

First Name:
<input
type
=
"text"
name
=
"first_name"
>

<br/>

Last Name:
<input
type
=
"text"
name
=
"last_name"
/>

<input
type
=
"submit"
value
=
"Submit"
/>

</form>

</body>

</html>

Here is the actual output of the above form, Try to enter First and Last Name and then click submit button to see the
result on your local machine where tomcat is running.


Based on the input provided, it would generate similar result as me
ntioned in the above examples.


TUTORIALS POINT

Simply Easy Learning




Passing Checkbox Data to Servlet Program

Checkboxes are used when more than one option is required to be selected.

Here is example HTML code, CheckBox.htm, for a form with two checkboxes

<html>

<body>

<form
action
=
"CheckBox"
method
=
"POST"
target
=
"_blank"
>

<input
type
=
"checkbox"
name
=
"maths"
checked
=
"checked"
/>

Maths

<input
type
=
"checkbox"
name
=
"physics"
/>

Physics

<input
type
=
"checkbox"
name
=
"chemistry"
checked
=
"checked"
/>


Chemistry

<input
type
=
"submit"
value
=
"Select Subject"
/>

</form>

</body>

</html>

The result of this code is the following form


Below is CheckBox.java servlet program to handle input given by web browser for checkbox button.

// Import required java libraries

import

java
.
io
.*;

import

javax
.
servlet
.*;

import

javax
.
servlet
.
http
.*;


// Extend HttpServlet class

publicclass
CheckBox
extends
HttpServlet
{


// Method to handle GET method request.

publicvoid

doGet
(
HttpServletRequest

request
,

HttpServletResponse

response
)

throws
ServletException
,
IOException

{

// Set response content type


response
.
setContentType
(
"text/html"
);


PrintWriter
out
=

response
.
getWriter
();


String

title
=
"Reading Checkbox Data"
;

String

docType
=

"<!doctype html public
\
"
-
//w3c//dtd html 4.0 "
+

"transitional//en
\
">
\
n"
;

out
.
println
(
docType
+

"<html>
\
n"
+

"<head><title>"
+

title
+
"</title></head>
\
n"
+

"<body bgcolor=
\
"#f0f0f0
\
">
\
n"
+

"<h1 align=
\
"center
\
">"
+

title
+
"</h1>
\
n"
+

"<ul>
\
n"
+

" <li><b>Maths Flag : </b>: "

+

request
.
getParameter
(
"maths"
)+
"
\
n"
+

" <li><b>Physics Flag: </b>: "

+

request
.
getParameter
(
"physics"
)+
"
\
n"
+

" <li><b>Chemistry Flag: </b>: "

+

request
.
getParameter
(
"chemistry"
)+
"
\
n"
+

TUTORIALS POINT

Simply Easy Learning




"</ul>
\
n"
+

"</body></html>"
);

}

// Method to handle POST method request.

publicvoid

doPost
(
HttpServletRequest

request
,

HttpServletResponse

response
)

throws
ServletException
,
IOException
{


doGet
(
request
,

response
);

}

}

For the above example, it would display following result:

Reading Checkbox Data



Maths Flag :

: on



Physics Flag:

: null



Chemistry Flag:

: on


Reading All Form Parameters:

Following is the generic example which uses

getParameterNames()

method of HttpServletRequest to read all the
available form parameters. This method returns an Enumeration that contains the parameter
names in an
unspecified order.

Once we have an Enumeration, we can loop down the Enumeration in the standard manner,
using
hasMoreElements()

method to determine when to stop and using

nextElement()

method to get each parameter
name.

// Import required java
libraries

import

java
.
io
.*;

import

javax
.
servlet
.*;

import

javax
.
servlet
.
http
.*;

import

java
.
util
.*;


// Extend HttpServlet class

publicclass
ReadParams
extends
HttpServlet
{


// Method to handle GET method request.

publicvoid

doGet
(
HttpServletRequest

request
,

HttpServletResponse

response
)

throws
ServletException
,
IOException

{

// Set response content type


response
.
setContentType
(
"text/html"
);


PrintWriter
out
=

response
.
getWriter
();


String

title
=
"Reading All Form Parameters"
;

String

docType
=

"<!doctype
html public
\
"
-
//w3c//dtd html 4.0 "
+

"transitional//en
\
">
\
n"
;

out
.
println
(
docType
+

"<html>
\
n"
+

"<head><title>"
+

title
+
"</title></head>
\
n"
+

"<body bgcolor=
\
"#f0f0f0
\
">
\
n"
+

"<h1 align=
\
"center
\
">"
+

title
+
"</h1>
\
n"
+

"<table width=
\
"100%
\
" border=
\
"1
\
"
align=
\
"center
\
">
\
n"
+

"<tr bgcolor=
\
"#949494
\
">
\
n"
+

TUTORIALS POINT

Simply Easy Learning




"<th>Param Name</th><th>Param Value(s)</th>
\
n"
+

"</tr>
\
n"
);


Enumeration

paramNames
=

request
.
getParameterNames
();


while
(
paramNames
.
hasMoreElements
()){

String

paramName
=(
String
)
paramNames
.
nextElement
();

out
.
print
(
"<tr><td>"
+

paramName
+
"</td>
\
n<td>"
);

String
[]

paramValues
=


request
.
getParameterValues
(
paramName
);

// Read single valued data

if
(
paramValues
.
length
==
1
){

String

paramValue
=

paramValues
[
0
];

if
(
paramValue
.
length
()==
0
)

out
.
println
(
"<i>No Value</i>"
);

else

out
.
println
(
paramValue
);

}
else
{

// Read multiple valued data

out
.
println
(
"<ul>"
);

for
(
int

i
=
0
;

i
<

paramValues
.
length
;

i
++){

out
.
println
(
"<li>"
+

paramValues
[
i
]);

}

out
.
println
(
"</ul>"
);

}

}

out
.
println
(
"</tr>
\
n</table>
\
n<
/body></html>"
);

}

// Method to handle POST method request.

publicvoid

doPost
(
HttpServletRequest

request
,

HttpServletResponse

response
)

throws
ServletException
,
IOException
{


doGet
(
request
,

response
);

}

}

Now, try above servlet with the following form:

<
html>

<body>

<form
action
=
"ReadParams"
method
=
"POST"
target
=
"_blank"
>

<input
type
=
"checkbox"
name
=
"maths"
checked
=
"checked"
/>

Maths

<input
type
=
"checkbox"
name
=
"physics"
/>

Physics

<input
type
=
"checkbox"
name
=
"chemistry"
checked
=
"checked"
/>

Chem

<input
type
=
"submit"
value
=
"Select Subject"
/>

</form>

</body>

</html>

Now calling servlet using above form would generate following result:

Reading All Form Parameters

Param Name

Param Value(s)

maths

on

chemistry

on

TUTORIALS POINT

Simply Easy Learning




You can try above servlet to read any other form's data
which is having other objects like text box, radio button or
drop down box etc.


TUTORIALS POINT

Simply Easy Learning




Client Request

W
he
n
a browser requests for a web page, it sends lot of information to the web server which can not be
read directly because this information travel
as a part of header of HTTP request. You can check

HTTP Protocol

for
more information on this.

Following is the important header information which comes from browser side and you woul
d use very frequently in
web programming:

Header

Description

Accept

This header specifies the MIME types that the browser or other clients can
handle. Values of

image/png

or

image/jpeg

are the two most common
possibilities.

Accept
-
Charset

This header
specifies the character sets the browser can use to display the
information. For example ISO
-
8859
-
1.

Accept
-
Encoding

This header specifies the types of encodings that the browser knows how to
handle. Values of

gzip

or

compress

are the two most common
possibilities.

Accept
-
Language

This header specifies the client's preferred languages in case the servlet can
produce results in more than one language. For example en, en
-
us, ru, etc.

Authorization

This header is used by clients to identify themselves
when accessing
password
-
protected Web pages.

Connection

This header indicates whether the client can handle persistent HTTP
connections. Persistent connections permit the client or other browser to
retrieve multiple files with a single request. A value of
Keep
-
Alive

means that
persistent connections should be used

Content
-
Length

This header is applicable only to POST requests and gives the size of the
POST data in bytes.

Cookie

This header returns cookies to servers that previously sent them to the
browser.

Host

This header specifies the host and port as given in the original URL.

If
-
Modified
-
Since

This header indicates that the client wants the page only if it has been changed
after the specified date. The server sends a code, 304 which means

Not
Modified

header if no newer result is available.

CHAPTER

6

TUTORIALS POINT

Simply Easy Learning




If
-
Unmodified
-
Since

This header is the reverse of If
-
Modified
-
Since; it specifies that the operation
should succeed only if the document is older than the specified date.

Referer

This header indicates the
URL of the referring Web page. For example, if you
are at Web page 1 and click on a link to Web page 2, the URL of Web page 1
is included in the Referer header when the browser requests Web page 2.

User
-
Agent

This header identifies the browser or other
client making the request and can
be used to return different content to different types of browsers.

Methods to read HTTP Header:

There are following methods which can be used to read HTTP header in your servlet program. These methods are
available with

HttpServletRequest

object.

S.N.

Method & Description

1

Cookie[] getCookies()

Returns an array containing all of the Cookie objects the client sent with this request.

2

Enumeration getAttributeNames()

Returns an Enumeration containing the names of the
attributes available to this request.

3

Enumeration getHeaderNames()

Returns an enumeration of all the header names this request contains.

4

Enumeration getParameterNames()

Returns an Enumeration of String objects containing the names of the parameters c
ontained in this
request.

5

HttpSession getSession()

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

6

HttpSession getSession(boolean create)

Returns the current HttpSession associated wit
h this request or, if if there is no current session and
create is true, returns a new session.

7

Locale getLocale()

Returns the preferred Locale that the client will accept content in, based on the Accept
-
Language
header

8

Object getAttribute(String
name)

Returns the value of the named attribute as an Object, or null if no attribute of the given name exists.

9

ServletInputStream getInputStream()

Retrieves the body of the request as binary data using a ServletInputStream.

10

String getAuthType()

Retu
rns the name of the authentication scheme used to protect the servlet, for example, "BASIC" or
"SSL," or null if the JSP was not protected

11

String getCharacterEncoding()

Returns the name of the character encoding used in the body of this request.

12

String getContentType()

Returns the MIME type of the body of the request, or null if the type is not known.

13

String getContextPath()

TUTORIALS POINT

Simply Easy Learning




Returns the portion of the request URI that indicates the context of the request.

14

String getHeader(String name)

Retu
rns the value of the specified request header as a String.

15

String getMethod()

Returns the name of the HTTP method with which this request was made, for example, GET, POST, or
PUT.

16

String getParameter(String name)

Returns the value of a request para
meter as a String, or null if the parameter does not exist.

17

String getPathInfo()

Returns any extra path information associated with the URL the client sent when it made this request.

18

String getProtocol()

Returns the name and version of the protocol

the request.

19

String getQueryString()

Returns the query string that is contained in the request URL after the path.

20

String getRemoteAddr()

Returns the Internet Protocol (IP) address of the client that sent the request.

21

String getRemoteHost()

Re
turns the fully qualified name of the client that sent the request.

22

String getRemoteUser()

Returns the login of the user making this request, if the user has been authenticated, or null if the user
has not been authenticated.

23

String getRequestURI()

Returns the part of this request's URL from the protocol name up to the query string in the first line of the
HTTP request.

24

String getRequestedSessionId()

Returns the session ID specified by the client.

25

String getServletPath()

Returns the part of
this request's URL that calls the JSP.

26

String[] getParameterValues(String name)

Returns an array of String objects containing all of the values the given request parameter has, or null if
the parameter does not exist.

27

boolean isSecure()

Returns a b
oolean indicating whether this request was made using a secure channel, such as HTTPS.

28

int getContentLength()

Returns the length, in bytes, of the request body and made available by the input stream, or
-
1 if the
length is not known.

29

int
getIntHeader(String name)

Returns the value of the specified request header as an int.

30

int getServerPort()

Returns the port number on which this request was received.

TUTORIALS POINT

Simply Easy Learning




HTTP Header Request Example:

Following is the example which uses

getHeaderNames()

me
thod of HttpServletRequest to read the HTTP header
infromation. This method returns an Enumeration that contains the header information associated with the current
HTTP request.

Once we have an Enumeration, we can loop down the Enumeration in the standard
manner,
using
hasMoreElements()

method to determine when to stop and using

nextElement()

method to get each parameter
name.

// Import required java libraries

import

java
.
io
.*;

import

javax
.
servlet
.*;

import

javax
.
servlet
.
http
.*;

import

java
.
util
.*;


//
Extend HttpServlet class

publicclass
DisplayHeader
extends
HttpServlet
{


// Method to handle GET method request.

publicvoid

doGet
(
HttpServletRequest

request
,

HttpServletResponse

response
)

throws
ServletException
,
IOException

{

// Set response content type



response
.
setContentType
(
"text/html"
);


PrintWriter
out
=

response
.
getWriter
();


String

title
=
"HTTP Header Request Example"
;

String

docType
=

"<!doctype html public
\
"
-
//w3c//dtd html 4.0 "
+

"transitional//en
\
">
\
n"
;

out
.
println
(
docType
+

"<html>
\
n"
+

"<head>
<title>"
+

title
+
"</title></head>
\
n"
+

"<body bgcolor=
\
"#f0f0f0
\
">
\
n"
+

"<h1 align=
\
"center
\
">"
+

title
+
"</h1>
\
n"
+

"<table width=
\
"100%
\
" border=
\
"1
\
" align=
\
"center
\
">
\
n"
+

"<tr bgcolor=
\
"#949494
\
">
\
n"
+

"<th>Header Name</th><th>Header Value(s)</th>
\
n"
+

"</tr
>
\
n"
);


Enumeration

headerNames
=

request
.
getHeaderNames
();


while
(
headerNames
.
hasMoreElements
()){

String

paramName
=(
String
)
headerNames
.
nextElement
();

out
.
print
(
"<tr><td>"
+

paramName
+
"</td>
\
n"
);

String

paramValue
=

request
.
getHeader
(
paramName
);

out
.
println
(
"<td> "
+

paramValue
+
"</td></tr>
\
n"
);

}

out
.
println
(
"</table>
\
n</body></html>"
);

}

// Method to handle POST method request.

publicvoid

doPost
(
HttpServletRequest

request
,

HttpServletResponse

response
)

throws
ServletException
,
IOException
{


doGet
(
request
,

response
);

}

}

Now calling the above servlet would generate following result:

TUTORIALS POINT

Simply Easy Learning




HTTP Header Request Example

Header Name

Header Value(s)

accept

*/*

accept
-
language

en
-
us

user
-
agent

Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0;
InfoPath.2;
MS
-
RTC LM 8)

accept
-
encoding

gzip, deflate

host

localhost:8080

connection

Keep
-
Alive

cache
-
control

no
-
cache




TUTORIALS POINT

Simply Easy Learning




Server Response

A
s discussed in previous chapter, when a Web server responds to a HTTP request to the browser, the
response typically consists of a status line, some response headers, a blank line, and the document. A typical
response looks like this:

HTTP
/
1.1200

OK

Content
-
Type
:

text
/
html

Header2
:...

...

HeaderN
:...

(
BlankLine
)

<!
doctype
...>

<html>

<head>
...</
head
>

<
body>

...

</
body
>

</
html
>

The status line consists of the HTTP version (HTTP/1.1 in the example), a status code (200 in the example), and a
very short message corresponding to the status code (OK in the example).

Following is a summary of the most useful H
TTP 1.1 response headers which go back to the browser from web
server side and you would use them very frequently in web programming:

Header

Description

Allow

This header specifies the request methods (GET, POST, etc.) that the server
supports.

Cache
-
Control

This header specifies the circumstances in which the response document can
safely be cached. It can have values

public, private

or
no
-
cache

etc. Public means
document is cacheable, Private means document is for a single user and can only
be st
ored in private (nonshared) caches and no
-
cache means document should
never be cached.

Connection

This header instructs the browser whether to use persistent in HTTP connections or
not. A value of

close

instructs the browser not to use persistent HTTP
connections
and

keep
-
alive

means using persistent connections.

CHAPTER

7

TUTORIALS POINT

Simply Easy Learning




Content
-
Disposition

This header lets you request that the browser ask the user to save the response to
disk in a file of the given name.

Content
-
Encoding

This header specifies the way in
which the page was encoded during transmission.

Content
-
Language

This header signifies the language in which the document is written. For example
en, en
-
us, ru, etc.

Content
-
Length

This header indicates the number of bytes in the response. This
information is
needed only if the browser is using a persistent (keep
-
alive) HTTP connection.

Content
-
Type

This header gives the MIME (Multipurpose Internet Mail Extension) type of the
response document.

Expires

This header specifies the time at which th
e content should be considered out
-
of
-
date and thus no longer be cached.

Last
-
Modified

This header indicates when the document was last changed. The client can then
cache the document and supply a date by an

If
-
Modified
-
Since

request header in
later reque
sts.

Location

This header should be included with all responses that have a status code in the
300s. This notifies the browser of the document address. The browser
automatically reconnects to this location and retrieves the new document.

Refresh

This
header specifies how soon the browser should ask for an updated page. You
can specify time in number of seconds after which a page would be refreshed.

Retry
-
After

This header can be used in conjunction with a 503 (Service Unavailable) response
to tell the

client how soon it can repeat its request.

Set
-
Cookie

This header specifies a cookie associated with the page.

Methods to Set HTTP Response Header:

There are
following methods

which can be used to set HTTP response header in your servlet program. These
methods are available with

HttpServletResponse

object.

S.N.

Method & Description

1

String encodeRedirectURL(String url)

Encodes the specified URL for use in the sendRedirect
method or, if encoding is not needed, returns the
URL unchanged.

2

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.

3

boolean containsHeader(String name)

Returns a boolean indicating whether the named response header has already been set.

4

boolean isCommitted()

Returns a boolean indicating if the response has been committed.

5

void addCookie(Cookie cookie)

Adds the specified cookie to the response.

6

vo
id addDateHeader(String name, long date)

Adds a response header with the given name and date
-
value.

7

void addHeader(String name, String value)

Adds a response header with the given name and value.

TUTORIALS POINT

Simply Easy Learning




8

void addIntHeader(String name, int value)

Adds a
response header with the given name and integer value.

9

void flushBuffer()

Forces any content in the buffer to be written to the client.

10

void reset()

Clears any data that exists in the buffer as well as the status code and headers.

11

void resetBuff
er()

Clears the content of the underlying buffer in the response without clearing headers or status code.

12

void sendError(int sc)

Sends an error response to the client using the specified status code and clearing the buffer.

13

void sendError(int sc,
String msg)

Sends an error response to the client using the specified status.

14

void sendRedirect(String location)

Sends a temporary redirect response to the client using the specified redirect location URL.

15

void setBufferSize(int size)

Sets the pref
erred buffer size for the body of the response.

16

void setCharacterEncoding(String charset)

Sets the character encoding (MIME charset) of the response being sent to the client, for example, to UTF
-
8.

17

void setContentLength(int len)

Sets the length of
the content body in the response In HTTP servlets, this method sets the HTTP
Content
-
Length header.

18

void setContentType(String type)

Sets the content type of the response being sent to the client, if the response has not been committed
yet.

19

void
setDateHeader(String name, long date)

Sets a response header with the given name and date
-
value.

20

void setHeader(String name, String value)

Sets a response header with the given name and value.

21

void setIntHeader(String name, int value)

Sets a respon
se header with the given name and integer value.

22

void setLocale(Locale loc)

Sets the locale of the response, if the response has not been committed yet.

23

void setStatus(int sc)

Sets the status code for this response.

HTTP Header Response Example:

You already have seen setContentType() method working in previous examples and following example would also
use same method, additionally we would use

setIntHeader()

method to set

Refresh
header.

// Import required java libraries

import

java
.
io
.*;

import

javax
.
servlet
.*;

import

javax
.
servlet
.
http
.*;

import

java
.
util
.*;


TUTORIALS POINT

Simply Easy Learning




// Extend HttpServlet class

publicclass
Refresh
extends
HttpServlet
{


// Method to handle GET method request.

publicvoid

doGet
(
HttpServletRequest

request
,

HttpServletResponse

response
)

throws
ServletException
,
IOException

{

// Set refresh, autoload time as 5 seconds


response
.
setIntHeader
(
"Refresh"
,
5
);


// Set response content type


response
.
setContentType
(
"text/html"
);


// Get current time

Calendar

calendar
=
new
GregorianCalendar
();

String

am_pm
;

int

hour
=

calendar
.
get
(
Calendar
.
HOUR
);

int

minute
=

calendar
.
get
(
Calendar
.
MINUTE
);

int

second
=

calendar
.
get
(
Calendar
.
SECOND
);

if
(
calendar
.
get
(
Calendar
.
AM_PM
)==
0
)


am_pm
=
"AM"
;

else


am_pm
=
"PM"
;


String

CT
=

hour
+
":"
+

minute
+
":"
+

second
+
" "
+

am_pm
;


PrintWriter
out
=

response
.
getWriter
();

String

title
=
"Auto Refresh Header Setting"
;

String

docType
=

"<!doctype html public
\
"
-
//w3c//dtd html 4.0 "
+

"transitional//en
\
">
\
n"
;

out
.
println
(
docType
+

"<html>
\
n"
+

"<head><title>"
+

title

+
"</title></head>
\
n"
+

"<body bgcolor=
\
"#f0f0f0
\
">
\
n"
+

"<h1 align=
\
"center
\
">"
+

title
+
"</h1>
\
n"
+

"<p>Current Time is: "
+

CT
+
"</p>
\
n"
);

}

// Method to handle POST method request.

publicvoid

doPost
(
HttpServletRequest

request
,

HttpServletResponse

response
)

throws
ServletException
,
IOException
{


doGet
(
request
,

response
);

}

}

Now calling the above servlet would display current system time after every 5 seconds as follows. Just run the
servlet and wait to see the result:

Auto Refresh Header Setting

Current
Time is: 9:44:50 PM