javaEE JSP, 9大内置(隐式)对象, pageContext对象

JSP中的pageContext内置对象:页面的上下文对象
page对象(this)与pageContext对象不是一回事
1)pageContext是一个域对象
setAttribute(String name,Object obj)
getAttribute(String name)
removeAttrbute(String name)

pageContext可以向指定的其他域中存取数据
setAttribute(String name,Object obj,int scope)
getAttribute(String name,int scope)
removeAttrbute(String name,int scope)
findAttribute(String name)
---依次从pageContext域,request域,session域,application域中获取属性,在某个域中获取后将不再向后寻找

四大作用域的总结:
page域:当前jsp页面范围
request域:一次请求
session域:一次会话
application域:整个web应用

2)pageContext对象可以获得其他8大隐式对象
例如: pageContext.getRequest()
pageContext.getSession()


pageContext.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%
		request.setAttribute("name", "zhangsan");
		pageContext.setAttribute("name", "sunba"); // pageContext域存数据
		pageContext.setAttribute("name", "lisi", PageContext.REQUEST_SCOPE); //通过pageContext向request域存数据
		pageContext.setAttribute("name", "wangwu", PageContext.SESSION_SCOPE); // session域存数据
		pageContext.setAttribute("name", "tianqi", PageContext.APPLICATION_SCOPE); // servletContext域存数据 
	%>
	
	<%=request.getAttribute("name") %>
	<%=pageContext.getAttribute("name", PageContext.REQUEST_SCOPE)%>
	
	<!-- findAttribute()根据域作用范围的大小,从小到大找name的值 -->
	<!-- pageContext域<request域<session域<application域 -->
	<%=pageContext.findAttribute("name") %>
	
	<%
		pageContext.getRequest();  // 通过pageContext获取到其他8大隐式对象。 开发框架时使用
		pageContext.getOut();	
	%>
	
</body>
</html>


猜你喜欢

转载自blog.csdn.net/houyanhua1/article/details/80875765