jsp 内置 对象 属性

+-------------------+------------------------------------------------------------------------------+-------------------------+
|内置对象               |                                        类型                                                      |         作用域               |
+-------------------+------------------------------------------------------------------------------+-------------------------+
|request               |         javax.servlet.http.HttpServletRequest                                |        request            |
+-------------------+-----------------------------------------------------------------------------+--------------------------+
|response            |          javax.servlet.http.HttpServletResponse                            |        page                 |
+-------------------+----------------------------------------------------------------------------+--------------------------+
|pageContext       |            javax.servlet.jsp.PageContext                                        |        page                  |
+-------------------+----------------------------------------------------------------------------+--------------------------+
|session               |            javax.servlet.http.HttpSession                                       |        session             |
+-------------------+----------------------------------------------------------------------------+--------------------------+
|application          |            javax.servlet.ServletContext                                          |        application        |
+------------------+------------------------------------------------------------------------------+-------------------------+
|out                     |            javax.servlet.jsp.JspWriter                                              |        page                 |
+------------------+------------------------------------------------------------------------------+-------------------------+
|config                 |            javax.servlet.ServletConfig                                              |        page                |
+------------------+------------------------------------------------------------------------------+-------------------------+
|page                  |            java.lang.Object                                                               |        page                |
+-------------------+-----------------------------------------------------------------------------+-------------------------+
|exception           |            java.lang.Throwable                                                        |        page                 |
+------------------+------------------------------------------------------------------------------+--------------------------+

-在JSP中提供了四种属性保存范围:
-在一个页面范围内:page
-在一次服务器请求范围内:request
-在一次会话范围内: session
-在一次应用服务器范围内: application


===================
page范围:
===================
在JSP中设置一个页的属性范围必须通过pageContext容器完成.
a.jsp设置属性,同页可以取得属性, 当a.jsp forward 到 b.jsp后,b.jsp无法取得a.jsp设置的page属性
设置属性方法
pageContext.setAttribute("name","zhaoya");
取得属性方法
String name=(String)pageContext.getAttribute("name");

pageContext属性范围,是最为重要的jsp属性之一,但是如果使用纯粹的jsp代码开发,则此属性显现不出用处。只有在structs,WebWork中才能显现作用


======================
request范围:
======================
将属性保存在一次请求之内.必须使用服务器端跳转。

a.jsp中设置属性,同页可以取得属性。
jsp:forward 到 b.jsp ,可以取得属性 ,继续 jsp:forward 到 c.jsp 依然可以取得属性
但是直接的超链跳转不能取得属性
request.setAttribute("name","zhaoya");
String name=(String)request.getAttribute("name");

应用到:MVC、structs、WebWork。

====================
session范围:
====================
只保留一个用户的信息。
只要设置,不管什么跳转都可以取得属性。但新开窗口中不能取得值。
与session有关的任何打开的页面都可取得session,用于验证用户是否登陆。
session.setAttribute("name","zhaoya");
String name=(String)session.getAttribute("name");

===================
application范围:
===================
保存在服务器端,所有用户都可以取得此信息,此信息在整个服务器上被保留。
application.setAttribute("name","zhaoya"); //设置一次,所有窗口都可取得属性
String name=(String)application.getAttribute("name");
application的资源释放,只能重新启动服务器


application、session、request 都需要跨多页
属性保存是有内存开销的
设置过多application或session保存过多的对象,会使服务器性能降低。

因此能使用request就不要使用session,能使用session的就不要使用application。

application应用:在线人员统计、在线人员名单列表

强调一个重要概念:
pageContext->默认情况下表示一个页面的保存范围
pageContext对象的属性中
setAttribute的第二种方法:
setAttribute(String name,Object value,int scope)
scope可以定义范围
说明四种属性范围都是配置pageContext完成的.

设置可以通过以下方式,实现四种属性范围:
pageContext.setAttribute("name","zhaoya",PAGE_SCOPE);
pageContext.setAttribute("name","zhaoya",REQUEST_SCOPE);
pageContext.setAttribute("name","zhaoya",SESSION_SCOPE);
pageContext.setAttribute("name","zhaoya",APPLICATION_SCOPE);

与上面四种属性范围设置作用相同

总结:
四种属性范围都是依靠pageContext展开的,但是在开发中,往往使用session、request范围最多
四种范围是整个J2EE WEB端开发必须深刻记住的概念
包括设置属性和取得属性的参数范围,返回值类型

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值