JSP的内置对象详解

JSP的内置对象详解本文详细介绍了 JSP 的 9 个内置对象 重点讲解了 out page pageContext request response session 和 application 对象的用法 原理及作用范围

大家好,欢迎来到IT知识分享网。

JSP内置对象


文章目录

  • JSP内置对象
  • 前言
  • 一、out对象
    • 1.原理
    • 2. 向客户端输出数据
  • 二、page对象
    • 1.范围
  • 三、pageContext 对象
    • 1.获取内置对象
    • 2.存储数据
  • 四、request对象
    • 1.创建及获取请求
    • 2.范围
  • 五、response 对象
    • 1.重定向网页
    • 2.处理HTTP文件头
  • 六、session对象
    • 1.创建及获取客户的会话
    • 2.从会话中移动指定的绑定对象
    • 3.范围
  • 七、application对象
    • 1.创建及获取应用程序的属性
    • 2.范围
  • 总结


前言

什么是域对象:
在JSP页面中,有一些对象需要频繁使用,如果每次都重新创建这些对象则会十分麻烦。为了简化Web应用程序的开发,JSP规范中提供了9个隐式(内置对象),它们是JSP默认创建的,可以直接在JSP页面中使用,这9个内置对象的名称、类型、功能、范围如下图所示哦。本篇文章主要介绍前7个。

在这里插入图片描述

一、out对象

在JSP页面中,经常需要向客户端发送文本内容,这时可以使用out对象来实现。

代码如下(示例):

 out.print("大家好呀!!!"); 

1.原理

代码如下(示例):

 out.println("你好1"+"<br>"); response.getWriter().println("我在后面"); 

2. 向客户端输出数据

 <% out.print("啊对对对!"); %> <%="啊对对对!" %> 

2.println()方法
println()方法也是用于向客户端浏览器输出信息,与print()方法不同的是,该方法在输出内容后,还输出一个换行符。
通过println()方法向页面中输出数字的代码如下:

 <% out.println(); out.println("燕子不要走!"); %> 

说明
在使用print()方法和println()方法在页面中输出信息时,并不能很好地区分出两者的区别,因为在使用println()方法向页面中输出的换行符显示在页面中时,并不能看到其后面的文字真的换行了,例如上面的两行代码在运行后,将显示如图所示的效果。
在这里插入图片描述

二、page对象

应答或请求的page对象,page对象代表JSP本身,只有在JSP页面内才是合法的。page对象本质上是包含当前Servlet接口引用的变量,可以看作是this关键字的别名。page对象的常用方法如下表所示。

方法 功能
getClass() 返回当前Object的类
hashCode() 返回该Object的哈希代码
toString() 把该Object类转换成字符串
equals(Object o()) 比较该对象和指定对象是否相等

代码如下(示例):

<%!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> 

在这里插入图片描述

1.范围

本页面取得,服务器跳转后无效。所设置的属性仅在当前页面内有效。

三、pageContext 对象

1.获取内置对象

在JSP页面中,使用pageContext对象可以获取JSP的其他8个内置对象。它代表当前JSP页面的运行环境,并提供了一系列用于获取其他内置对象的方法。pageContext对象获取内置对象的方法如下表。

方法 功能
JspWriter getOut() 用于获取out内置对象
Object getPage() 用于获取page内置对象
ServletRequest getRequest() 用于获取request内置对象
ServleResponse getResponse() 用于获取response内置对象
HttpSession getSession() 用于获取session内置对象
Exception getException() 用于获取exception内置对象
ServletConfig getServletConfig() 用于获取appliction内置对象

2.存储数据

这样,当传递一个pageContext()对象后,就可以通过这些方法轻松的获取到其他内置对象。你以为就只有这些功能吗,no!pageContext()对象还提供了存储数据的功能。pageContext()对象存储数据是通过操作属性来实现的,下表是其一系列方法。

方法 功能
setAttribute(String name,Object value, int scope) 用于设置pageContext对象的属性
getAttribute(String name,Object value, int scope) 用于获取pageContext对象的属性
removeAttribute(String name,int scope) 删除指定范围内名称为name的属性
removeAttribute(String name) 删除所有范围内名称为name的属性
findAttribute(String name) 从4个域对象中查找名称为name的属性

四、request对象

