JavaEE学习之路—–JSP(二)

本文介绍了JSP中的三种编译指令:page、include和taglib。重点讲述了page指令的各种属性及其用途,如设定脚本语言、指定父类、设置会话等。此外还讨论了静态include指令的应用场景及taglib指令的基本概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. JSP的3个编译指令

JSP的编译指令是通知JSP引擎的消息,它不直接生成输出。编译指令都有默认值,因此无须为每个指令设置值。

常见的编译指令有:

  • page:该指令是针对当前页面的指令。
  • include:该指令用于指定包含另一个页面。
  • taglib:用于定义和访问自定义标签。
    使用编译指令的语法如下:
<%@ 编译指令名 属性名="属性值"...%>

1.1 page指令

page指令常位于JSP页面的顶端,一个JSP页面可以使用多条page指令。page指令的语法如下:

<%@ page
[language="Java"]
[extends="package.class"]
[import="package.class|package.*|..."]
[session="true|false"]
[buffer="none|8KB|size Kb"]
[autoFlush="true|false"]
[info="text"]
[errorPage="relativeURL"]
[contentType="mineType;[charset=characterSet]"|"text/html;charSet=ISO-8859-1"]
[pageEncoding="ISO-8859-1"]
[isErrorPage="true|false"]
%>

这些属性的意义分别如下:

  • language:声明当前JSP页面使用的脚本语言的种类,默认是Java.
  • extends:指定JSP页面编译产生的Java类所继承的父类,或所实现的接口。
  • improt:用来导入包,默认导入的包有 —– java.lang.*、javax.servlet.jsp.*、javax.servlet.http.*.
  • session:设定这个JSP页面是否需要HTTP Session。
  • buffer:指定输出缓冲区的大小。输出缓冲区的JSP内部对象:out用于缓存JSP页面对客户端浏览器的输出,默认值是8KB,可以设置为none,也可设置为其他值,单位是KB。
  • autoFlush:当输出缓冲区即将溢出时,是否需要强制输出缓冲区的内容。设置为true时为正常输出;如果设置为false,则会在buffer溢出时产生一个异常。
  • info:设置该JSP程序的信息,也可看作是说明,可通过Srevlet.getServletInfo()方法获得该值。
  • errorPage:指定错误处理页面。如果本页面产生了异常或错误,而该JSP页面没有对应的处理代码,则会自动调用该属性所指定的JSP页面。
  • isErrorPage:设置该JSP页面是否是错误处理页面。如果是错误处理页面,则通常不再需要指定errorPage。
  • contentType:用于设定生成网页的文本格式和编码字符集,即MIME类型和页面的字符集类型,默认的MIME类型是text/html;默认的字符集类型是ISO-8859-1.
  • pageEncoding:指定生成网页的编码字符集。

例:

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

<%@ page import="java.sql.*" info="this is a 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>Insert title here</title>
</head>
<body>
 <%=getServletInfo() %>
</body>
</html>

1.2 Include指令

使用include指令,可以将一个外部文件嵌入到当前JSP文件中,同时解析这个页面中的JSP语句。这是个静态include指令,它会将目标页面中的其他编译指令也包含进来,但是动态include则不会。
include既可以包含静态文本,也可以包含动态JSP页面,被包含页面会被加入到本页面,被包含页面可以不是一个完整的页面。include编译指令语法:

<%@include file="relativeURLSpec"%>

如果被嵌入的文件需要经常改变,建议使用操作指令,因为它是动态的include语句。
静态include:

<%@ 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>
<%@include file="page.jsp" %>
</body>
</html>

静态包含会将被包含页面的编译指令也包含进来,如果两个也面的编译指令冲突,则会出错。
1.3 taglib指令

该指令将在自定义标签处详细讲解
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值