大家好,欢迎来到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