jsp
1.jsp介绍
2.jsp的本质
3.jsp的三种语法
3.1 jsp头部的page指令
3.2 jsp中常用的脚本
4.jsp中三种注解
5.jsp九大内置对象
6.jsp四大域对象
scope页面
<%--
Created by IntelliJ IDEA.
User: Administrator
Date: 2021/11/2
Time: 10:52
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>
<h1>scope.jsp页面</h1>
<%
//四个域中都保存了数据
pageContext.setAttribute("key","pageContext");
request.setAttribute("key","request");
session.setAttribute("key","session");
application.setAttribute("key","application");
%>
pageContext域中的内容:<%=pageContext.getAttribute("key")%><br>
request域中的内容:<%=request.getAttribute("key")%><br>
session域中的内容:<%=session.getAttribute("key")%><br>
application域中的内容:<%=application.getAttribute("key")%><br>
<%
request.getRequestDispatcher("/scope2.jsp").forward(request,response);
%>
</body>
</html>
scope2页面
<%--
Created by IntelliJ IDEA.
User: Administrator
Date: 2021/11/2
Time: 11:32
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>
<h1>scope2.jsp</h1>
pageContext域中的内容:<%=pageContext.getAttribute("key")%><br>
request域中的内容:<%=request.getAttribute("key")%><br>
session域中的内容:<%=session.getAttribute("key")%><br>
application域中的内容:<%=application.getAttribute("key")%><br>
</body>
</html>
7.jsp中的out输出和response.getWrite输出的区别
8.jsp的常用标签
8.1 jsp静态包含
多个页面共用一个静态页面,便于维护
主页代码
<%--
Created by IntelliJ IDEA.
User: Administrator
Date: 2021/11/2
Time: 11:51
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>
头部信息<br>
主体信息<br>
<%--<%@ include file=""%> 就是静态包含
file 属性指定你要包含的 jsp 页面的路径
地址中第一个斜杠 / 表示为 http://ip:port/工程路径/ 映射到代码的 web 目录
静态包含的特点:
1、静态包含不会翻译被包含的 jsp 页面。
2、静态包含其实是把被包含的 jsp 页面的代码拷贝到包含的位置执行输出。
--%>
<%@ include file="/include/footer.jsp"%>
</body>
</html>
被包含页面的代码
<%--
Created by IntelliJ IDEA.
User: Administrator
Date: 2021/11/2
Time: 11:57
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>
8.2 动态包含
<%--<jsp:include page=""></jsp:include> 这是动态包含
page 属性是指定你要包含的 jsp 页面的路径
动态包含也可以像静态包含一样。把被包含的内容执行输出到包含位置
动态包含的特点:
1、动态包含会把包含的 jsp 页面也翻译成为 java 代码
2、动态包含底层代码使用如下代码去调用被包含的 jsp 页面执行输出。
JspRuntimeLibrary.include(request, response, "/include/footer.jsp", out, false);
3、动态包含,还可以传递参数 --%>
<jsp:include page="/include/footer.jsp">
<jsp:param name="username" value="bbj"/>
</jsp:include>
8.3 转发标签
<%--
<jsp:forward page=""></jsp:forward> 是请求转发标签,它的功能就是请求转发
page 属性设置请求转发的路径
--%>
<jsp:forward page="/scope2.jsp"></jsp:forward>
9.练习:九九乘法表
<%--
Created by IntelliJ IDEA.
User: Administrator
Date: 2021/11/2
Time: 18:33
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>
<%-- 输出九九乘法表 --%>
<h1 align="center">九九乘法表</h1>
<table align="center" border="1">
<% for(int i=0;i<9;i++){ %>
<tr><%for(int j=0;j<i;j++){%>
<td><%=j+"+x"+i+"="+(j*i)%></td>
<%}%>
</tr>
<% }%>
</table>
</body>
</html>
10.jsp请求转发说明
Student 类:
showStudent,jsp页面
11.Listener监听器
11.1 监听器的介绍
11.2 ServletContextListener 监听器