问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

jsp九大内置对象和作用域分别有哪些

发布网友 发布时间:2022-04-29 22:25

我来回答

2个回答

懂视网 时间:2022-04-20 12:25

JSP内置对象作用域

application:在所有应用程序中有效,即只要这个网站运行着,这个作用域就有效,这个指的程序的运行过程。

session:在当前会话中有效,即从浏览器访问服务器开始,这个指的是用户的一个访问过程,即这次会话的开始到结束

request:在当前请求中有效,负责多个servlet之间的信息共享,即将信息放入到request中,在整个请求阶段都是有效的,即用户访问的这个阶段都可以获取到这个数据

page:在当前页面有效,即在一个jsp页面上是有效的。

首先要声明一点,所谓"作用域"就是"信息共享的范围",也就是说一个信息能够在多大的范围内有效。

Web交互的最基本单位为HTTP请求。每个用户从进入网站到离开网站这段过程称为一个HTTP会话,一个服务器的运行过程中会有多个用户访问,就是多个HTTP会话。作用域解释如下。

application:服务器启动到停止这段时间。

session:HTTP会话开始到结束这段时间。

request:HTTP请求开始到结束这段时间。

page:当前页面从打开到关闭这段时间。

1. application 作用域

application作用域就是服务器启动到关闭的整段时间,在这个作用域内设置的信息可以被所有应用程序使用。application作用域上的信息传递是通过ServletContext实现的,它提供的主要方法如下所示:

Object getAttribute(String name):从application中获取信息。

void setAttribute(String name, Object value):向application作用域中设置信息。

2. session作用域

session作用域比较容易理解,同一浏览器对服务器进行多次访问,在这多次访问之间传递信息,就是session作用域的体现。session是通过HttpSession接口实现的,它提供的主要方法如下所示。

Object HttpSession.getAttribute(String name):从session中获取信息。

void HttpSession.setAttribute(String name, Object value):向session中保存信息。

HttpSession HttpServletRequest.getSession():获取当前请求所在的session的对象。

session的开始时刻比较容易判断,它从浏览器发出第一个HTTP请求即可认为会话开始。但结束时刻就不好判断了,因为浏览器关闭时并不会通知服务器,所以只能通过如下这种方法判断:如果一定的时间内客户端没有反应,则认为会话结束。Tomcat的默认值为120分钟,但这个值也可以通过HttpSession的setMaxInactiveInterval(int interval)方法来设置,如果想主动让会话结束,例如用户单击"注销"按钮的时候,可以使用 HttpSession 的 invalidate()方法,用于强制结束当前session。

3. request作用域

一个HTTP请求的处理可能需要多个Servlet合作,而这几个Servlet之间可以通过某种方式传递信息,但这个信息在请求结束后就无效了。

Servlet之间的信息共享是通过HttpServletRequest接口的两个方法来实现的。

void setAttribute(String name, Object value):将对象value以name为名称保存到request作用域中。

Object getAttribute(String name):从request作用域中取得指定名字的信息。

JSP中的doGet()、doPost()方法的第一个参数就是HttpServletRequest对象,使用这个对象的 setAttribute()方法即可传递信息。

那么在设置好信息之后,要通过何种方式将信息传给其他的Servlet呢?这就要用到RequestDispatcher接口的forward()方法,通过它将请求转发给其他Servlet。

RequestDispatcher ServletContext.getRequestDispatcher(String path):取得Dispatcher以便转发。path为转发的目的Servlet。

void RequestDispatcher.forward(ServletRequest request, ServletResponse response):将request和response转发。

因此,只需要在当前Servlet中先通过setAttribute()方法设置相应的属性,然后使用forward()方法进行跳转,最后在跳转到的Servlet中通过使用getAttribute()方法即可实现信息传递。

PHP的程序员可能不太好理解这一段,因为PHP中没有转发的概念,一个请求只能由一个PHP文件来处理,所以PHP中根本没有request作用域的概念。而Servlet则不同,请求可以在应用程序中任意转发,所以用request作用域在不同Servlet之间传递信息。

注意两点:

转发不是重定向,转发是在Web应用内部进行的。PHP支持重定向但没有转发。

转发对浏览器是透明的,也就是说,无论在服务器上如何转发,浏览器地址栏中显示的仍然是最初那个Servlet的地址。重定向的浏览器地址是变化的。

4. page作用域

page对象的作用范围仅限于用户请求的当前页面,对于page对象的引用将在响应返回给客户端之后被释放,或者在请求被转发到其他地方后被释放。对page对象的引用通常存储在pageContext对象中。

以上介绍的作用范围越来越小,request和page的生命周期都是短暂的,它们之间的区别:一个request可以包含多个page页(include,forward及filter)。

热心网友 时间:2022-04-20 09:33