request对象封装了由客户端生成的HTTP请求的所有细节,主要包括HTTP头信息、系统信息、请求方式和请求参数等。通过request对象提供的相应方法可以处理客户端浏览器提交的HTTP请求的各项参数。再进行请求转发时,需要把一些数据传递到转发后的页面进行处理。这时就需要使用request对象的setAttribute()方法将数据保存到request范围内的变量中。

1.创建及获取请求

request对象的setAttribute()方法的语法格式如下:

request.setAttribute(String name,Object object); 
request.getAttribute(String name); 

2.范围

五、response 对象

response对象用于响应客户请求,向客户端输出信息。它封装了JSP产生的响应,并发送到客户端以响应客户端的请求。请求的数据可以是各种数据类型,甚至是文件。response对象在JSP页面内有效。

1.重定向网页

 response.sendRedirect(String path); 

参数说明
path:用于指定目标路径,可以是相对路径,也可以是不同主机的其他URL地址。

代码如下(示例):

response.sendRedirect("login.jsp"); //重定向到login.jsp页面 response.sendRedirect("https://www.baidu.com/"); //重定向到百度页面 

2.处理HTTP文件头

1.设置页面自动刷新
通过设置HTTP头还可以实现页面的自动刷新。
例使网页每隔10秒自动刷新一次。

<% reponse.setHeader("refresh","10"); %> 

2.定时跳转网页
通过设置HTTP头还可以实现定时跳转网页的功能。
例使网页10秒后跳转到指定的网页。

<% reponse.setHeader("refresh","10,URL=login.jsp"); %> 

六、session对象

session在网络中被称为会话。实际上,一次会话的过程也可以理解为一个打电话的过程。通话从拿起电话或手机拨号开始,一直到挂断电话结束,在这个过程中,可以与对方聊很多话题,甚至重复的话题。一个会话也是这样,可以重复访问相同的Web页。由于HTTP协议是一种无状态协议,也就是当一个客户向服务器发出请求,服务器接收请求,并返回响应后,该连接就结束了,而服务器并不保存相关的信息。为了弥补这一缺点,HTTP协议提供了session。通过session可以在应用程序的Web页面间进行跳转时,保存用户的状态,使整个用户会话一直存在下去,直到关闭浏览器。

1.创建及获取客户的会话

通过session对象可以存储或读取客户相关的信息,如用户名或购物信息等,这可以通过session对象的setAttribute()方法和getAttribute()方法实现。下面分别进行介绍。

1.setAttribute()方法
该方法用于将信息保存在session范围内,其语法格式如下:

 session.setAttribute(String name, Object obj); 

参数说明:
name:用于指定作用域在session范围内的变量名。
obj:保存在session范围内的对象。
例将用户名“张三”保存到session范围内的username变量中,可以使用下面的代码:


 session.setAttribute("username", "张三"); 

2.getAttribute()方法
该方法用于获取保存在session范围内的信息,其语法格式如下:

 getAtttibute(String name) 
 session.getAttribute("username"); 

2.从会话中移动指定的绑定对象

对于存储在session会话中的对象,如果想将其从session会话中移除,可以使用session对象的removeAttribute()方法,该方法的语法格式如下:

 removeAttribute(String name) 

参数说明:
name:用于指定作用域在session范围内的变量名。一定要保证该变量在session范围内有效,否则将抛出异常。
将保存在session会话中的username对象移除的代码如下:

 <% session.removeAttribute("username"); %> 

3.范围

七、application对象

application对象用于保存所有应用程序中的公有数据。它在服务器启动时自动创建,在服务器停止时销毁。当application对象没有被销毁时,所有用户都可以共享该application对象。与session对象相比,application对象的生命周期更长,类似于系统的“全局变量”。

1.创建及获取应用程序的属性

与session对象相同,也可以在application对象中设置属性。与session对象不同的是,session只是在当前客户的会话范围内有效,当超过保存时间,session对象就被收回;而application对象在整个应用区域中都有效。application对象管理应用程序环境属性的方法分别介绍如下。

1.getAttributeNames()
获得所有application对象使用的属性名。
2.getAttribute(String name):从application对象中获取指定对象名。
3.setAttribute(String key, Object obj):使用指定名称和指定对象在application对象中进行关联。
4.removeAttribute(String name):从application对象中去掉指定名称的属性。



2.范围

总结

大家好啊

以上就是今天要讲的内容,本文仅仅简单介绍了内置对象的定义使用,希望能与大家一起努力加油呀~

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/130571.html

(0)
上一篇 2025-08-14 16:26
下一篇 2025-08-14 16:45

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信