JSP学习笔记——指令

来源:互联网 发布:php三段式判断语句 编辑:程序博客网 时间:2024/06/07 00:41

JSP指令格式为<%@ directive attribute="value" %>

directive表示指令标签,有三种为page,include,taglib

page用于设置页面相关的属性,例如脚本语言,页面错误,和缓冲的要求。include则是向当前页面插入一个静态文件的内容,文件可以是JSP、HTML、文本或是Java程序。taglib则是声明一个标签库,含自定义操作,在页面中使用。

page包含多种指令,具体表现为指令格式中的attribute,表示不同属性,分为以下几种

1. buffer,指定输出流的缓冲模型,缓冲区的作用就是为了提高IO性能,也就是说减少write的次数。可以编写“none”值来指定没有缓冲或者您可以编写一个最大缓冲区大小以kb为单位写入到响应之前,它指示的servlet写入缓冲区对象。这与另外一个属性autoFlush可以联系在一起。

2.autoFlush属性用来指定当输出流缓冲区满了的时候,是否自动刷新缓冲区,true的话,自动把缓冲区的内容输出到底层输出流,false的话,缓冲区满的话,会抛出IO异常。通常可以写成<%@ page buffer="16kb" autoflush="true" %>。

3.contentType属性指定JSP页面的MIME和编码格式,比如<%@ page contentType="text/html" %>指定生成HTML页面,<%@ page contentType="application/msword" %>设置内容类型为word类型,<%@ page contentType="text/html:charset=ISO-8859-1" %>则是字符编码方式。

4.errorPage 属性定义一个报告异常的jsp页面,当前页面发生异常,并且没有对异常进行捕获的时候,跳转到error.jsp页面,不指定errorPage的话,画面上直接显示异常的相关信息。格式为<%@ page errorPage="MyErrorPage.jsp" %>

5.isErrorPage 属性用于表示当前jsp页面是否为errorPage,与上面相对应,isErrorPage的值为true或false。在isErrorPage属性的默认值是false。

6.extends属性用于指定该JSP生成的servlet继承自哪个父类,必须指定包名加类名。格式<%@ page extends="somePackage.SomeClass" %>。

7.import 属性导入指定的包,和java的import功能类似。格式<%@ page import="java.sql.*,java.util.*"  %>默认情况下,容器会自动导入 java.lang.*, javax.servlet.*, javax.servlet.jsp.*, and javax.servlet.http.*.

8.info属性定义一个String可被servlet的getServletInfo() 调用。格式为<%@ page info="This JSP Page Written By ZARA"  %>

9.session属性指定JSP页面中是否可以使用HTTP会话,缺省是true,如果指定为false,那么在该页面中无法使用session,使用则会报错。格式为<%@ page session="true" %>

10.language 指定页面中使用的脚本语言种类,格式为<%@ page language="java" %>

11.isELIgnored属性指定是否禁用表达式语言(EL),设置为true,例如<%@ page isELIgnored="true"%>  不支持EL表达式,EL表达式会被当做普通的html文本,反之则是支持

12.isScriptingEnabled 属性则是决定是否允许使用脚本元素,例如<%@ page isScriptingEnabled="false" %>

include通常可以写成<%@ include file="relative url" >包含指定的文件内容到当前页面中,需要区分jsp动作中的方法 <jsp:include page="sample.jsp" flush="true">。两者不一样。前者理解为静态包含,后者理解为动态包含

1、静态include的结果是把其他jsp引入当前jsp,两者合为一体。 
2、静态include纯粹是把代码写在外面的一种共享方法,所有的变量都是可以和include它的主文件共享,两者高度紧密结合,不能有变量同名的冲突.而页面设置也可以借用主文件的. 

1、动态include的结构是两者独立,直到输出时才合并( 看看jsp生成的java文件就可以知道了)。 
2、动态include的jsp文件独立性很强,是一个单独的jsp文件,需要使用的对象,页面设置,都必须有自己创建,当然,还好它和include它的页面的request范围是一致的。

include指令可以在JSP页面转换成Servlet之前,将JSP代码插入其中。它的主要优点是功能强大,所包含的代码可以含有总体上影响主页面的JSP构造,比如属性、方法的定义和文档类型的设定。它的缺点是难于维护只要被包含的页面发生更改,就得更改主页面,这是因为主页面不会自动地查看被包含的页面是否发生更改。include动作则是在主页面被请求时,将次级页面的输出包含进来。它的优点是在被包含的页面发生更改时,无须对主页 面做出修改。它的缺点是所包含的是次级页面的输出,而非次级页面的实际代码,所以在被包含的页面中不能使用任何有可能在整体上影响主页面的JSP构造。一般使用include动作,这样易于维护。


0 0
原创粉丝点击