JavaWeb之JSP基本语法(二)

这部分是关于JSP指令元素的内容。

指令元素是用于在JSP转换为Servlet时,提供整个JSP页面的相关信息,指令不会产生任何输出。指令通常以"<%@"标签开始,以"%>"标签结束,语法格式如下:

<%@ 指令名 属性1="值1" 属性2="值2"……%>

一、 page指令

page指令即页面指令,用来定义整个JSP页面的属性和相关功能。其中最常用的属性有import和pageEncoding等属性,这两个属性也是在新建JSP页面时默认有的,他们的值可以设置多次,但其他的属性只能指定一个值,否则会导致转换错误。

例如:

<%@ page language="java" contentType="text/html; charset=UTF-8"

pageEncoding="UTF-8"%>

<%@ page import="java.util.*" %>

下面是page指令主要属性的用法

1. language属性:用于指定脚本元素中使用的脚本语言,默认值为Java。

2. contentType属性:用于指定JSP页面输出内容的类型和字符编码方式。

Page指令contentType属性的使用示例

<%@ page language="java" contentType="application/msword; charset=UTF-8"

pageEncoding="UTF-8"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>Insert title here</title>

</head>

<body>

这部分信息将在word文档中打开看到!

</body>

</html>

运行后的结果为:

3. pageEnconding属性:用来指定JSP页面的字符编码,如果没有设置,则当前页面采用contentType设置的编码方式。如果当前页面包含了中文,最好把值设置为UTF-8或者GBK,否则中文将乱码。

4. info属性:用于指定页面描述信息,值可以为任意字符串,如作者版本等信息。

5. import属性:用来为JSP页面导入在脚本元素要用到的Java类。

6. session属性:用来指定当前页面的内置对象session是否可用,默认值为true。

7. errorPage属性:用来指定当前页面在运行过程中发生异常时,转向哪里进行处理。

8. isErrorPage属性:用来指定当前JSP页面是否为异常处理页面,当值为ture时,才可以在当前页面中使用exception对象的相关方法来获取JSP页面的出错原因等信息,默认值为false。

errorPage属性和isErrorPage属性使用示例:

page_errorPage.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"

pageEncoding="UTF-8"%>

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

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>page指令errorPage属性的使用</title>

</head>

<body>

<h1>这个页面发生错误,将转去page_isErrorPage.jsp页面</h1>

<%

int a=30;

int b=0;

int c=a/b;

%>

结果为:<%=c %>

</body>

</html>

Page_isErrorPage.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"

pageEncoding="UTF-8"%>

<%@ page isErrorPage="true" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>isErrorPage属性的使用</title>

</head>

<body>

<h1>这是一个异常处理页面</h1>

<b>错误描述:</b>

<%=exception.toString() %><br/>

<b>详细出错原因:</b>

<pre>

<%

exception.printStackTrace(new java.io.PrintWriter(out));

%>

</pre>

</body>

</html>

运行page_errorPage.jsp结果如下:

9.buffer属性:用来设置JSP内置对象out的缓冲区大小或不使用缓冲区。若取值为none,表示不使用缓冲区,若设置数值,单位为KB,默认值为8KB。

10.autoFlush属性:指定当out 对象的缓冲区被填满时,是否自动刷新,取值为布尔型。

11.isELlgnored属性:指定JSP页面中是执行还是忽略EL表达式,默认值为true。

二、 include指令

include指令的作用是在JSP页面中静态包含一个文件,被包含文件必须和当前JSP页面同在一个Web应用中。所谓静态包含,就是当前JSP页面和包含的页面合成一个新的JSP页面,然后JSP引擎再将这个新的JSP页面转换为Servlet文件。语法格式如下:

<%@ include file="relativeURL" %>

在实际应用中,往往需要一个网站的所有页面使用统一的页头和页脚内容,如果将这些统一的内容定义在文件中(head.html或foot.html),其他页面就可以使用include指令包含文件了。

三、 taglib指令

taglib指令的作用是在JSP页面中引入所使用的标签库,这个指令还可以给标签库指定一个前缀,当JSP页面用到该标签库中的标签时,就可以使用前缀来表示该标签库。

在页面中使用taglib指令可以方便地使用标签库中定义的任意标签,以达到简化页面代码的目的。指令的语法格式如下:

<%@ taglib url="标签库的url地址" prefix="前缀名"%>

在JSP页面使用标签库时,一般格式为:

<前缀名:标签名>

标签名为标签库中定义的标签的具体名称。

举报
评论 0