「这是我参与2022首次更文挑战的第5天,活动详情查看:2022首次更文挑战」
JSP作为java技术的一种应用,他有一些自己扩充的语法,并且Java所有的语法他都支持。
1. JSP注释
<%--我是注释--%>
JSP的注释不会在客户端显示
2. JSP表达式
<%--JSP表达式: <%= 变量或者表达式%>
作用:用来将程序的结果输出到客户端
--%>
<%= new java.util.Date()%> <%--Sun Feb 21 10:36:58 CST 2021--%>
3. JSP脚本程序
-
脚本程序可以包含任意量的Java语句、变量、方法或表达式,只要它们在脚本语言中是有效的。
-
任何文本、HTML标签、JSP元素必须写在脚本程序的外面。
<%--jsp脚本程序
格式 <% 代码片段 %>
--%>
<%
int sum = 0;
for (int i = 0; i <50 ; i++) {
sum+=i;
}
out.println("<h1>Sum="+sum+"<h1>");
%>
4. JSP脚本片段的再实现
jsp脚本代码嵌入html标签
<%--jsp脚本片段的再实现 ,jsp脚本代码嵌入html标签--%>
<%
for (int i = 0; i < 5; i++) {
%>
<h2>hello world ${i}> </h2>
<%
}
%>
5. JSP声明
一个声明语句可以声明一个或多个变量、方法,供后面的Java代码使用。在JSP文件中,必须先声明这些变量和方法然后才能使用它们。
<%--
JSP声明的语法格式:
<%! declaration; [ declaration; ]+ ... %>
--%>
<%!
static{
System.out.println("Loading Servlet");
}
<%--声明变量--%>
private int globaVar = 0;
<%--声明方法--%>
public void cheng(){
System.out.println("进入了该方法");
}
%>
JSP声明后的代码不像上面的一样在jspservice()方法内,而是直接在类下面,因此不能与客户端发生响应,但作用域更高
6. JSP指令
JSP指令用来设置与整个JSP页面相关的属性。
6.1 JSP指令语法格式
<%@ directive attribute="value" %>
这里有三种指令标签:
指令 | 描述 |
---|---|
<%@ page ... %> | 定义页面的依赖属性,比如脚本语言、error页面、缓存需求等等 |
<%@ include ... %> | 包含其他文件 |
<%@ taglib ... %> | 引入标签库的定义,可以是自定义标签 |
6.2 JSP指令实现
6.2.1 导包指令
<%@ page import="java.util.*" %>
6.2.2定制错误页面
404错误页面
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<img src="../img/404.jpg" sizes="">
</body>
</html>
500错误页面
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<img src="../img/500.png" alt="500">
</body>
</html>
在web.xml配置文件里设置
<error-page>
<error-code>404</error-code>
<location>/error/404.jsp</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/error/500.jsp</location>
</error-page>
在jsp页面内引入
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page errorPage="error/500.jsp" %>
<html>
<head>
<title>Title</title>
</head>
<%--定制错误页面--%>
<body>
<%
int x = 1/0;<%--服务器内部错误--%>
%>
</body>
</html>
6.2.3 显示声明为错误页面
<%@page isErrorPage="true" %> <%--显示声明为错误jsp页面--%>
6.2.4 包含其他页面
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%--方式一:用JSP指令--%>
<%@ include file="common/header.jsp"%>
<h2>网页主体</h2>
<%@ include file="common/footer.jsp"%>
<%--方式二:用JSP标签--%>
<jsp:include page="/common/header.jsp"></jsp:include>
<h2>网页主体</h2>
<jsp:include page="/common/footer.jsp"></jsp:include>
</body>
</html>
根据页面源码分析两个包含方式的区别:
- @ include:将两个页面合二为一到本页面
- jsp:include:将两个页面拼接到本页面,本质还是三个页面