基本格式 <%@Directive %>
这个Directive有3种类型:
还有就是用来导入需要用到的java包,因为jsp中有java代码,需要提前导入需要的类文件。
<%@ page import="java.util.*" %>
还有可以用来设置统一的errorPage,先在可能出错的page里面加上<%@page errorPage="xxx.jsp" %>,xxx.jsp代表专门的errorPage。那么在专门的errorPage里面加上<%@page isErrorPage="true" %>,然后可以直接调用exception.getMessage()方法,这样就可以打印出错误信息。
2.include
静态包含
这个Directive有3种类型:
1.page
page主要用来设定一些参数,比如contentType,language等等,可以防止乱码。基本上来说都是不许要设置的,以下的几个是比较常用的。
还有就是用来导入需要用到的java包,因为jsp中有java代码,需要提前导入需要的类文件。
<%@ page import="java.util.*" %>
还有可以用来设置统一的errorPage,先在可能出错的page里面加上<%@page errorPage="xxx.jsp" %>,xxx.jsp代表专门的errorPage。那么在专门的errorPage里面加上<%@page isErrorPage="true" %>,然后可以直接调用exception.getMessage()方法,这样就可以打印出错误信息。
所以总的来说,page是不太需要进行很多的设置的。无非就是设置一个error页面,然后在需要引入包的时候写一个import就行。其它的以后遇到的时候再去细看。
2.include
静态包含
<%@include file="fileURL" %> fileURL比如说是同路径下的另一个jsp的文件名。有什么用途呢,假如你所有的jsp都想用到一个jsp里面的一段代码,那么就可以这样做。
那么在进行jsp向servlet转换之前,首先是将inclue file里面的内容执行,然后再进行转换,最终只会转换成为一个单一的servlet。但是有一个特点就是,你不能往被包含的页面传递参数。为什么呢? 因为被包含的页面是在编译期间就被执行了,那么编译期参数还没有传进来,浏览器中传递的参数是在执行期传递的,这样就会出错。要传的话只能是在包含页面中传递,取得值以后才能用于被包含的页面,因为二者使用同一个servlet。
二者也不能定义同一个类型的参数,比如contentType不能定义2次,通常是在包含页面里面写,因为被包含的页面最终也要转换到包含页面中来。
但是html标签无所谓,因为浏览器自己知道。3.taglib 等到框架的时候