JSP 其他内置对象

本文深入探讨了JSP页面中的内置对象,包括pageContext、config、page和exception等,讲解了它们的功能、创建方式及常见用法,如forward页面跳转、getAttribute获取参数值等,同时介绍了config对象用于读取web.xml配置信息的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

除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 元"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值