jsp三大指令:
一个jsp页面中,可以有0~n个指令
指令格式:<%@指令名称 attr1="" attr2=""%>,一般会把jsp指令方最上方,但不是必须的
1.page-->最复杂 ,最常用
page指令没有必须属性,都是可选属性。
page指令格式:
<%@page langusge="java" info="XXX"%>
page属性:
* pageEncoding和contentType
1)pageEncoding:指定当前jsp页面的编码,只要和页面编码相同,就不会有乱码!在服务器要把jsp编译成.java时,需要使用pageEncoding
2)contentType:表示添加一个响应头,等同于response.setContentType("text/html;charset=utf-8")
*import:导包,可以出现多次
* errorPage和isErrorPage
1) errorPage:当前页面如果抛出异常,那么要转发到哪一个页面,由errorPage来指定
2) isErrorPage:它指定当前页面是否为处理错误的页面!当该属性为true时,这个页面会设置状态码为500!而且这个页面可以使用9大内置对象中的exception!
了解就行,错误页面可以在xml里配置
* autoFlush和buffer
1) autoFlush:指定jsp的输出流缓冲区满时,是否自动刷新!默认为true,如果为false,那么在缓冲区满时抛出异常!
2) buffer:指定缓冲区大小,默认为8kb,通常不需要修改!
* isELIgnored:是否忽略el表达式,默认值为false,不忽略,即支持!
* 基本没有:
1). language:指定当前jsp编译后的语言类型,默认值为java。
2). info:信息!
3). isThreadSafe:当前的jsp是否支持并发访问!
4). session:当前页面是否支持session,如果为false,那么当前页面就没有session这个内置对象!
5). extends:让jsp生成的servlet去继承该属性指定的类!
2.include---->静态包含
与RequestDispatcher的include()方法的功能相似!
* <%@include%> 它是在jsp编译成java文件时完成的!他们共同生成一个java(就是一个servlet)文件,然后再生成一个class!
* RequestDispatcher的include()是一个方法,包含和被包含的是两个servlet,即两个.class!他们只是把响应的内容在运行时合并了!
* 作用:把页面分解了,使用包含的方式组合在一起,这样一个页面中不变的部分,就是一个独立jsp,而我们只需要处理变化的页面。
3.taglib-->导入标签库
两个属性:
1 ) prefix:指定标签库在本页面中的前缀!由我们自己来起名称!
2 ) uri: 指定标签库的位置!
例如:<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> ,前缀的用法<c:if>,防止标签重复