jsp内置对象和域对象

内置对象

内置对象的概念:jsp已经帮助初始化过的,可以拿来直接用。
jsp存在九个内置对象

requestHttpServletRequest
responseHttpServletResponse
page类似于java中的this,很少用
application类似于ServletContext
pageContextPageContext类的实例,提供对jsp页面所有对象以及命名空间的访问
out输出对象,Printwriter类的实例,用于把结果输出至网页上,类似于response.getWrite()
session就是servlet的HttpSession
configServletConfig类的实例,做配置选项的
exception做异常实例

域对象

用来存值,保存数据。级别越高,越不容易丢。
PageContext <request<session<application
PageContext:只能本页面,页面级别
request:同一个请求,请求级别
session:回话级别
application:应用级别
PageContext范围:本页面有效

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
   <%
      //在pageContext设置值
      //在域对象中设置值得时候,键只能是字符串
      pageContext.setAttribute("name", "zhangsan");
   %>
   
   <%
     String name=(String)pageContext.getAttribute("name");
     out.println(name);
   %>
   <h1><%=pageContext.getAttribute("name") %></h1> 
   <jsp:forward page="context02.jsp"/>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
   
   <%
     String name=(String)pageContext.getAttribute("name");
     out.println(name);
   %>
   <h1><%=pageContext.getAttribute("name") %></h1> 
   
</body>
</html>

在这里插入图片描述
request是一个请求内有效

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
   
   
   <%
   //request请求头 
      request.setAttribute("name", "大葱");
   %>
   <%
     String name=(String)request.getAttribute("name");
     out.println(name);
   %>
   <h1><%=request.getAttribute("name") %></h1> 
   <jsp:forward page="context02.jsp"/> 
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
   
   
   <%
     String name=(String)request.getAttribute("name");
     out.println(name);
   %>
   <h1><%=request.getAttribute("name") %></h1> 
   
</body>
</html>

在这里插入图片描述
使用重定向拿不到

<%
     //使用重定向拿不到
     response.sendRedirect("context02.jsp");
   %>

session:会话级别,登录一次内容一直在,关闭浏览器,重新登录,使用重定向能拿到

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

   
   <%
       session.setAttribute("name", "xiaohei");
   %>
   <%
     //使用重定向能拿到
     response.sendRedirect("context02.jsp");
   %>
   <h1><%=session.getAttribute("name") %></h1> 
   <%-- <jsp:forward page="context02.jsp"/>  --%>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
   
  
   
   <%
     String name=(String)session.getAttribute("name");
     out.println(name);
   %>
   
</body>
</html>

在这里插入图片描述
application:永久存在,服务器重启后不存在

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
 
   
   <%
       session.setAttribute("name", "xiaohei");
      //会保存成全局变量,只有web服务器关闭、重启等操作才会销毁
       application.setAttribute("count", 10000);
   %>
   <%
     //使用重定向能拿到
     response.sendRedirect("context02.jsp");
   %>
   <h1><%=session.getAttribute("name") %></h1> 
   <%-- <jsp:forward page="context02.jsp"/>  --%>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

   <%
     String name=(String)session.getAttribute("name");
     out.println(name);
     
   %>
   <h1><%=application.getAttribute("count") %></h1>
   
</body>
</html>

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值