JSP指令

来源:互联网 发布:晋明帝 司马懿 知乎 编辑:程序博客网 时间:2024/05/22 03:42

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

2.基本语法格式:
<%@ 指令 属性名=”值” %>

例如:

    <%@page import="dbutils.JdbcUtlis"%>

如果一个指令有多个属性,这多个属性可以写在一个指令中,也可以
分开写。分来写不举例了,举例一个写在一起的:

    <%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%>

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

JSP2.0规范中定义的Page语法:

[language=”java”] –野心家的体现

[extends=”package.class”] –不用管,默认值就好

[import=”package.class|package.*”] –导入包

a) JSP引擎默认导入:
java.lang.、javax.servlet.、javax.servlet.jsp.*、
javax.servlet.http.*

b) 可以在一条page指令的import属性中导入多个类或者包,逗号分隔,
也可以分开写(默认分开写,建议分开写)。

[session="true|false"]      如果session属性为true,JSP引擎在创建这个servlet翻译类的      时候会创建session对象,false则没有(默认true)。[buffer="none|8kb|sizekb"]  --页面缓冲[autoFlush="true | false"]  --缓冲满了自动刷新,这个东西不用管[isThreadSafe="true|false"] --JSP页面是否是线程安全的     为false即为线程安全的,JSP翻译类会去实现SingleThreadModel      默认true。注:这个属性在JSP2.4规范中已经过期,虽然转译类依然      实现此接口,但Tomcat中只创建单实例,意味着这是线程不安全的。[info="text"]   --不明所以[errorPage="错误页面URL"]   --指定JSP的错误处理页面    errorPage属性的设置值必须使用相对路径,如果以"/"开头,    表示相对于当前WEB应用程序的根目录。  可以在web.xml中使用<error-page>元素为整个WEB应用程序设置  错误处理页面,其中的<exception-type>子元素指定异常类的完全  限定名(错误类型),<location>元素指定以"/"开头的错误处理页面  的路径:
            <error-page>                <exception-type>                    java.lang.ArithmeticException                </exception-type>                <location>                    /JspDirective/error.jsp                </location>            </error-page>
 这种方式可以为web应用程序设置全局的异常处理页面,省时省力。    errorPage还有一种玩法,为状态码设置处理页面:
            <error-page>                <error-code>404</error-code>                <location>/JspDirective/404.jsp</location>            </error-page>
    意思很清楚了,如果发生404就跳转到404.jsp页面。[isErrorPage="true"]    --声明此页面是个异常处理页面            显式声明的好处是可以在JSP转译类中获取到Exception对象,            不声明是没有的。[contentType="mimeType [;charset=characterSet]" | "text/html" ; charset="UTF-8"]    用来告诉Tomcat这个页面的类型。MIME是描述消息内容类型的因特网标准。它能够包含文本、图像、音频、视频以及其他应用程序专用的数据。[pageEncoding="characterSet | ISO-8859-1"]            这个属性用来指定JSP转译类的编码(对应Servlet的编码)。[isELIgnored="true | false"]            告诉JSP引擎是否忽略EL表达式(默认false)。

4.include指令
include指令分为动态和静态,静态包含会把所有包含的JSP页面翻译成一个Servlet输出。

用法:

        <%@include file="head.jsp" %>            <p style="color: red;">这里是body!</p>        <%@include file="foot.jsp" %>

注意:类似于head、foot这种JSP页面只需要保留被引入的内容即可。
动态包含:

        <%            request.getRequestDispatcher("head.jsp").include(request, response);        %>        <p style="color: red;">这里是body!</p>        <%            request.getRequestDispatcher("foot.jsp").include(request, response);        %>

动态包含会把这个三个JSP翻译成三个servlet,在访问body时将其他JSP包含进来,运行时包含。

原创粉丝点击