JSP Directives control the processing of an entire page. Directive examples include setting a scripting language, setting an error page, including other sections, and setting a character encoding.
<%@ page language="lang" %>
<%@ page import="package" %>
Adds to the Java package import list for the generated Java file.
Note: Only relevant when using Java.
<%@ page errorPage="path" %>
Defines a page to display if an error occurs in the JSP page.
Robust applications can return informative error pages when something goes wrong in a file, for example if a database is overloaded. exception containing the thrown exception.is returned as the response file. The error page can use the additional implicit variable
is relative to the current page. Its root is relative to the application root.
The error page itself can be a JSP page. If the error page is a JSP page, it can use the implicit variable exception to get information about the thrown exception.
<%@ page isErrorPage="true" %>
Gives an error page access to the exception implicit variable. Default to false.
<%@ include file="path" %>
Includes the raw fileat translation time.
The include directive is a replacement for an SSI include (or the C '#include'). It includes the contents of the file atinto the JSP file. The included file is parsed as JSP, so it can have active elements like expressions, declarations and scriptlets.
is relative to the current page, and its root is the application root.
<%@ page buffer=sizekb %>
Gives theof the page buffer in kb or for no buffer. Default 8kb. If buffer is , all output is immediately flushed.
JSP 1.0 gives page writers flexibility by buffering its output before sending the response to HTTP. The buffering allows error recovery and forwarding, even after generating some content. Once the buffer has filled, it will be flushed. So applications must still detect their errors early.
The following example generates an XML section (for variety). If the form's query is missing the 'name' parameter, it will redirect the results.
<%@ page autoFlush="true" %>
Tells JSP to flush the page buffer when it fills. Default is true.
If autoFlush is false, the JSP engine will throw an exception if the buffer overflows.
<%@ page session="true" %>
Tells JSP that the page participates in a session. Defaults to true.
The session declaration makes the session implicit variable available to a JSP page.
If the page doesn't use sessions, it should set session to false.
<%@ page isThreadSafe="true" %>
Tells the JSP that multiple pages can execute in parallel. Defaults to true.
JSP pages are always responsible for synchronization of shared variables, such as the session and application variables. In some rare cases, a page may use servlet variables (created with a declaration), and be too lazy to handle the synchronization.
Even with isThreadSafe=false, the JSP engine may create multiple instances of the JSP servlet. So the page author can never absolve herself of synchronization issues.
In the following example, a JSP engine might create 3 servlet instances of the page. So three calls to the same page may return counts of 17, 3 and 398. In addition, the JSP engine is free to destroy and recreate the servlet at any time, essentially resetting the counter to 0.
<%@ page info="description" %>
Gives a brief description for the page.
<%@ page contentType="description" %>
Sets the content type and character encoding of the page.
contentType can also set the character encoding, for example to utf-8.
<%@ page extends="Java class" %>
Changes the generated servlet's class.
In general, a filter is a better solution than using the extends directive.
<%@ taglib prefix="x" uri="foo" %>
Configures tags with prefixto use the tag library .