对HTML的控制
因为<%
和%>
可以任意出现在内嵌Java代码的合适位置,导致了可以在条件或者循环中使用HTML,这样就达到了对HTML的控制。runoob上的这个例子很有趣:
<%@page language="java" pageEncoding="UTF-8" %>
<HTML>
<head>
<title>测试</title>
</head>
<body>
<%
for(int i=1;i<5;i++){
%>
<%--在这里使用JSP的表达式取到i--%>
<font color="gray" size="<%= i %>">
添加字号变大的文字
</font><br>
<%
}
%>
</body>
</HTML>
page指令
page指令可以用来设定整个JSP文件的属性,常见的page指令这样用:
<%@page language="java" pageEncoding="UTF-8" %>
即用language属性属性设定JSP页面用的脚本语言,用pageEncoding属性指明了字符编码。
但在课本上习惯使用contentType属性指定MIME类型和字符编码:
<%@page language="java" contentType="text/html;charset=UTF-8" %>
MIME是描述消息类型的互联网标准,即指定浏览器的打开方式。
pageEncoding是jsp文件本身的编码,是指定web容器将jsp编译成java文件时采用什么编码读取jsp文件。
contentType的charset设置的编码是指服务器发送给客户端时的内容编码。
page指令的另一个常用参数import可以用来导入需要使用的java类。
include指令
include指令可以用来导入静态的JSP文件或者HTML文件等,只使用一个参数file即可:
<%@include file="index.jsp" %>
例如:
<%@ page language="java" contentType="text/html;charset=UTF-8"%>
<html>
<head>
<title>Title</title>
<meta charset="UTF-8">
</head>
<body>
<%@include file="MyBody.html" %>
<%@include file="MyBody.html" %>
</body>
</html>
导入的html文件是:
<%@page pageEncoding="UTF-8"%>
啊啊啊<br>
虽然第一行JSP对HTML没有用,但可以在导入时导进来,防止发生编码问题。
taglib指令
放行自定义标签库,格式为:
<%@taglib uri=标签库文件 prefix=标签使用前缀 %>
这个属性后面用到了再研究吧。
三种指令的XML形式
page指令
<jsp:directive.page 属性=值 />
include指令
<jsp:directive.include file="文件相对URL" />
taglib指令
<jsp:directive.taglib uri=标签库位置 prefix=标签库前缀 />