JSP指令--Page指令

时间:2022-09-06 13:37:47

page指令

         page指令称为页面指令,用来定义JSP页面的全局属性,该配置会作用域整个页面。

page指令的属性可以定义MIME类型、定义需要导入的包、错误页的指定等。

         page指令的语法格式如下:

         <%@page 属性1=“属性值1”  属性2=“属性值2”%>

1.page指令的13个属性

如下:

指令属性

描述

language

声明所使用的脚本语言,目前只有Java一种,所以可以不声明。

extends

指定JSP页面产生的Servlet继承的父类

import

指定所导入的包。(java.lang.*、javax.servlet.*、javax.servlet.jsp.*、和java.servlet.http.*几个包在程序编译时已经被导入,所以不需要特备声明)

session

指定JSP页面是否可以使用Session对象(默认值为session=”true”)。

buffer

指定缓冲区的大小,默认是8KB。如果为none,则表示不设置缓冲区。(此属性要和autoFlush一起使用)

autoFlush

指定输出缓冲区即将溢出时,是否强制输出缓冲区的内容。可以设置为true或false(默认为true)。

isThreadSafe

指定JSP是否支持多线程。可以设置为true或false,若为true,则表示该页面可以处理多个用户的请求;如果为false,则此JSP一次只能处理一个页面的用户请求。

info

设置JSP页面的相关信息。可以使用servlet.getServletInfo()方法获取到JSP页面中的文本信息。

ErrorPage

指定错误处理页面。当JSP出错时,会自动调用该指定所指定的错误处理页面。(此属性要和isErrorPage一起使用)

isErrorPage

指定JSP文件是否进行异常处理。可以设置为true或false,如果设置为true,则errorPage指定的页面出错时才能跳转到此页面进行错误处理。

contentType

指定JSP页面的编码方式和JSP页面响应的MIME类型(默认的MIME类型为text/html,默认的字符集类型为charset=ISO-8859-1)。例如:contentType=“text/html;charset=GBK”

pageEncoding

指定页面的编码方式。默认值为pageEncoding=“iso-8859-1”,若设为中文编码可以是pageEncoding=“GBK”。

isELIgnored

指定JSP文件是否支持EL表达式。

注释:对于以上属性,只有import属性可以多次出现,其他属性均只能出现一次。

下面介绍一下比较常用的contentType、pageEncoding、errorPage/isErrorPage和import这4个指令。

2.contentType属性

         在page指令中,contentType属性可以指定JSP页面的编码方式和JSP页面响应的MIME类型,默认的MIME类型为text/html,默认的字符集类型为charset=ISO-8859-1。

注释:关于MIME,可以参考博文:什么是MIME?

例1:为JSP页面指定编码

代码如下:

<%@ page language="java"  contentType="text/html;charset=GBK"%>

<html>

<head>

<title>test MIME</title>

</head>

<body>

<center><h2>哈哈,这里是contentType属性的设置测试</h2></center>

</body>

</html>

注释:使用Tomcat服务器的,我们可以在Tomcat的安装目录/conf/web.xml中查询到所有已知的MIME类型,例如:

<mime-mapping>

        <extension>mp3</extension>

       <mime-type>audio/mpeg</mime-type>

</mime-mapping>

<mime-mapping>

        <extension>mp4</extension>

       <mime-type>video/mp4</mime-type>

</mime-mapping>

<mime-mapping>

        <extension>doc</extension>

       <mime-type>application/msword</mime-type>

</mime-mapping>

例2:使用word进行页面显示

代码如下:

<%@ page language="java"  contentType="application/msword;charset=GBK"%>

<html>

<head>

<title>test MIME</title>

</head>

<body>

<center><h2>使用word进行页面显示</h2></center>

</body>

</html>

结果如下:

JSP指令--Page指令

注释:通过response对象的setHeader方法可以设置下载文件的名称,例如:

<%@ page language="java"   contentType="application/msword;charset=GBK"%>

<html>

<head>

<title>test MIME</title>

</head>

<body>

<center><h2>设置下载文件的名称</h2></center>

<% response.setHeader("Content-Disposition","attachment;filename=test.doc");%>

</body>

</html>

 结果如下:

JSP指令--Page指令

以上实例演示了将页面显示为Word文档,在实际开发中,还可以将文件显示为图片等格式,例如:在验证的开发中,将页面显示为图片。

3.pageEncoding属性

         在contentType属性中,可以使用charset进行页面编码的指定,当然,在page指令的pageEncoding属性也可进行编码的指定。

         注释:pageEncoding指的是JSP文件本身的编码,而contentType中charset指的是服务器向客户端发送为客户端的内容编码(优先起决定作用的是pageEncoding)。

例:指定JSP文件编码

代码如下:

<%@ page language="java"   contentType="text/html"pageEncoding="GBK"%>

<html>

<head>

<title>test pageEncoding</title>

</head>

<body>

<center><h2>pageEncoding属性测试</h2></center>

</body>

</html>

4. errorPage/isErrorPage属性

         在每个网站中都少不了设置错误页面,用于在网站发生错误时向用户显示一些网站管理员想让用户看到的信息,在JSP中,我们可以通过errorPage和isErrorPage属性来指定错误页。

         要完成错误页的操作,我们需要满足两个条件:

Ø  使用errorPage属性指定错误出现时要跳转的页面。

Ø  使用isErrorPage属性指明该页面是错误页。

注释:错误页的跳转属于服务器跳转(页面内容改变,地址栏的地址没有改变。

例:错误页的设置

         1.会出现错误的页面,代码如下

<%@ page language="java"   contentType="text/html"pageEncoding="GBK"%>

<%@ page errorPage="error.jsp"%>

<html>

<head>

<title>test errorPage</title>

</head>

<body>

<center><h2>errorPage属性测试</h2></center>

</body>

</html>

         2.错误处理页error.jsp

<%@ page language="java"     contentType="text/html"pageEncoding="GBK"%>

<%@ page isErrorPage="true"%><%--表示该页面是错误页 --%>

<html>

<head>

<title>test isErrorPage</title>

</head>

<body>

<center><h2>isErrorPage属性测试</h2></center>

</body>

</html>

4. import属性

import属性用于导入java中的包,import属性可以指定多个值,这些值之间需要用逗号(,)进行分隔。
示例1:
<%@ page import="java.util.*","java.io.*","java.awt.*" %>
示例2:
<%@ page import="java.util.*"%>
<%@ page import="java.io.*","java.awt.*" %> 
page指令对这个页面都有效,而与其的书写位置无关,但习惯把page指令放在JSP页面的最前面。