page和include指令

来源:互联网 发布:mac系统上好玩的游戏 编辑:程序博客网 时间:2024/06/05 03:39

Page指令和include指令

一.Page指令

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

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

1)、language="java":默认值是java语言;

2)、extends="package.class":指的是jsp要翻译成servlet,继承的父类是哪一个,一般不用写;

3)、import="{package.class|package.*},...":指的是jsp要翻译成servlet,需要导的包;其中jsp引擎自动导入的包有:java.lang.*;   javax.servlet.*;   javax.servlet.jsp.*;  javax.servlet.http.*;(手动导包:可以在一条page指令的import属性中引入多个类或包,其中的每个包或类之间使用逗号分隔)

4)、session="true|false":指的是jsp翻译成servlet后是否有session会话,默认为true

5)、buffer="none|8kb|sizekb":指的是缓冲,指的是out隐式对象的缓冲大小;默认为是8kb

6)、autoFlush="true|false":指的是自动刷新(缓冲区满了,自动刷新到客户端)

7)、isThreadSafe="true|false":指的是当值为true时,线程是安全的,jsp servlet的线程安全已经考虑了!当为false时,实现singleThreadModel接口;

8)、errorPage="url":指的是错误页面,当jsp运行时跳转到一个错误的页面。自己定义一个错误页面;

9)、isErrorPage="true|false":指的是当前页面是否是错误页面,默认值是false

10)、contentType="":设置文档的类型,字符的编码

11)、pageEncoding:字符编码,和10的区别:10是属于生成相应的调用servletResponse.setContentType方法的语句。而pageEncoding指定jsp源文件中的字符所使用的字符编码

12)、isElignored:ell表达式是否忽略;

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

             例如:<%@ page import="java.util.Date,java.sql.*,java.io.*"%>(等价于下面三条语句)

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

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

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

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

4errorPage属性的设置值必须使用相对路径,如果以“/”开头,表示相对于当前WEB应用程序的根目录(注意不是站点根目录),否则,表示相对于当前页面。

5、在web.xml件中使用<error-page>元素为整个WEB应用程序设置错误处理页面,

<exception-type>子元素指定异常类的完全限定名,

<location>元素指定以“/”开头的错误处理页面的路径。

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

6、使用page指令解决JSP中文乱码

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

输出响应正文时出现的中文乱码问题

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

2JSP引擎将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指令

1include指令用于引入其它JSP页面,使用include指令引入了其它JSP页面,那么JSP引擎将把这两个JSP翻译成一个servlet。所以include指令引入通常也称之为静态引入。

2、语法:

       <%@include file="relativeURL"%>

      其中的file属性用于指定被引入文件的路径。路径以“/”开头,表示代表当前web应用。

3、细节:

1)被引入的文件必须遵循JSP语法。

2)被引入的文件可以使用任意的扩展名,即使其扩展名是htmlJSP引擎也会按照处理jsp页面的方式处理它里面的内容,为了见明知意,JSP规范建议使用.jspfJSP fragments)作为静态引入文件的扩展名。

3)由于使用include指令将会涉及到2JSP页面,并会把2JSP翻译成一个servlet,所以这2JSP页面的指令不能冲突(除了pageEncoding和导包除外)。