Servlets – Server HTTP Response

Last updated on May 31 2022
Vivek Saxena

Table of Contents

Servlets – Server HTTP Response

When a Web server responds to an HTTP request, 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.1 200 OK

Content-Type: text/html

Header2: ...

...

HeaderN: ...

   (Blank Line)

<!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 HTTP 1.1 response headers which go back to the browser from web server side and you would use them very frequently in web programming −

Sr.No. Header & Description
1 Allow

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

2 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 stored in private (non-shared) caches and nocache means document should never be cached.

3 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 keepalive means using persistent connections.

4 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.

5 Content-Encoding

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

6 Content-Language

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

7 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.

8 Content-Type

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

9 Expires

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

10 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 requests.

11 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.

12 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.

13 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.

14 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.

Sr.No. 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 void 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.

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 resetBuffer()

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 preferred 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 response 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.*;




// Extend HttpServlet class

public class Refresh extends HttpServlet {




   // Method to handle GET method request.

   public void 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.

   public void 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

So, this brings us to the end of blog. This Tecklearn ‘Servlets – Server HTTP Response’ blog helps you with commonly asked questions if you are looking out for a job in Java Programming. If you wish to learn Servlets and build a career Java Programming domain, then check out our interactive, Java and JEE Training, that comes with 24*7 support to guide you throughout your learning period. Please find the link for course details:

https://www.tecklearn.com/course/java-and-jee-training/

Java and JEE Training

About the Course

Java and JEE Certification Training is designed by professionals as per the industrial requirements and demands. This training encompasses comprehensive knowledge on basic and advanced concepts of core Java & J2EE along with popular frameworks like Hibernate, Spring & SOA. In this course, you will gain expertise in concepts like Java Array, Java OOPs, Java Function, Java Loops, Java Collections, Java Thread, Java Servlet, and Web Services using industry use-cases and this will help you to become a certified Java expert.

Why Should you take Java and JEE Training?

  • Java developers are in great demand in the job market. With average pay going between $90,000/- to $120,000/- depending on your experience and the employers.
  • Used by more than 10 Million developers worldwide to develop applications for 15 Billion devices.
  • Java is one of the most popular programming languages in the software world. Rated #1 in TIOBE Popular programming languages index (15th Consecutive Year)

What you will Learn in this Course?

Introduction to Java

  • Java Fundamentals
  • Introduction to Java Basics
  • Features of Java
  • Various components of Java language
  • Benefits of Java over other programming languages
  • Key Benefits of Java

Installation and IDE’s for Java Programming Language

  • Installation of Java
  • Setting up of Eclipse IDE
  • Components of Java Program
  • Editors and IDEs used for Java Programming
  • Writing a Simple Java Program

Data Handling and Functions

  • Data types, Operations, Compilation process, Class files, Loops, Conditions
  • Using Loop Constructs
  • Arrays- Single Dimensional and Multi-Dimensional
  • Functions
  • Functions with Arguments

OOPS in Java: Concept of Object Orientation

  • Object Oriented Programming in Java
  • Implement classes and objects in Java
  • Create Class Constructors
  • Overload Constructors
  • Inheritance
  • Inherit Classes and create sub-classes
  • Implement abstract classes and methods
  • Use static keyword
  • Implement Interfaces and use it

Polymorphism, Packages and String Handling

  • Concept of Static and Run time Polymorphism
  • Function Overloading
  • String Handling –String Class
  • Java Packages

Exception Handling and Multi-Threading

  • Exception handling
  • Various Types of Exception Handling
  • Introduction to multi-threading in Java
  • Extending the thread class
  • Synchronizing the thread

File Handling in Java

  • Input Output Streams
  • io Package
  • File Handling in Java

Java Collections

  • Wrapper Classes and Inner Classes: Integer, Character, Boolean, Float etc
  • Applet Programs: How to write UI programs with Applet, Java.lang, Java.io, Java.util
  • Collections: ArrayList, Vector, HashSet, TreeSet, HashMap, HashTable

Java Database Connectivity (JDBC)

  • Introduction to SQL: Connect, Insert, Update, Delete, Select
  • Introduction to JDBC and Architecture of JDBC
  • Insert/Update/Delete/Select Operations using JDBC
  • Batch Processing Transaction
  • Management: Commit and Rollback

Java Enterprise Edition – Servlets

  • Introduction to J2EE
  • Client Server architecture
  • URL, Port Number, Request, Response
  • Need for servlets
  • Servlet fundamentals
  • Setting up a web project in Eclipse
  • Configuring and running the web app with servlets
  • GET and POST request in web application with demo
  • Servlet lifecycle
  • Servlets Continued
  • Session tracking and filter
  • Forward and include Servlet request dispatchers

Java Server Pages (JSP)

  • Fundamentals of Java Server Page
  • Writing a code using JSP
  • The architecture of JSP
  • JSP Continued
  • JSP elements: Scriptlets, expressions, declaration
  • JSP standard actions
  • JSP directives
  • Introduction to JavaBeans
  • ServletConfig and ServletContext
  • Servlet Chaining
  • Cookies Management
  • Session Management

Hibernate

  • Introduction to Hibernate
  • Introduction to ORM
  • ORM features
  • Hibernate as an ORM framework
  • Hibernate features
  • Setting up a project with Hibernate framework
  • Basic APIs needed to do CRUD operations with Hibernate
  • Hibernate Architecture

POJO (Plain Old Java Object)

  • POJO (Plain Old Java Object)
  • Persistent Objects
  • Lifecycle of Persistent Object

Spring

  • Introduction to Spring
  • Spring Fundamentals
  • Advanced Spring

Got a question for us? Please mention it in the comments section and we will get back to you.

 

 

0 responses on "Servlets - Server HTTP Response"

Leave a Message

Your email address will not be published. Required fields are marked *