Jsp九大内置对象和四种作用域
1.request
request对象是javax.servlet.httpServletRequest类型的对象。该对象代表了客户端的请求信息,主要用于接受通过HTTP协议传送到服务器的数据。(包括头信息、系统信息、请求方式以及请求参数等)。通俗来讲就是客户端的请求信息被封装在Request对象中,并传给服务器。
2.response
response代表的是对客户端的响应,主要是将JSP容器处理过的对象传回到客户端。但在JSP页面中很少直接用到。
3.session
从客户端到服务器的一次会话,从一个客户打开浏览器并连接到服务器开始,直到客户端与服务器断开连接为止。
4.application
application服务器启动后就产生application对象,直到服务器结束。实现了用户间数据的共享,可存放全局变量。与session不同的是,所有客户的application对象都是同一个,在任何地方对此对象属性的操作,都将影响到其他用户对此的访问。它是ServletContext类的实例。
5.out
用于在WEB浏览器内输出信息,并且管理应用服务器上的输出缓冲区。
6.page
代表JSP本身,只有在JSP页面内才是合法的。类似于Java编程中的this指针。
7.config
主要作用是取的服务器的配置信息。通过 pageContext对象的 getServletConfig() 方法可以获取一个config对象。当一个Servlet 初始化时,容器把某些信息通过 config对象传递给这个 Servlet。 开发者可以在web.xml 文件中为应用程序环境中的Servlet程序和JSP页面提供初始化参数。
8.exception
Java.lang.Throwable的实例。当一个页面在运行过程中发生了例外,就产生这个对象。如果一个JSP页面要应用此对象,就必须把isErrorPage设为true,否则无法编译。
9.pageContext
pageContext对象的作用是取的任何范围的参数,通过它可以获取JSP页面的out、request、response、session、application等对象。pageContext对象的创建和初始化都是由容器来完成,在JSP页面中可以直接使用 pageContext对象。
四种作用域:
page -> 页面级别,显然只有在一个页面内可用。
request -> 请求级别 服务器跳转,一次请求之后消失。
session -> 会话级别 客户端跳转(服务器跳转),与浏览器有关,ie是在重新打开ie时才会不同。
application = 应用级别,当重启服务器时才会消失
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
kmose正确使用方法? 单位高温防护欠缺致员工中暑如何对待 狗狗为什么爱看视频 360浏览器怎么设置倍速播放 ...先讲女主的灵魂飘荡了一段时间,然后重生,请问是那本? 拯救者散热器怎么开 电脑如何一键还原系统电脑一键还原怎么操作 神舟笔记本电脑怎么重新设置神舟战神bios恢复出厂设置 神舟电脑恢复出厂设置神舟战神怎么恢复原厂系统 水泥楼梯如何铺木楼梯 欠钱5万,咋还啊,压力大,愁的我每天晚上睡不着欠钱5万,咋还啊,压力大,愁的我每天晚上睡不着? java九大内置对象作用域最广的是? jsp主要内置对象有哪些,作用是什么 去探望手术后的病人该买些什么或送点什么? 微信对方不删你该怎么办 给动手术的朋友送什么礼品 别人不删我微信但是发消息不回复是什么原因? 在追一个女孩,惹她生气了,她说以后再也不回我信息了,没有删我微信。我该怎么办? 手术后买什么礼品探望? 别人没删我我设置了微信把她删了拉黑了对方还是加的进来有什么办法可以解决? 微信中对方不删除自己,自己是不是就无法彻底删除他,还能重新添加回来呢? 别人不删我微信,也不和我聊天,怎么回事? 微信好友好了之后对方不删老是烦我怎么办 天珠有多少种,天珠种类有哪些 虎牙天珠不是至纯的值多少钱 这虎牙天珠是真的吗 哪个种类虎牙天珠价格最高 问一下我这颗虎牙天珠,有多少年,是不是至纯,值多少钱? 怎么和客户沟通,成为朋友式的合作关系。刚进入销售一头雾水 两个人在一起做销售应该怎么做 欠债压力真的好大,晚上睡不着,白天也集中不了精神工作,我该怎么办? java web 九大内置对象和四个作用域之间的关系是? 我现在欠了很多的外债,不知道该怎么办了?每天晚上都睡不着觉。 jsp内置对象有几种,分别是什么? 欠债100多怎么办??每天睡不着、等死吗?怎么搞 javaweb 九大内置对象和四大对象域有什麽关系 欠了好多债务,半夜都睡不着呀,我该如何是好呀?? 关于JSP九大内置对象的详细信息 欠10万外债, 天天晚上睡不着,天天胡思乱想,我觉得我阴郁征了。??? 我今年25岁,我欠钱60万,怎么办,好难受啊……每天睡不着,想死的心都有 1.jsp有哪些内置对象?作用分别是什么? 网贷还不上,逾期了。天天想着借钱还款,睡觉都睡不着怎么办 jsp九大内置对象哪个作用范围最大 别人欠我钱,我睡不着怎么办? Servlet四大域对象、Jsp四大隐式对象、Jsp九大内置对象、十一大EL隐式对象区别和联系 老公欠债他不急,我急的成夜的睡不着,是我有毛病吗 servlet中如何的到像jsp中的九个内置对象呢 jsp九大内置对象中page与pageContext什么关系(要详细说明,不糊弄人) 欠钱的压力好大。睡不着觉,不愿意吃饭。哎 jsp九大内置对象中page与pageContext是什么关系?