JSP
之前只是简单了解了一下,现在来详细学习一下
指令
作用:用于配置JSP页面,导入资源文件
格式:
1
<%@ 指令名称 属性名1=属性值1 属性名2=属性值2 %>
分类:
page 配置JSP页面
contentType
import
errorPage
isErrorPage
include 页面包含的。导入页面的资源文件
taglib 导入资源
- prefix和uri
page指令
contentType:等同于response.setContentType()
设置响应体的mime类型以及字符集
设置当前JSP页面的编码(只能是高级IDE才能生效,低级工具,则需要pageEncoding属性设置当前页面的字符集)
import:导包
errorPage:当前页面发生异常后,会自动跳转到指定的错误页面
isErrorPage:标识当前页面是否是错误页面
import
1 | <%@ page import="java.util.Date" %> |
errorPage
1 | <% |
这样就会在客户端上输出500以及错误信息,但是我们并不希望让用户看到这些,要显示一个友好页面
所以在index中设置1
2
3
4
5
6
7
8
9
10
<%@page contentType="text/html; utf-8" errorPage="500.jsp" %>
<html>
<body>
<%
int i =3/0;
%>
</body>
</html>
500.jsp1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19<%@ page import="java.util.List" %>
<%@ page import="java.util.ArrayList" %><%--
Created by IntelliJ IDEA.
User: songf
Date: 2020/8/6
Time: 16:00
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
服务器正忙...
</body>
</html>
接下来访问index.jsp,就会访问到500.jsp的页面
isErrorPage
修改500.jsp1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@page isErrorPage="true" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<h1>服务器正忙...</h1>
<%
String message = exception.getMessage();
out.print(message);
%>
</body>
</html>
将isErrorPage设置为true,再配合exception就可以输出错误信息了
include指令
top.jsp1
2<%@ page contentType="text/html;charset=UTF-8" language="java" %>
页面logo页面标题
home.jsp1
2
3
4
5
6
7
8
9
10
11
12<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@include file="top.jsp"%>
<html>
<head>
<title>Title</title>
</head>
<body>
主体信息
</body>
</html>
使用include包含进来,访问home.jsp
由于一些问题,所以这里我把标签删掉了
taglib指令
1 | <%@page contentType="text/html; utf-8" errorPage="500.jsp" %> |
引入标签库,且命名为c之后,就可以使用c标签了
这样就会看到各种各样的标签可以使用了
prefix定义的是前缀,自定义;业内约定好了jstl就是c为前缀
uri就是需要导入的标签库
注释
html注释:
- <!— —>:只能注释html代码片段
jsp注释
- <%— —%>:可以注释所有
1 | <!-- |
html注释之后,浏览器可以查看到注释的源码
所以推荐使用jsp注释
内置对象
在jsp页面中不需要创建,直接使用的对象
一共有9个:
变量名 | 真实类型 | 作用 |
---|---|---|
pageContext | PageContext | 当前页面共享数据 |
request | HttpServletRequest | 一次请求访问的多个资源(转发) |
session | HttpSession | 一次会话的多个请求间 |
application | ServletContext | 所有用户间共享数据 |
response | HttpServletResponse | 响应对象 |
page | Object | 当前页面(Servlet)的对象 this |
out | JspWriter | 输出对象,数据输出到页面上 |
config | ServletConfig | Servlet的配置对象 |
exception | Throwable | 异常对象 |
pageContext可以获取另外8个内置对象