• JSP——指令(Directive)


    指令是一种JSP句法元素,它告诉JSP转换器应该如何将某个JSP页面转换成Servlet。

    JSP 2.2中定义了几个指令:page、include、taglib、tag、attribute以及variable。其中最重要的是:page和include。

    1.The page Directive

    1.1.语法

    <%@ page attribute1="value1" attribute2="value2" ... %>

    @和page之间的空格是可选的,attribute1、attribute2等都是page指令的属性。

    page指令可以出现在页面中的任何位置。只是当它包含contentType或者pageEncoding属性时,它必须放置在所有的模板数据之前, 并且是在利用Java代码发送任何内容之前。因为必须在发送任何内容之前设置内容类型和字符编码。

    page指令可以多次出现。但是在多个page指令中多次出现的同一个属性,它的值必须一致,只有import属性除外。

    1.2.属性

    import
    指定要导入的一种或多种Java类型,供本页的Java代码所用。

    导入List接口:

    <%@ page import="java.util.List" %>

    利用通配符*可以导入整个包:

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

    导入多重类型时,两种类型之间要用逗号隔开:

    <%@ page import="java.util.ArrayList, java.util.Calendar, java.io.PrintWriter" %>

    默认导入的包:

    javax.servlet.*;
    javax.servlet.http.*;
    javax.servlet.jsp.*;

    contentType
    指定该页面隐式对象response的内容类型,其默认值为text/html。

    pageEncoding
    指定该页面的字符编码,其默认值为ISO-8859-1。

    1.3.不常用属性
    session
    值为true时,表示这个页面参与Session管理;

    值为false时,表示不参与Session管理。

    默认值为true,意味着如果之前还没有javax.servlet.http.HttpSession实例,那么调用这个JSP页面时会创建一个。


    buffer
    指定隐式对象out的缓冲区大小,以千字节为单位。强制以kb为后缀。

    缓冲区的默认容量大于或等于8kb,具体取决于JSP容器。

    这个属性还可以设置为none,表示不适用缓存,但这样会导致输出的内容直接被写入相应的PrintWriter。

    autoFlush

    默认值为true,表示当缓冲区满时,被缓存的输出应当自动刷新。

    值为false时,表示只有在调用隐式对象response的flush方法时,才进行刷新缓冲区。因此,当缓冲区益处时,就会抛出一个异常。


    isThreadSafe
    表示页面中实现的线程安全级别。建议JSP的作者不要使用这个属性,因为它会产生一个包含不建议使用的代码的Servlet。


    info
    指定所生成的Servlet的getServletInfo方法的返回值。


    errorPage
    表示负责处理该页面可能会出现的错误的页面。


    isErrorPage
    表名这个页面是否负责处理错误。


    isElIgnored
    表名是否忽略EL表达式。


    language
    指定这个JSP页面使用的脚本语言,其默认值为java,这个值是JSP 2.2中唯一有效的值。


    extends
    指定这个JSP页面的实现类必须扩展的超类。该属性很少使用。


    deferredSyntaxAllowedAsLiteral
    指明是否允许使用字符序列“#{”作为该页面和编译单元的String字面值。

    默认值为false。

    与EL表达式有关。


    trimDirectiveWhitespaces
    表名是否从输出内容中删除只包含空格的模板文本。

    默认值为false。

    2.The include Directive

    利用include指令可以将另一个文件的内容放到当前的JSP页面中。在一个JSP页面中可以使用多个include指令。

    如果某部分特殊的内容需要被其他页面所用,或者被处于不同位置的某个页面所用,那么将这部分内容做成一个include文件是很有帮助的。

    2.1.语法

    <%@ include file="url" %>

    此处@和include之间的空格是可选的,并且url是表示一个include文件的相对路径。

    如果url以一个正斜线(/)开头,那么其在服务器中就会被解读成是一条绝对路径。

    如果不是以正斜线开头,则会被解读为相对于当前JSP页面的路径。

    include指令和include动作的区别
    使用include指令时,这种包含是发生在页面转换的时候,例如JSP容器将页面转换成一个Servlet的时候。

    使用include动作时,这种包含则是发生在请求的时候。因此,可以利用include动作传递参数。

    使用include指令时,被包含资源的文件扩展名并不重要。

    使用include动作时,文件扩展名必须为jsp,以便它能够将其作为一个JSP页面进行处理。

    3.The taglib Directive
    可以通过使用这个指令来为JSP页面扩展标签库

    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
  • 相关阅读:
    UVa-10317
    UVa-1595
    UVa-10391
    UVa-10763
    UVa-10935
    UVa-1594
    UVa-1593
    从CSDN搬过来了
    memset会显著增加时间和空间的消耗吗
    memset对数组的初始化
  • 原文地址:https://www.cnblogs.com/weilu2/p/jsp_directive.html
Copyright © 2020-2023  润新知