目录
JSP的编译指令用来设置JSP程序和由该JSP程序编译所生成的Servlet程序的属性,告诉引擎如何处理JSP页面中的某些部分。
1.page指令
基本语法
<%@ page 属性1="属性值1" 属性2="属性值2" 属性3="属性值3"%>
1.1 contentType、pageEncoding属性
<%@ page language="java" contentType="text/html;charset=utf-8" pageEncoding="gbk"%>
pageEncoding是jsp文件本身的页面字符编码
charset指定生成的html文件的页面字符编码
如果pageEncoding属性值未设定,默认和contentType属性中的charset一致。
如果charset也不存在,JSP页面就默认采用ISO-8859-1编码
页面出现中文乱码的原因
1.浏览器的解析方式
2.服务器端返回数据的方式
只要保证这两者的编码格式一致即可解决乱码问题。
而浏览器默认编码为utf-8,因此只要设置服务器端返回数据的编码为utf-8即可。
1.2 import属性
显示导入包,但有些包不需要显示导入: java.lang.*、java.servlet.*、javax.servlet.jsp.*、javax.servlet.http.*
1.3 language属性
声明当前jsp页面使用的脚本语言种类,通常为Java
1.4 extends属性
需要继承的父类
2.include指令
语法:<%@include file="relativeURL"%>
include指令可以将一个外部文件嵌入到当前jsp文件,生成一个完整的页面
这是一个静态的include语句,不会检查嵌入的jsp文件的变化
如果嵌入的jsp文件经常需要改变,建议使用动态指令<jsp:include>
除了import和pageEncoding属性之外,page指令的其他属性不能在这两个页面中有不同的设置值
mainpage.jsp
<%@ page language="java" pageEncoding="utf-8" %>
<%@ include file="subpage.jsp" %>
<html>
<head>
<title>mainpage.jsp</title>
</head>
<body>
<font size="5">我是主页</font><br>
<%@ include file="subpage.jsp" %>
</body>
</html>
subpage.jsp
<%@ page language="java" pageEncoding="utf-8" %>
<html>
<head>
<title>subpage.jsp</title>
</head>
<body>
<font size="3">我是副页</font><br>
</body>
</html>
3.taglib指令
在编写JSP页面程序时,除了使用HTML标签,还可以引入JSP标准库中的标签(JSTL)或自定义标签,以便简化JSP页面设计
这些标签封装了相应的处理程序,能够实现较为复杂的功能
<%@taglib%>指令定义一个标签库以及自定义标签的前缀
语法:<%@taglib uri = "taglibURL" prefix="tagPrefix"%>
uri: 定位这个标记库资源的位置
tagPrefix: 标记库的识别符,用以区别用户的自定义动作
下面这个例子引用了标准标签库中的核心标签库, 并用set标签定义变量,用out标签输出变量
tag.jsp
<%@ page language="java" pageEncoding="GBK"%>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
<html>
<head>
<title>taglib测试</title>
</head>
<body>
<c:set var="example" value="${100+1}" scope="session"/>
example=<c:out value="${example}" />
</body>
</html>