Jsp九大内置对象
作者:互联网
1.九大内置对象
- PageContext【存东西】
- Request 【存东西】
- Response
- Session【存东西】
- Application(ServletContext)【存东西】
- config(ServletConfig)
- out
- page 【基本用不到】
- exception
新建pageContextDemo1.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%--内置对象--%>
<%
pageContext.setAttribute("name1","falltime01");//保存的数据只在一个页面中有效
request.setAttribute("name2","falltime02");//保存的数据只在依次请求中有效,请求转发后会携带这个数据
session.setAttribute("name3","falltime03");//保存的数据只在一次会话中有效,从打开浏览器到关闭浏览器
application.setAttribute("name4","falltime04");//保存的数据只在服务器中有效,从打开浏览器到关闭浏览器,从打开服务器到关闭服务器(ServletContext)
%>
<%--脚本片段中的代码会被原封不动的生成到.jsp.Java文件中,这里必须保证Java语法的正确性--%>
<%
//
String name1 = (String)pageContext.getAttribute("name1");
String name2 = (String)pageContext.findAttribute("name2");
String name3 = (String)pageContext.findAttribute("name3");
String name4 = (String)pageContext.findAttribute("name4");
String name5 = (String)pageContext.findAttribute("name5");
%>
<%--使用EL表达式输出--%>
<h1>取出的值为:</h1>
<h3>${name1}</h3>
<h3>${name2}</h3>
<h3>${name3}</h3>
<h3>${name4}</h3>
<h3><%=name5%></h3>
</body>
</html>
新建pageContextDemo2.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%--脚本片段中的代码会被原封不动的生成到.jsp.Java文件中,这里必须保证Java语法的正确性--%>
<%
//
String name1 = (String)pageContext.getAttribute("name1");
String name2 = (String)pageContext.findAttribute("name2");
String name3 = (String)pageContext.findAttribute("name3");
String name4 = (String)pageContext.findAttribute("name4");
String name5 = (String)pageContext.findAttribute("name5");
%>
<%--使用EL表达式输出--%>
<h1>取出的值为:</h1>
<h3>${name1}</h3>
<h3>${name2}</h3>
<h3>${name3}</h3>
<h3>${name4}</h3>
<h3><%=name5%></h3>
</body>
</html>
结果(需要先请求一下pageContextDemo1.jsp然后再请求pageContextDemo2.jsp,不然都取不到值)
新建pageContextDemo3.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%--
public void setAttribute (String name,
Object attribute,
int scope)
{
switch (scope) {
case PAGE_SCOPE:
mPage.put (name, attribute);
break;
case REQUEST_SCOPE:
mRequest.put (name, attribute);
break;
case SESSION_SCOPE:
mSession.put (name, attribute);
break;
case APPLICATION_SCOPE:
mApp.put (name, attribute);
break;
default:
throw new IllegalArgumentException ("Bad scope " + scope);
}
}
--%>
<%--内置对象--%>
<%
pageContext.setAttribute("name1","falltime01", PageContext.REQUEST_SCOPE);
//等价于 request.setAttribute("name1","falltime01");
%>
</body>
</html>
新建pageContextDemo4.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%
pageContext.forward("/index.jsp");
// pageContext封装了此方法等价于request.getRequestDispatcher("/index.jsp").forward(request, response);
%>
</body>
</html>
request:客户端向服务器发送请求,产生的数据,用户看完就没用了,比如:新闻
session:客户端向服务器发送请求,产生的数据,用户用完一会还有用,比如:购物车
application:客户端向服务器发送请求,产生的数据,一个用户用完了,其他用户还可能使用,比如:聊天数据
标签:内置,请求,Title,新建,九大,jsp,服务器发送,Jsp,客户端 来源: https://www.cnblogs.com/CnFallTime/p/15966857.html