JSP三大指令
一个jsp页面中,有0~N个指令的定义!
JSP指令的格式:<%@指令名 attr1="" attr2=""%>,一般都会把JSP指令放到JSP文件的最上方,但这不是必须的。
JSP中有三大指令:page、include、taglib,最为常用,也最为复杂的就是page指令了。
page--->最复杂:<%@page language="java" info="xxx"...%>
*pageEncoding和contentType:
> pageEncoding:它指定当前页面的编码!!!在服务器要把jsp编译成.java时需要使用pageEncoding!
> contentType:它表示添加一个响应头:Content-Type!等同于response.setContentType("textt/html; charset=utf-8");
> 如果两个属性只设置一个,那么另一个的默认值与它相同。
> 如果两个属性都没有设置,那么为ios(不支持中文)!
*import:导包!可以出现多次。
*errorPage和isErrorPage
>errorPage:当前页面如果抛出异常,那么要转发到哪一个页面,由errorPage来指定!(如果指定的页面没有使用isErrorPage="true",那么响应的状态码是200)
> isErrorPage:它指定当前页面是否为处理错误的页面!当该属性为true时,这个页面会设置状态码为500!而且这个页面可以使用9大内置对象中的exception!(只有这种页面才能使用该内置对象)
*web.xml中配置错误页面
不只可以通过JSP的page指令来配置错误页面,还可以在web.xml文件中指定错误页面。这种方式其实与page指令无关,但是想来想去还是这个位置来讲解比较合适!
web.xml
<!-- 在web.xml文件中配置错误页面 --> <error-page> <error-code>404</error-code><!-- 状态码 --> <location>/error/errorPage.jsp</location><!-- 转发的地址 --> </error-page> <error-page> <error-code>500</error-code> <location>/error/errorPage.jsp</location> </error-page> <error-page> <exception-type>java.lang.RunTimeException</exception-type><!-- 页面抛出的异常 --> <location>/index.jsp</location> </error-page>
*autoFlush和buffer
> autoFlush:指定jsp的输出流缓冲区满时,是否自动刷新!默认为true,如果为false,那么在缓冲区满时抛出异常!
>buffer:指定缓冲区大小,默认为8kb,通常不需要修改!
*isELIgnored:是否忽略el表达式,默认值为false,不忽略,即支持!
*基本没用:
>language:指定当前jsp编译后的语言类型,默认值为java 。
>info:信息!
>isThreadSafe:当前的jsp是否支持并发访问!
>session:当前页面是否支持session,如果为false,那么当前页面就没有session这个内置对象!
>extends:让jsp生成的servlet去继承该属性指定的类!