指令标识
jsp是被服务器解释并执行的,不会产生任何内容输出到网页中。
也就是说指令标识对于客户端浏览器是不可见的。
语法格式入如下:
<%
指令名:用于指定指令名称,在jsp中包含page,include和taglib 3条指令。
注意:<%@ 和%>是完整的标记,不能添加空格,但是标签中定义的属性与指令名之间是有空格的。
page指令:
jsp页面最常用的指令,用于定义整个jsp页面的相关属性,这些属性在jsp被服务器解析成Servlet时会转换为相应的Java程序代码。
语法格式如下:
<%@ 指令名 属性1="属性值1" 属性2="属性值2".... %>
page指令提供了language,contentType,pageEncourage,import,autoFlush,buffer,
errorPage,extends,info,isErrorPage,isThreadSafe和session共13个属性。很多属性可以省略,
这时,page指令会使用默认值来设置jsp页面。
1. language属性:用于设置jsp页面使用的语言,目前只支持java语言。默认值是java。
2. extends属性:设置jsp页面继承的java类所有jsp页面在执行之前都会被服务器解析成Servlet,
而Servlet是由java定义的,所以jsp和Servlet都可以继承指定的父类。该属性不经常用。
3. import属性:该属性用于jsp导入的类包。java代码在调用API时需要导入相应的类包。
<%
4. pageEncoding属性:用于定义jsp页面的编码格式,也就是指定文件编码。
5. contentType属性:用于设置jsp页面的MIME类型和字符编码,浏览器会据此显示网页内容。
6. session属性:指定jsp页面是否使用HTTP的session会话对象。其属性值是Boolean类型。true和false。
默认值为true。如果设置为false,则当前jsp页面将无法使用session会话对象,
任何对session对象的引用都会发生错误。
7. buffer属性:用于设置jsp的out输出对象使用的缓冲区大小。默认大小是8KB。只能用kb。
8. autoFlush属性:指定缓冲区已满时,自动将缓冲区中的内容输出到客户端。当缓冲区已满时,将抛出“jsp Buffer overflow”异常。
9. isErrorPage属性:可以将当前jsp页面设置成错误处理页面来处理另一个jsp页面的错误,
也就是异常处理。这意味着当前jsp页面业务的改变。
10. isErrorPage属性:用于指定当前jsp页面异常错误的另一个jsp页面,指定的jsp错误处理页面必须设置isErrorPage属性为true。
errorPage属性的值是一个url字符串。
include指令:
通过该指令可以在一个jsp页面中包含另一个jsp页面。不过该指令是静态包含,
也就是说被包含文件中的所有内容会被原样包含到该jsp页面中,即使被包含文件中有jsp代码,
在包含时也不会被编译执行。使用include指令,被包含的和包含的文件最终将生成一个文件,
所以在被包含和包含的文件中不能有相同名称和变量。
include指令的语法格式如下:
<%
该指令只有一个file属性,用于指定要包含文件的路径。相对路径和绝对路径都可以。
但是不可以是通过<%=%>表达式所代表的文件。
说明:使用include指令包含文件可以大大提高代码的重用性。便于以后的维护和升级。
//top.jsp
<%
//copyright.jsp
<%
//index.jsp
<%
在jsp文件中,可以通过taglib指令标识声明页面中所使用的标签库,同时引用标签库,并指定标签的前缀。
在页面中,引用标签库后,就可以通过前缀来引用标签库中的标签。taglib指令的格式如下:
<%
prefix属性:用于指定标签的前缀。该前缀不能命名为jsp,jspx,java,javax,sun,servlet和sunw。
uri属性: