一. 指令
1. 指令写法:<%@ 指令名字 %>, 如下的page指令写法:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
二. page指令
1. page指令的写法: <%@ page ...>。
2. page指令的language属性, language=”java”, 表明jsp页面中可以写java代码。
3. page指令的contentType属性, contentType="text/html; charset=UTF-8", 指明文件的内容类型是一个简单文本、html网页, 内容编码是UTF-8。
4. page指令的pageEncoding属性, pageEncoding="UTF-8", jsp内容编码是UTF-8。
5. 新建一个名称叫做JspZhiLing的Web工程
5.1. 新建一个名称叫做JspZhiLing的Web工程
5.2. 在WebContent下新建一个index.jsp
5.3. 编写index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>Jsp三大指令介绍</title>
</head>
<body>
<h1>Jsp三大指令介绍</h1>
</body>
</html>
5.4. 部署运行
5.5. 在Tomcat的work-->localhost目录下找到项目
5.6. 进入目录找到index_jsp.java, 我们的index.jsp被翻译成了index_jsp.java
6. page指令的session属性
6.1. session的值可以为true或者false, 默认为true。
6.2. 用于控制在这个jsp页面里面, 能够直接使用session对象。
6.3. 翻译后的java文件, 如果该值是true, 那么在代码里面会有getSession()的调用; 如果是false, 那么就不会有该方法调用, 也就是没有session对象了。在页面上自然也就不能使用session了。
6.4. 不添加session属性, 部署运行, 打开index_jsp.java, 发现有getSession(), 说明session属性的默认值是true。
7. page指令的extends属性
7.1. extends用于指定jsp翻译成java文件后, 继承的父类是谁, 一般不用改。我们继承HttpJspBase这个类, 如下所示:
7.2. 打开index.jsp.java, 父类是org.apache.jasper.runtime.HttpJspBase。
8. page指令的import属性, 导入java的包
9. page指令的errorPage和isErrorPage属性
9.1. errorPage指的是错误的页面, 我们可以指定一个错误页面的路径。
9.2. isErrorPage声明某一个页面到底是不是错误的页面。
9.3. 新建一个error.jsp, 声明它是一个错误页面。
9.4. 在index.jsp里面指明errorPage的路径是error.jsp, 同时页面上抛一个除0的错误。
9.5. 部署运行, 使用chrome和firefox浏览器可以自动跳到error.jsp, 使用IE浏览器却不能跳到error.jsp, 说明此次写法并不能兼容所有浏览器。
三. include指令
1. 包含另外一个jsp的内容进来。
2. 写法: <%@ include file="inner.jsp"%>。
3. 把另外一个页面的所有内容拿过来一起输出。所有的标签元素都包含进来。
4. 新建一个inner.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>被包含的Jsp页面</title>
</head>
<body>
<h1>被包含的Jsp页面</h1>
</body>
</html>
5. 修改index.jsp, 包含inner.jsp
6. 部署运行
7. 查看网页源码, 包含了2份html
四. taglib指令
1. taglib指令用于引入一个标签库。
2. 写法: <%@ taglib prefix="" uri=""%>。
3. uri: 要引入标签库路径。
4. prefix: 标签库的别名。