Jsp的四大域对象

Jsp的四大域对象

根据作用范围从小到大依次为:pageContext->request->session->application
pageContext:
作用域仅限于当前页面对象,可以近似于理解为java的this对象,离开当前JSP页面(无论是redirect还是forward),则pageContext中的所有属性值就会丢失。
request:
作用域是同一个请求之内,在页面跳转时,如果通过forward方式跳转,则forward目标页面仍然可以拿到request中的属性值。如果通过redirect方式进行页面跳转,由于redirect相当于重新发出的请求,此种场景下,request中的属性值会丢失。
session:
session的作用域是在一个会话的生命周期内,会话失效,则session中的数据也随之丢失。
application:
作用域是最大的,只要服务器不停止,则application对象就一直存在,并且为所有会话所共享。

域对象都包含属性:属性的作用范围同上。

Object getAttribute(String name) 
Returns the value of the named attribute as an Object, or null if no attribute of the given name exists.
 
Enumeration<String> getAttributeNames() 
Returns an Enumeration containing the names of the attributes available to this request. 

void removeAttribute(String name) 
Removes an attribute from this request. 

void setAttribute(String name, Object o) 
Stores an attribute in this request. 

请求重定向与请求转发

forward和sendRedirect的本质区别是,forward只向服务器请求一次(地址栏是首次发送请求的地址),而sendRedirect是请求两次(地址栏为最后响应的地址)。

所以在request对象的作用域对于forward是有效的,但是对于sendRedirect是无效的。

转发 forward

RequestDispatch接口,有forward方法,而RequestDispatch接口可以通过
request.getRequestDispatcher("/attribute.jsp").forward(request, response);
只能转发到当前web-app的范围内应用。
如果转发的网址以/开头,则代表相对当前web-app的根目录。

重定向 sendRedirect

response.sendRedirect("/FirstWeb/attribute.jsp");
可以转到所有的网址。
如果重定向网址中以/开头,则代表相对当前网站的根目录。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值