日期:2014-05-16  浏览次数:20361 次

心得3--JSP指令

 一个服务器上可以配好多站点,一个站点下可以配好多web应用。

1. JSP指令

JSP指令(directive)是为JSP引擎而设计的,它们并不直接产生任何可见输出,而只是告诉引擎如何处理JSP页面中的其余部分。在JSP 2.0规范中共定义了三个指令:page指令、Include指令、taglib指令。

l    JSP指令的基本语法格式:<%@ 指令 属性名="值" %>

   举例:<%@ pagecontentType="text/html;charset=gb2312"%>

l    如果一个指令有多个属性,这多个属性可以写在一个指令中,也可以分开写。例如:

      <%@ pagecontentType="text/html;charset=gb2312"%>

      <%@ pageimport="java.util.Date"%>

   也可以写作:

   <%@ pagecontentType="text/html;charset=gb2312"import="java.util.Date"%>

2. Page指令

l    page指令用于定义JSP页面的各种属性无论page指令出现在JSP页面中的什么地方,它作用的都是整个JSP页面为了保持程序的可读性和遵循良好的编程习惯,page指令最好是放在整个JSP页面的起始位置。

l    JSP 2.0规范中定义的page指令的完整语法:

    下面语法中加粗的都是常用的,不加粗的是不常用的或服务器默认的、自动设置的。

<%@page

   [ language="java" ]

   [ extends="package.class"]

   [ import="{package.class| package.*}, ..." ]

   JSP 引擎自动导入下面的包

ü    java.lang.*

ü    javax.servlet.*

ü    javax.servlet.jsp.*

ü    javax.servlet.http.*

l    可以在一条page指令的import属性中引入多个类或包,其中的每个包或类之间使用逗号分隔:

      <%@ pageimport="java.util.Date,java.sql.*,java.io.*"%>

l    上面的语句也可以改写为使用多条page指令的import属性来分别引入各个包或类

      <%@ pageimport="java.util.Date"%>

      <%@ pageimport="java.sql.*"%>

      <%@ pageimport="java.io.*"%>

   [ session="true | false" ]

   [ buffer="none | 8kb | sizekb"]

   [ autoFlush="true | false" ]

   [ isThreadSafe="true |false" ]

   [ info="text" ]

   [ errorPage="relative_url"]

l    errorPage属性的设置值建议使用相对路径(不写“/”或者写“./”);也可以使用绝对路径,但是这里用的绝对路径有些特殊,即以“/”开头,表示相对于当前WEB应用程序的根目录(注意不是站点根目录),否则,表示相对于当前页面。

l    也可以在web.xml文件中使用<error-page>元素为整个WEB应用程序设置错误处理页面,其中的<exception-type>子元素指定异常类的完全限定名,<location>元素指定以“/”开头的错误处理页面的路径。

l    如果设置了某个JSP页面的errorPage属性,那么在web.xml文件中设置的错误处理将不对该页面起作用。

l    JSP引擎会根据page指令的contentType属性生成相应的调用ServletResponse.setContentType方法的语句。

l    page指令的contentType属性还具有说明JSP源文件的字符编码的作用。

   [ isErrorPage="true | fals