03_command.jsp
<%@ page
contentType="text/html;charset=UTF-8"
language="java"
import="java.util.*"
pageEncoding="utf-8"
errorPage="error.jsp"
isErrorPage="false"
buffer="8kb"
session="true"
isELIgnored="false"
%>
<html>
<head>
<title>JSP 指令</title>
</head>
<body>
<%--
JSP 的三大指令:
1、include 指令
作用:用于在当前页面包含其他页面
语法:<%@include file="" %>
注意:
include 包含的原理是把 被包含页面的内容原封不动的拷贝到 包含页面中,合并后翻译成一个
java 源文件,再编译运行。这种包含叫做 静态包含,也可以叫做 源码包含。
如果使用静态包含,被包含页面中就不需要出现一些全局的 html 标签了,只需要直接写 body 标签的内容就可以了。
2、page 指令
作用:告诉 tomcat 服务器如何翻译 jsp 文件;
contentType="text/html;charset=UTF-8" -- 服务器发送给浏览器的数据类型和编码方式;
-- 翻译成java代码就是:response.setContentType("text/html;charset=UTF-8");
-- contentType 这个属性可以省略,省略之后 编码值参考 pageEncoding 属性;
language="java" -- 告诉服务器使用什么语言来翻译 jsp 文件,只能写 java;
import="java.util.*" -- 告诉服务器 java 文件使用什么包;多个包之间使用 逗号 分隔;
pageEncoding="utf-8" -- 告诉服务器使用什么编码翻译 jsp 文件;(jsp文件 -> java文件)
errorPage="error.jsp" -- 指定当前页面的错误处理页面,只在当前页面有效;可以在web.xml中设置全局错误处理页面:如下
<!-- 配置全局错误处理页面 -->
<error-page>
<!-- 配置服务器异常处理页面,因为服务器异常的原因有很多,比如 空指针异常,索引越界等,
都属于 500 异常,使用 jsp 页面,可以通过 exception 对象获取到具体的异常错误信息 -->
<error-code>500</error-code>
<location>/comment/500.jsp</location>
</error-page>
<error-page>
<!-- 配置客户端异常处理页面,客户端一般出现最多的问题就是 404,资源未找到 -->
<error-code>404</error-code>
<location>/comment/404.html</location>
</error-page>
-- 如果既在当前页面配置了 errorPage,又在 web.xml 中配置了 <error-page>,则 errorPage 优先;
isErrorPage="false" -- 指定当前页面是否为错误处理页面,为 true 时可以使用 exception 对象获取异常信息;
-- 为 false 则不能使用 exception 获取异常信息;
buffer="8kb" -- JSP 页面的缓冲区大小
session="true" -- 是否开启 session 功能;true表示可以使用 session 对象;false 则不能使用 session 对象;
isELIgnored="false" -- 是否忽略 EL 表达式(后面讲 EL 表达式的时候再说)
3、taglib 指令
--%>
<%-- 包含外部的页面 --%>
<%@include file="/comment/header.jsp" %><br>
03_command.jsp 页面
<%
/*
当前页面定义了属性 errorPage="error.jsp",所以当前页面出现错误时会跳转到 error.jsp 页面;
*/
String name = null;
char c = name.charAt(1); // 由于 name=null,所以此处会报 空指针异常
%>
</body>
</html>
header.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
网站头页面的内容。。。。
error.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" isErrorPage="true" %>
<html>
<head>
<title>错误页面</title>
</head>
<body>
服务器异常,请稍后再试...<br>
<%-- 由于当前页面定义了属性 isErrorPage="true",所以可以使用下面方法获取异常的错误信息 --%>
错误原因:<%=exception.getMessage() %>
</body>
</html>
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<!-- 配置全局错误处理页面 -->
<error-page>
<!-- 配置服务器异常处理页面,因为服务器异常的原因有很多,比如 空指针异常,索引越界等,
都属于 500 异常,使用 jsp 页面,可以通过 exception 对象获取到具体的异常错误信息 -->
<error-code>500</error-code>
<location>/comment/500.jsp</location>
</error-page>
<error-page>
<!-- 配置客户端异常处理页面,客户端一般出现最多的问题就是 404,资源未找到 -->
<error-code>404</error-code>
<location>/comment/404.html</location>
</error-page>
</web-app>