8.5、jsp9大内置对象
- PageContext 存东西
- Request 存东西
- Response
- Session 存东西
- Application 【SerlvetContext】 存东西
- config 【SerlvetConfig】
- out
- page ,不用了解
- exception
层级 page->request->session->application
request:客户端向服务器发送请求,产生的数据,用户看完就没用了,比如:新闻,用户看完没用的!
session:客户端向服务器发送请求,产生的数据,用户用完一会还有用,比如:购物车;
application:客户端向服务器发送请求,产生的数据,一个用户用完了,其他用户还可能使用,比如:聊天数据;
demo
<%--
Created by IntelliJ IDEA.
User: xubainan
Date: 2021/3/4
Time: 10:25 上午
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>9大内置对象</title>
</head>
<body>
<%--存值--%>
<%
pageContext.setAttribute("name1","长江1号"); //保存的数据只在一个页面中有效
request.setAttribute("name2","长江2号"); //保存的数据只在一次请求中有效,请求转发会携带这个数据
session.setAttribute("name3","长江3号"); //保存的数据只在一次会话中有效,从打开浏览器到关闭浏览器
application.setAttribute("name4","长江4号"); //保存的数据只在服务器中有效,从打开服务器到关闭服务器
%>
<%--取出--%>
<%
out.println(pageContext.findAttribute("name1"));
out.println(pageContext.findAttribute("name2"));
out.println(pageContext.findAttribute("name3"));
out.println(pageContext.findAttribute("name4"));
%>
</body>
</html>
跨页面取出
<%--
Created by IntelliJ IDEA.
User: xubainan
Date: 2021/3/4
Time: 10:25 上午
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>9大内置对象</title>
</head>
<body>
<%--跨页面取出--%>
<%
out.println(pageContext.findAttribute("name1"));
out.println(pageContext.findAttribute("name2"));
out.println(pageContext.findAttribute("name3"));
out.println(pageContext.findAttribute("name4"));
%>
---------------------------------------------------<br>
el表达式
${pageContext.findAttribute("name1")}
${pageContext.findAttribute("name2")}
${pageContext.findAttribute("name3")}
${pageContext.findAttribute("name4")}
</body>
</html>
Request 请求转发访问取出
<%--
Created by IntelliJ IDEA.
User: xubainan
Date: 2021/3/4
Time: 10:25 上午
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>9大内置对象</title>
</head>
<body>
<%--存值--%>
<%
pageContext.setAttribute("name1","长江1号"); //保存的数据只在一个页面中有效
request.setAttribute("name2","长江2号"); //保存的数据只在一次请求中有效,请求转发会携带这个数据
session.setAttribute("name3","长江3号"); //保存的数据只在一次会话中有效,从打开浏览器到关闭浏览器
application.setAttribute("name4","长江4号"); //保存的数据只在服务器中有效,从打开服务器到关闭服务器
%>
//请求转发
<%
pageContext.forward("/jspdemo09.jsp"); //jsp页面请求转发用pageContext.forward方法也可以转发=下面这个
%>
<%--<%request.getRequestDispatcher("/jspdemo09.jsp").forward(request,response);//请求转发–%>--%>
</body>
</html>