JSP头部的page指令可以配置JSP的很多内容,一般来说
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
至少有contentType,charset,language三种,其实还有
pageEncoding,配置JSP的字符编码pageEncoding="UTF-8"
可以代替charset="UTF-8"
session,它的值只能是true
或false
,默认为真,我们可以在JSP页面中使用隐式的session变量
isELIgnored,表示JSP编译器是否解析或转换JSP中的语言表达式(EL),默认为真,JSP2.0之后,默认为假
buffer和autoFlush,默认值分别是8kb
(还可以写none)和true
,它们决定了JSP的输出方式:缓存在发送还是立即发送到浏览器…buffer指定了JSP缓存大小;autoFlush为真时,缓存越小,数据被刷新到客户端的频率就越高,反之缓存越大,数据刷新到客户端的频率越低。如果设置buffer为none
,则关闭缓存,提高JSP性能,但是会增加带宽消耗…
errorPage,如果出现错误,该特性会告诉容易应当转发到哪个JSP
isErrorPage,该页面是否被用作错误页,默认假,如果为真,则可以使用隐式的exception变量
isThreadSafe,默认真,表示当前JSP线程安全(永远不要修改它)
extends,指定当前JSP Servlet的父类,使用了该特性的JSP将无法从一个Web容器中迁移到另一个,不要使用它
如果在每个JSP页面上都配置重复的page指令很麻烦,因此可以在部署描述符中直接配置通用的JSP属性
例子:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
<display-name>Customer Support Application</display-name>
<jsp-config>
<jsp-property-group>
<url-pattern>*.jsp</url-pattern>
<url-pattern>*.jspf</url-pattern>
<page-encoding>UTF-8</page-encoding>
<scripting-invalid>false</scripting-invalid>
<include-prelude>/WEB-INF/jsp/base.jspf</include-prelude>
<trim-directive-whitespaces>true</trim-directive-whitespaces>
<default-content-type>text/html</default-content-type>
</jsp-property-group>
</jsp-config>
</web-app>
解析:
<jsp-config>
标签可以包含任意数目个<jsp-property-group>
,这些属性组用于区分不同JSP属性组的属性(通过<url-pattern>
来区分),例如/WEB-INF/jsp/A
文件夹下JSP一组,而/WEB-INF/jsp/B
一组。
<include-prelude>
标签,告知所有属于该属性组的JSP,头部添加文件/WEB-INF/jsp/base.jspf
<page-encoding>
标签,修改编码格式
<trim-directive-whitespaces>
标签,告知JSP转换器删除响应中的空白,可以帮助我们编写出干净的代码
<scripting-invalid>
标签,可以在JSP中禁止使用Java