JSP的9个内置对象,4个常用对象

 

JSP的内置对象(9个)是可以直接使用的。

内置对象真实的对象方法
requestHttpServletRequestsetAttribute() 、getAttribute()
responseHttpServletResponseaddCookie()、getWriter()
sessionHttpSessionsetAttribute()、getAttribute()
applicationServletContextsetAttribute()、getAttribute()
configServletConfiggetInitParameter()、getInitParameterNames()
exceptionThrowablegetMessage()
pageObject(不使用对象)
outJspWriterwrite()、print()
pageContextPageContextsetAttribute()、getAttribute()

前五个例子如下(request,response,session,application,config):

<%@ 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>
<h3>转发成功</h3>
<%
	request.getAttribute(name);
	response.addCookie(cookie);
	session.getAttribute(name);
	application.getAttribute(name);
	config.getInitParameter(name);
%>
</body>
</html>

 

主要提及下面四个对象(exception,page,out,pageContext): 

1.exception:

其实这个对象用的比较少了。需要在可能出错的页面属性设置errorPage的路径,然后另外在exception对象所在jsp文件属性设置isErrorPage为true。完事。

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" errorPage="/JSP/1.jsp"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
	int a = 10/0;
%>
</body>
</html>

————————————————————————————————————————————————————————————————————————
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" isErrorPage="true"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h3>你好,服务器正在维护</h3>
<%=exception.getMessage() %>
</body>
</html>

2.page

    基本上不用。当前页面对象,指的就是自己。类似Java中的this关键字。当然了,JSP文件翻译成Java文件以后page对象的值就变成了this。在哪里找到编译后的文件?tomcat——work——cataline

3.out

out隐式对象得到的是JspWriter对象。在输出过程中会需要再次转换成response.getwrite()得到的PrintWriter对象才能输出。因此会有一个输出快慢的问题。response.getwrite()明显更快!

 4.PageContext对象

PageContextx对象是一个域对象,还可以通过该对象获得其他8个对象。

1.可以向自己的域存东西

2.可以向其他的域存东西

                    * setAttribute(String name, Object value, int scope) 

                    * getAttribute(String name, int scope) 

<%@ 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>
<h4>向pageContext域存取东西</h4>
<%
	//下面两句等价
	pageContext.setAttribute("name", "page");
	pageContext.setAttribute("name", "page", pageContext.PAGE_SCOPE);
	//下面两句等价
	request.setAttribute("name", "request");
	pageContext.setAttribute("name", "request", pageContext.REQUEST_SCOPE);
	//类似的
	pageContext.setAttribute("name", "session", pageContext.SESSION_SCOPE);
	//ServletContext是application的真是对象
	pageContext.setAttribute("name", "pageContext", pageContext.APPLICATION_SCOPE);
%>
<%=pageContext.getAttribute("name",pageContext.PAGE_SCOPE) %>
<%=pageContext.getAttribute("name",pageContext.REQUEST_SCOPE) %>
<%=pageContext.getAttribute("name",pageContext.SESSION_SCOPE) %>
<%=pageContext.getAttribute("name",pageContext.APPLICATION_SCOPE) %>
</body>
</html>

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值