004_Jsp九大内置对象

一. Jsp的9大内置对象

1. 所谓内置对象, 就是在jsp页面中不用创建, 可以直接使用的对象。

2. Jsp的9大内置对象如下:

2.1. javax.servlet.http.HttpServletRequest request

2.2. javax.servlet.http.HttpServletResponse response

2.3. javax.servlet.jsp.PageContext pageContext;

2.4. javax.servlet.http.HttpSession session;

2.5. java.lang.Throwable exception =

org.apache.jasper.runtime.JspRuntimeLibrary.getThrowable(request);

2.6. javax.servlet.ServletContext application;

2.7. javax.servlet.ServletConfig config;

2.8. javax.servlet.jsp.JspWriter out = null;

2.9. java.lang.Object page = this;

3. 在Jsp代码里, Alt+/提示, 会显示内置对象, 下面这个没有exception这个内置对象

4. 只有在isErrorPage为true的时候, 才会有exception这个内置对象

二. Jsp的4个是作用域对象

1. Jsp的4个是作用域对象如下:

1.1. javax.servlet.jsp.PageContext pageContext;

1.2. javax.servlet.http.HttpServletRequest request

1.3. javax.servlet.http.HttpSession session;

1.4. javax.servlet.ServletContext application;

2. 作用域对象可以存值和取值, 它们的取值范围有限定。

3. 作用域范围大小: pageContext-->request-->session-->application。

4. 新建一个名称为Jsp9InnerObject的Web工程

5. 在WebContent下新建一个index.html

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isErrorPage="true"%>

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8" />
		<title>同一页面获取Jsp的4个作用域的值</title>
	</head>
	<body>
		<%
			pageContext.setAttribute("pageContext", "我是pageContext内置对象");
			request.setAttribute("request", "我是request内置对象");
			session.setAttribute("session", "我是session内置对象");
			application.setAttribute("application", "我是application内置对象");
		%>
		
		<%=pageContext.getAttribute("pageContext") %><br/>
		<%=request.getAttribute("request") %><br/>
		<%=session.getAttribute("session") %><br/>
		<%=application.getAttribute("application") %><br/>
	</body>
</html>

6. 部署运行, 同一页面4个值都有

7. 新建一个forward.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8" />
		<title>一次请求获取Jsp的4个作用域的值</title>
	</head>
	<body>
		<%=pageContext.getAttribute("pageContext") %><br/>
		<%=request.getAttribute("request") %><br/>
		<%=session.getAttribute("session") %><br/>
		<%=application.getAttribute("application") %><br/>
	</body>
</html>

8. 修改index.jsp, 然服务器帮我们找到forward.jsp

9. 部署运行, pageContext的值为null

10. 新建一个sendRedirect.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8" />
		<title>二次请求获取Jsp的4个作用域的值</title>
	</head>
	<body>
		<%=pageContext.getAttribute("pageContext") %><br/>
		<%=request.getAttribute("request") %><br/>
		<%=session.getAttribute("session") %><br/>
		<%=application.getAttribute("application") %><br/>
	</body>
</html>

11. 修改index.jsp, 让浏览器发送二次请求找到sendRedirect.jsp

12. 部署运行, pageContext和request的值为null

13. 关闭浏览器, 再次请求forward.jsp, pageContext、request和session的值为null

14. pageContext作用域仅限于当前的页面。

15. request作用域仅限于一次请求。

16. session作用域限于一次会话(打开浏览器访问到关闭浏览器是一次会话)。

17. application整个工程都可以访问, 服务器关闭后就不能访问了。

18. pageContext还可以获取到其他八个内置对象:

三. out对象和response对象

1. out对象向页面输出内容

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8" />
		<title>out对象</title>
	</head>
	<body>
		<%out.write("这是使用out对象输出的内容");%>
	</body>
</html>

2. response对象向页面输出内容

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8" />
		<title>response对象</title>
	</head>
	<body>
		<%response.getWriter().write("这是使用response对象输出的内容");%>
	</body>
</html>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值