除respect,response,application,out,session,JSP还提供了pageContext,config,page和exception对象
获取会话范围的pageContext对象、
通过pageContext对象可以获取JSP页面的request,response,session,application,exception等对象
pageContext对象的创建和初始化都是由容器来完成,JSP页面可以直接使用pageContext对象
pageContext对象的常用方法
- forward(java.lang.String.relativeUrlpath) 把页面转到另一个页面
- getAttribute(String name) 获取参数值
- getAttributeNamesInScope(int scope) 获取某范围的参数名称的集合,返回值为枚举对象
- getException() 返回exception对象
- getRequest()
- getResponse()
- getSession()
- getOut()
- getApplication()
- setAttribute() 为指定范围内的属性设置属性值
- removeAttribute() 删除指定范围内的制定属性
pageContext对象在实际JSP开发过程中使用很少
读取web.xml配置信息的config对象
config对象主要用于读取服务器的配置信息
ps:通过pageContext对象的getServletConfig()方法可以获取一个config对象
config对象的常用方法
- getServletContext() 获取Servlet上下文
- getServletName() 获取Servlet服务器名
- getInitParameter() 获取服务器所有初始参数名称,返回值为枚举对象
- getInitParameterNames() 获取服务器中name参数的初始值
应答或请求的page对象
page对象代表JSP本身,只有在JSP页面内才是合法的(可以看作是this关键字的别名)
page对象的常用方法
- getClass() 返回当前Object的类
- hashCode() 返回该Object的哈希代码
- toString() 把该Object类转换成字符串
- equals(Object o) 比较该对象和指定的对象是否相等
实例代码:
<%! Object object; // 声明一个Object对象 %>
<ul>
<li>getClass(): <%=page.getClass()%></li>
<li>hashCode(): <%=page.hashCode()%></li>
<li>toString(): <%=page.toString()%></li>
<li>与Object对象比较: <%=page.equals(object)%></li>
<li>与this对象比较: <%=page.equals(this)%></li>
</ul>
运行结果:
getClass(): class org.apache.jsp.index_jsp
hashCode(): 442440510
toString(): org.apache.jsp.index_jsp@1a5f1b3e
与Object对象比较: false
与this对象比较: true
获取异常信息的Exception对象
exception对象用来处理JSP文件执行时发生的所有错误和异常,只有page指令中设置isErrorPage属性值为true的页面中才可以被使用
在JSP页面中出现没有捕捉到的异常(try…catch没有捕捉到),就会生成exception对象,并把其传送到page指令设定的错误页面中,然后在错误页面中处理exception对象
exception对象常用方法
- getMessage() 返回exception对象的异常错误字符串
- getLocalizedmessage() 返回本地化的错误异常
- toSting() 返回关于异常错误的简单信息描述
- fillInStackTrace() 重写异常错误的栈执行轨迹
代码实例:
// index.jsp代码
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8" errorPage="error.jsp" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>index</title>
</head>
<body>
<%
request.setAttribute("price", "12.5 元");
float price = Float.parseFloat(request.getAttribute("price").toString());
%>
</body>
</html>
// error.jsp代码
<%@ page contentType="text/html;charset=UTF-8" language="java" isErrorPage="true" %>
<html>
<head>
<title>error</title>
</head>
<body>
Error: <%=exception.getMessage()%>
</body>
</html>
运行结果:
Error: For input string: "12.5 元"