JSP指令

JSP指令

提供整个JSP页面的相关信息

用于JSP页面与容器之间的通信

<%@ directive attribute1="value1" attribute2="value2" %>

如果有多个属性,也可以分开写:

<%@ directive attribute1="value1" %>

<%@ directive attribute2="value2" %>

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

<!-- 多个指令分开写 -->

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

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

在JSP中,有三种类型的指令

page指令——为当前页面提供处理指令

页面指令的功能是设定整个JSP页面的属性和相关功能

语法格式为:

<%@ page attribute1="value1" attribute2="value2"  %>

page指令也支持以XML为基础的语法,例如:

<jsp:directive.page attribute1="value1" attribute2="value2" />

 

属性名

默认值

language

脚本语言名称

"java"

Info

网页信息

contentType

MIME类型和JSP编码

"text/html;charset=ISO-8859-1"

import

类和包

none

buffer

缓冲区大小

8192

autoFlush

缓冲满,刷新还是抛出异常

"true"

session

访问页面是否创建会话

"true"

isThreadSafe

线程是否安全

"true"

errorPage

URL

none

isErrorPage

布尔值

"false"

 

include指令——用于把另一个文件包含在JSP中

include指令表示在JSP编译时插入一个包含文本或者代码的文件

把文件中的文本静态地包含过去

语法格式为:

<%@ include file="relativeURL" %>

"relativeURL"为要包含进来的文件,可以是HTML、JSP文件,也可以是其它格式的文本文件。

include指令也支持以XML为基础的语法,如:

<jsp:directive.include file="relativeURL" />

 

<!-- error_500_page.jsp -->

<%@ page language="java" contentType="text/html; 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>

Error_500;

<%@ include file="error_404_page.jsp" %>

</body>

</html>

<!-- error_404_page.jsp -->

<%@ page language="java" contentType="text/html; 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>

Error_404;

</body>

</html>

运行服务器,打开页面error_500_page

 

Error_500_page(<%@ include %>

 

Error_500_page(<%@ include %>)翻译成的Java文件内容(局部)

提示:翻译后和编译后的文件可以在工程服务器里查找,我的文件目录是(可参考):D:\Javacode\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\work\Catalina\localhost\Test\org\apache\jsp\jsp

 

仔细看就能发现,是error_500_page.jsp内容里面包含了error_404_page.jsp里面的所有内容,包含html、head、body等所有标签。如果存在重复标签或者id名就会出现一些意外的情况。

注意:被包含的文件不要与包含文件存在重复HTML标签,而且不能是URL变量

标准动作:<jsp:include>动作是一种动态包含

修改error_500_page.jsp的语句

<%--把<%@ include file="error_404_page.jsp" %>修改为下面的代码--%>

<jsp:include page="error_404_page.jsp"></jsp:include> 

 

Error_500_page(<jsp:include>)

 

Error_500_page(<jsp:include>)翻译成的Java文件内容(局部)

由此可见,error_500_page.jsp内容里面没有包含error_404_page.jsp里面的内容,而是以一串指令代替。

动态和静态的区别是什么?

- included动作比included指令在维护上有着明显优势,而included指令的功能更加强大,执行速度也比included动作快。

- included指令只能生成一个servlet,而included动作可以生成多个Servlet

- included指令包含的是被包含页面的真实代码,而included动作包含的是相应代码

- included指令发生在页面编译时,而included动作发生在页面请求时

- included指令做出的人任何修改必须重启当前Web才能生效,而included动作保存即生效

- included指令不能实现在请求区间内共享对象,而included动作支持在请求区间内共享对象

- included指令适用于静态页面包含,而included动作适合动态页面包含

taglib指令——指定如何包含和访问自定义标签库

<jsp:forward>动作

将客户端所发出来的请求,从一个JSP网页转发到另一个JSP页面

语法格式为:

<jsp:forward page="relativeURL" />

控制权交给了另一个JSP,和Java代码中的request的请求派发功能相似(可以访问WEB-INF目录)request.getRequestDispatcher("").forward(request,response);

JSP九大隐式对象   

在JSP中操纵请求、响应、会话以及其它Servlet中使用的对象

对象名

描述

作用域

request

代表与请求相关的HttpServletRequest对象

request

response

代表与响应相关的HttpServletResponse对象

page

pageContext

代表封装请求某个JSP页面时请求环境的pageContext对象

page

session

代表特定用户请求会话的HttpSession对象。该对象只有在JSP页面参与一个HTTP会话时才有意义

session

application

代表Web应用程序的ServletContext对象

application

out

代表与响应输出流相关的JspWriter对象

page

config

代表JSP 页面的Servlet相关的ServletConfig对象

page

page

等于Java编程语言中的this变量

page

exception

代表JSP页面抛出的Trowable对象。这个对象只能在JSP错误页面中使用

page

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值