JAVAWeb-Servlet和JSP-JSP-JSP指令
JSP指令的作用是为当前页面做一些基本的属性设置,为当前页面的运行提供基本的环境。
在JSP中包含三类指令
- page指令,页面指令
- include指令,包含指令
- taglib指令 ,标签库指令
这些指令的使用语法,格式皆如下:
<%@ 指令名称 属性名=属性值 ...%>
下面来说说几个常用的指令
page指令
1.import属性
导包嘛,对吧,除了java.lang包下类的不用导,其他都得导包呀。
//导一个包
<%@ page import="java.util.*" %>
//导两个包,包名之间用逗号隔开
<%@ page import="java.util.*,java.sql.*"%>
2.errorPage属性
errorPage的属性值即可以是jsp文件,也可以是html文件。当当前JSP页面出现错误时,则会跳转至errorPage中写的页面。
语法:
<% page errorPage="error.jsp"%>
需要注意的是:
在error页面中,如果需要用到exception对象,需要加入page指令
<%@ page isErrorPage="true"%>
test.jsp
//test.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" pageEncoding="UTF-8" %>
//发生异常后,跳转到error.jsp页面
<%@ page errorPage="/error.jsp"%>
<html>
<head>
<title>errorPage属性</title>
</head>
<body>
<%
//这里手动模拟一个被0除异常
System.out.pringln(10/0)
%>
</body>
</html>
error.jsp
//error.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" pageEncoding="UTF-8" %>
//这里要配置isErrorPage属性,否则JSP不会内建exception对象
<%@ page isErrorPage="true" %>
<html>
<head>
<title>error</title>
</head>
<body>
<%
//这手打印出错误的堆栈信息
exception.printStackTrace();
%>
</body>
</html>
3.session属性
如果想在JSP中使用session对象,则需要在JSP页面中写上page指令:
<%@ page session="true" %>
这一点和exception对象类似。
page指令有很多,但是不经常用的就算看来额,没多久也就忘了,因此等需要用时,再去查看相关文档即可,这里只说几个常用的。
inlclude指令
包含指令中只有一个属性file。
该属性指定的是该JSP文件要包含的JSP文件的路径。
JSP文件可以包含被包含文件的页面,变量等内容。
比如:
有left.jsp和main.jsp,让main.jsp包含left.jsp.
被包含文件left.jsp
//被包含文件left.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>这是被包含文件left.jsp</title>
</head>
<body>
left
<%
int num = 88;
%>
</body>
</html>
//包含文件的文件mian.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
//include指令,包含left.jsp
<% include file="/left.jsp" %>
<html>
<head>
<title>mian.jsp</title>
</head>
<body>
<%=num %>
</body>
</html>
上面的JSP运行结果如下:
我们可以看出来,main.jsp中,不仅包含了left.jsp中的内容,同样,也包含了left.jsp中定义的变量num,所以在main.jsp中可以直接访问到num。
这种方式叫做静态包含。
那么,include的应用场景一般是什么呢?
我们都知道,一个网站可能会包含很多个网页,但是这些网页可能有在:
- 网页头部导航部分
- 网页底部的备案信息部分
- 网页右部链接部分
都是相同的,因此这些相同的部分,就可以使用包含的方式,一来减少代码冗余,而来修改起来也比较方便。现代网页开发中,经常有如下模式:
这样使用main.jsp包含head.jsp、body.jsp、right.jsp的方式来进行网页设计
3.taglib指令
这部分内容比较多,后面写完再补上链接。