jsp四个域对象的作用范围

时间:2021-05-03 12:59:47

jsp的内置对象:

内置对象是在JSP页面中无需创建就可以直接使用的变量。在JSP中一共有9个这样的对象!它们分别是:

l  out(JspWriter);

l  config(ServletConfig);

l  page(当前JSP的真身类型);

pageContextPageContext);

exceptionThrowable);

requestHttpServletRequest);

responseHttpServletResponse);

applicationServletContext);

Session     HttpSession)。

--------------------------------------------------------------------

pageContext对象

    作用域:当前页面,只能在当前访问页面使用或获取属性

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'index.jsp' starting page</title>
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->
  </head>
  
  <body>
	<!-- 设置属性 -->
	<% 	pageContext.setAttribute("name", "englishTeacher"); 
		pageContext.setAttribute("birthday", new Date());
	%>
	
	<!-- 获取属性 -->
	<%
		String name = (String)pageContext.getAttribute("name");
		Date birthday = (Date) pageContext.getAttribute("birthday");
	%>	
	<!-- 打印属性 -->
	<%=name %>
	<%=birthday %>
  </body>
</html>

request作用域:

在当前请求范围内有效,服务器跳转也算同一次请求,同样有效

代码:

  <body>
	<!-- 设置属性 -->
	<% 	request.setAttribute("name", "englishTeacher"); 
		request.setAttribute("birthday", new Date());
	%>
	
	<!-- 获取属性 -->
	<%
		String name = (String)request.getAttribute("name");
		Date birthday = (Date) request.getAttribute("birthday");
	%>	
	<!-- 打印属性 -->
	<h1><%=name %></h1>
	<h1><%=birthday %></h1>
	<!-- 跳转代码 -->
	<jsp:forward page="/success.jsp"></jsp:forward>
  </body>

跳转之后的success.jsp的代码:

<body>
	
	<!-- 获取属性 -->
	<%
		String name = (String)request.getAttribute("name");
		Date birthday = (Date) request.getAttribute("birthday");
	%>	
	<!-- 打印属性 -->
	<h1><%=name %></h1>
	<h1><%=birthday %></h1>
	<h2>success.jsp</h2>
	
  </body>

session对象作用域:

在一次会话中有效,既:只要浏览器窗口不关闭 就能获取到session

即使一个浏览器开多个代码都可以,但是一旦浏览器关闭就over....

代码同上:略

application作用域

生命周期随同服务器的开闭。。。既在整个服务器的运行期,。


只要服务器开着,就可以获取到

代码:略  同上