[ Team LiB ] Previous Section Next Section

16.1 Using page Directive Scripting Attributes

The page directive has two attributes that may be used when you use scripting elements: language and import:

<%@ page language="java" import="java.util.*" %>

The language attribute specifies the scripting language used in the page. All containers are required to support Java.[1] java is also the default value for the language attribute, but, for clarity, you may still want to specify it. Some JSP implementations support other languages besides Java and, hence, allow other values for the language attribute. For instance, both JRun (http://www.macromedia.com/) and Resin (http://www.caucho.com/) support JavaScript in addition to Java.

[1] In fact, Java is the only scripting language formally supported in the JSP specification, but the specification leaves room for other languages to be supported.

The JSP specification requires that the classes in the java.lang, javax.servlet, javax.servlet.jsp, and the javax.servlet.http packages are available by default to scripting elements when Java is used as the scripting language. If you use classes from packages other than these, they can be imported with the import attribute, to make it possible to use the short class names in the scripting elements.

If you need to import more than one package, you can use multiple page directives with import attributes in the same page or use one with a comma-separated list of import declarations. In other words, this directive:

<%@ page import="java.util.*, com.ora.jsp.util.*" %>

has the same effect as these two directives:

<%@ page import="java.util.* " %>
<%@ page import="com.ora.jsp.util.*" %>

Starting with JSP 2.0, classes without a package declaration (i.e., that are part of the unnamed package) are no longer supported. This is because the servlet the container creates from the JSP page (the page implementation class) may use a vendor-dependent package name. Java does not allow the use of classes from the unnamed package to be used in a class that belongs to a named package, and Sun's Java compiler (starting with the J2SE 1.4 version) enforces this rule.

    [ Team LiB ] Previous Section Next Section