JSP九大内置对象

一、JSP内置对象

  1. 输入输出对象:out对象、response对象、request对象
  2. 通信控制对象:pageContext对象、session对象、application对象
  3. Servlet 对象: page对象、config对象
  4. 错误处理对象:exception对象
对象类型作用作用域
outjavax.servlet.jsp.jspWriter页面输出Page
responsejavax.servlet.http.HttpServletResponse服务器向客户端的回应信息Page
requestjavax.servlet.http.HttpServletrequest获取用户的请求信息Request
PageContextjavax.servlet.jsp.PageContextJSP的页面容器page
sessionjavax.servlet.http.HttpSession用来保存每一个用户的信息Session
applicationjavax.servlet.ServletContext表示所有用户的共享信息Application
configjavax.servlet.ServletConfig服务器配置信息,可以取得初始化参数Page
pagejava.lang.object页面对象Page
exceptionjava.lang.Throwable例外对象Page

二、四个作用域
page(pageContext): 只能在一个页面中保存属性。 跳转之后无效。
request: 只能在一次请求中有效,服务器跳转之后有效。 但客户端跳则无效。
session:在一次会话中有效。服务器、客户端跳转都有效。 网页关闭重新打开则无效
application:在服务器上保存,所有用户都可使用。 重启服务器后则无效
*注意:设置过多的application属性范围会影响服务器性能。 *

什么是作用域

当我们访问index.jsp的时候,分别对pageContext, request, session, application
四个作用域中的变量进行累加。累加完成后就从index.jsp执行forward跳转到test.jsp。在test.jsp里再进行一次累加,然后将这四个变量显示出来。

从显示的结果来看,我们可以直观的得出结论:

page里的变量没法从index.jsp传递到test.jsp。只要页面跳转,它就不见了。

request里的变量可以跨越forward前后的两页。但是只要刷新页面,它就重新累加。

session里的变量一直在累加,但关闭浏览器后重启浏览器访问,session里的变量就会重新累加。

application里的变量一直在累加,除非重启tomcat,否则会一直累加。

*结论:故而作用域规定的是变量的有效期限。*

1、把变量放到pageContext里,则他的作用域是page,有效范围只在当前jsp页面里。
从把变量放到pageContext开始,到jsp页面结束。

2、把变量放到request里,则它的作用域是request,有效范围是当前请求周期。

请求周期:从http请求发起,到服务器处理结束,返回响应的整个过程。在这个过程中可能使用forward的方式跳转了多个jsp页面,在这些页面里都可使用该变量。

3、把变量放到session里,则它的作用域是session,有效范围是当前会话。

当前会话:从用户打开浏览器开始,到用户关闭浏览器这中间的过程。这个过程可能包含多个请求响应。也就是说,只要不关浏览器,服务器就有办法知道这些请求是一个人发起的,整个过程被称为一个会话(session),而放到会话中的变量,就可以在当前会话的所有请求里使用。

4、把变量放到application里,则它的作用域是application,有效范围是整个应用。

整个应用是指从应用启动,到应用结束。

5、application作用域里的变量,存活时间最长,如果不进行手工删除,就可以一直使用。
与上述三个不同的是,application里的变量可以被所有用户共用。如果用户甲的操作修改了application中的变量,用户乙访问时得到的是修改后的值。其他作用域中是不能被共用的,page, request,session都是完全隔离的,无论如何修改都不会影响其他用户的数据。

6、
使用public Object getAttribute(String name)获得变量值。
例子:

Integer countPage = (Integer) pageContext.getAttribute("countPage");  

7、使用 public void setAttribute (String name, Object value)将变量值保存到相应作用域。
例子:


request.setAttribute("curruser", curruser);
session.setAttribute("curruser", curruser);

说明:
name:要设置的属性名
value:要设置的属性值

三、详解

1、 PageContext和request对象

2、response、session对象

3、application、config对象

4、out、exception、page对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值