The jsp directives are messages that tells the web container how to translate a JSP page into the corresponding servlet.

There are three types of directives:

  • page directive
  • include directive
  • taglib directive

Syntax of JSP Directive

<%@ directive attribute="value" %>  

JSP page directive

The page directive defines attributes that apply to an entire JSP page.

Syntax of JSP page directive

<%@ page attribute="value" %>

Attributes of JSP page directive

  • import
  • contentType
  • extends
  • info
  • buffer
  • language
  • isELIgnored
  • isThreadSafe
  • autoFlush
  • session
  • pageEncoding
  • errorPage
  • isErrorPage


The import attribute is used to import class,interface or all the members of a package.It is similar to import keyword in java class or interface.

Example of import attribute

<%@ page import="java.util.Date" %>  
Today is: <%= new Date() %>  


The contentType attribute defines the MIME(Multipurpose Internet Mail Extension) type of the HTTP response.The default value is “text/html;charset=ISO-8859-1”.

Example of contentType attribute

<%@ page contentType=application/msword %>  
Today is: <%= new java.util.Date() %>  


The extends attribute defines the parent class that will be inherited by the generated servlet.It is rarely used.


This attribute simply sets the information of the JSP page which is retrieved later by using getServletInfo() method of Servlet interface.

Example of info attribute

<%@ page info="composed by Sonoo Jaiswal" %>  
Today is: <%= new java.util.Date() %>  

The web container will create a method getServletInfo() in the resulting servlet.For example:

public String getServletInfo() {  
  return "composed by Sonoo Jaiswal";   


The buffer attribute sets the buffer size in kilobytes to handle output generated by the JSP page.The default size of the buffer is 8Kb.

Example of buffer attribute

<%@ page buffer="16kb" %>  
Today is: <%= new java.util.Date() %>  


The language attribute specifies the scripting language used in the JSP page. The default value is “java”.


We can ignore the Expression Language (EL) in jsp by the isELIgnored attribute. By default its value is false i.e. Expression Language is enabled by default. We see Expression Language later.
<%@ page isELIgnored="true" %>//Now EL will be ignored  


Servlet and JSP both are multithreaded.If you want to control this behaviour of JSP page, you can use isThreadSafe attribute of page directive.The value of isThreadSafe value is true.If you make it false, the web container will serialize the multiple requests, i.e. it will wait until the JSP finishes responding to a request before passing another request to it.If you make the value of isThreadSafe attribute like:

<%@ page isThreadSafe=”false” %>

The web container in such a case, will generate the servlet as:

public class SimplePage_jsp extends HttpJspBase   
  implements SingleThreadModel{  


The errorPage attribute is used to define the error page, if exception occurs in the current page, it will be redirected to the error page.

Example of errorPage attribute

<%@ page errorPage="myerrorpage.jsp" %>  
 <%= 100/0 %>  


The isErrorPage attribute is used to declare that the current page is the error page.

Note: The exception object can only be used in the error page.

Example of isErrorPage attribute

<%@ page isErrorPage="true" %>  
 Sorry an exception occured!
The exception is: <%= exception %>