JSP指令-page、include、taglib指令

来源:互联网 发布:阿里云数据库my 编辑:程序博客网 时间:2024/05/22 07:58
JSP指令 
     1、什么是JSP指令?

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

     2. JSP指令的基本语法格式:

        <%@ 指令 属性名="值" %>
        举例:<%@ page contentType="text/html;charset=gb2312"%>
        如果一个指令有多个属性,这多个属性可以写在一个指令中,也可以分开写。
        例如:
           <%@ page contentType="text/html;charset=gb2312"%>
           <%@ page import="java.util.Date"%>
        也可以写作:
        <%@ page contentType="text/html;charset=gb2312" import="java.util.Date"%>

一、page指令

    1.什么是page指令?

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

    2.JSP 2.0规范中定义的page指令的完整语法

    <%@ page 
    [ language="java" ] 
    [ extends="package.class" ] 
    [ import="{package.class | package.*}, ..." ] 

            可以在一条page指令的import属性中引入多个类或包,其中的每个包或类之间使用逗号分隔:
                 <%@ page import="java.util.Date,java.sql.*,java.io.*"%>
            上面的语句也可以改写为使用多条page指令的import属性来分别引入各个包或类:
                <%@ page import="java.util.Date"%>
                <%@ page import="java.sql.*"%>
                <%@ page import="java.io.*"%>
    [ session="true | false" ] 

             默认是true,如果设置为false则在service方法中不会实例化session对象,即session为null,设置为true后,则会在service调用 session = pageContext.getSession();

    [ buffer="none | 8kb | sizekb" ]
    [ autoFlush="true | false" ] 
    [ isThreadSafe="true | false" ] 
    [ info="text" ] 
    [ errorPage="relative_url" ] 

             errorPage属性的设置值必须使用相对路径,如果以“/”开头,表示相对于当前WEB应用程序的根目录(注意不是站点根目录),否则,表示相对于当前页面。
             可以在web.xml文件中使用<error-page>元素为整个WEB应用程序设置错误处理页面,其中的<exception-type>子元素指定异常类的完全限定名,<location>元素指定以“/”开头的错误处理页面的路径。
             如果设置了某个JSP页面的errorPage属性,那么在web.xml文件中设置的错误处理将不对该页面起作用。
    [ isErrorPage="true | false" ] 

            标记是否是错误页面,默认是false,如果设置为true,则会在service方法中实例化exception对象,即成为内置对象,则可以在页面中通过调用<%=exception.getMessage()%>打印错误的信息。
    [ contentType="mimeType [ ;charset=characterSet ]" | "text/html ; charset=ISO-8859-1" ] 

            JSP引擎会根据page指令的contentType属性生成相应的调用ServletResponse.setContentType方法的语句。
            page指令的contentType属性还具有说明JSP源文件的字符编码的作用。
    [ pageEncoding="characterSet | ISO-8859-1" ]
    [ isELIgnored="true | false

%>

  3.使用page指令解决JSP中文乱码

        (1) JSP程序存在有与Servlet程序完全相同的中文乱码问题

  •     输出响应正文时出现的中文乱码问题 
  •    读取浏览器传递的参数信息时出现的中文乱码问题

        (2)JSP引擎将JSP页面翻译成Servlet源文件时也可能导致中文乱码问题 

  • JSP引擎将JSP源文件翻译成的Servlet源文件默认采用UTF-8编码,而JSP开发人员可以采用各种字符集编码来编写JSP源文件,因此,JSP引擎将JSP源文件翻译成Servlet源文件时,需要进行字符编码转换。
  • 如果JSP文件中没有说明它采用的字符集编码,JSP引擎将把它当作默认的ISO8859-1字符集编码处理。

       (3)如何解决JSP引擎翻译JSP页面时的中文乱码问题 

  • 通过page指令的contentType属性说明JSP源文件的字符集编码
  • page指令的pageEncoding属性说明JSP源文件的字符集编码


二、include指令


三、taglib指令

0 0
原创粉丝点击