web开发需要知道的知识(四)四大对象域

Java web 四大作用域和九大对象

四个作用域
1.ServletContext(Application)

1、 生命周期
当Web应用被加载进容器时创建代表整个web应用的ServletContext对象,当服务器关闭或Web应用被移除时,ServletContext对象跟着销毁。
2、作用范围
整个Web应用(应用范围)。
3、作用:
①在不同Servlet 之间转发

this.getServletContext().getRequestDispatcher("/servlet/Demo10Servlet").forward(request, response); 

方法执行结束,service就会返回到服务器,再有服务器去调用目标servlet,其中request会重新创建,并将之前的request的数据拷贝进去。

②取资源文件。
由于相对路径默认相对的是java虚拟机启动的目录,所以我们直接写相对路径将会是相对于tomcat/bin目录,所以是拿不到资源的。如果写成绝对路径,当项目发布到其他环境时,绝对路径就错了。

为了解决这个问题ServletContext提供了:this.getServletContext(). getRealPath("/1.properties"),给进一个资源的虚拟路径,将会返回该资源在当前环境下的真实路径。this.getServletContext().getResourceAsStream("/1.properties"),给一个资源的虚拟路径返回到该资源真实路径的流。

当在非servlet下获取资源文件时,就没有ServletContext对象用了,此时只能用类加载器
classLoader.getResourceAsStream("…/…/1.properties"),此方法利用类加载器直接将资源加载到内存中,有更新延迟的问题,以及如果文件太大,占用内存过大。classLoader.getResource("…/1.properties").getPath(),直接返回资源的真实路径,没有更新延迟的问题。

2.HttpSession 域

HttpSession 在服务器中,为浏览器创建独一无二的内存空间,在其中保存会话相关的信息。
1、生命周期:
(会话范围)在第一次调用 request.getSession() 方法时,服务器会检查是否已经有对应的session,如果没有就在内存中创建一个session并返回。 当一段时间内session没有被使用(默认为30分钟),则服务器会销毁该session。 如果服务器非正常关闭(强行关闭),没有到期的session也会跟着销毁。 如果调用session提供的invalidate() ,可以立即销毁session。

注意:服务器正常关闭,再启动,Session对象会进行钝化和活化操作。同时如果服务器钝化的时间在session 默认销毁时间之内,则活化后session还是存在的。否则Session不存在。 如果JavaBean 数据在session钝化时,没有实现Serializable 则当Session活化时,会消失。

2、作用范围:一次会话。

3.ServletRequest 域

1、生命周期:在service 方法调用前由服务器创建,传入service方法。整个请求结束,request生命结束。

2、作用范围:(请求范围)整个请求链(请求转发也存在)。

3、作用: 在整个请求链中共享数据。最常用到:在Servlet 中处理好的数据交给Jsp显示,此时参数就可以放置在Request域中带过去。

4.page域

page对象即this,代表JSP本身,更准确的说它代表JSP被翻译后的Servlet,因此他可以调用Servlet类所定义的方法。page对象的类型为javax.servlet.jsp.HttpJspPage。

九大对象

一 request对象
该对象封装了用户提交的信息,通过调用该对象相应的方法可以获取封装的信息, 即使用该对象可以获取用户提交信息。 客户端的请求参数都被封装到这个对象里面

二 response对象
对客户的请求做出动态的响应,向客户端发送数据。

三 session对象
1.什么是session:session对象是一个JSP内置对象,它在第一个JSP页面被装载时自动创建,完成会话期管理。
从一个客户打开浏览器并连接到服务器开始,到客户关闭浏览器离开这个服务器结束,被称为一个会话。当一个客户访问一个服务器时,可能会在这个服务器的几个页面之间反复连接,反复刷新一个页面,服务器应当通过某种办法知道这是同一个客户,这就需要session对象。
2.session对象的ID:当一个客户首次访问服务器上的一个JSP页面时,JSP引擎产生一个session对象,同时分配一个String类型的ID号,JSP引擎同时将这个ID号发送到客户端,存放在Cookie中,这样session对象和客户之间就建立了一一对应的关系。当客户再访问连接该服务器的其他页面时,不再分配给客户新的session对象,直到客户关闭浏览器后,服务器端该客户的session对象才取消,并且和客户的会话对应关系消失。当客户重新打开浏览器再连接到该服务器时,服务器为该客户再创建一个新的session对象。

四 aplication对象
1.什么是application:
服务器启动后就产生了这个application对象,当客户在所访问的网站的各个页面之间浏览时,这个application对象都是同一个,直到服务器关闭。但是与session不同的是,所有客户的application对象都是同一个,即所有客户共享这个内置的application对象。
2.application对象常用方法:
(1)public void setAttribute(String key,Object obj): 将参数Object指定的对象obj添加到application对象中,并为添加的对象指定一个索引关键字。
(2)public Object getAttribute(String key): 获取application对象中含有关键字的对象。

五 out对象
out 对象是一个输出流,用来向客户端输出数据。out对象用于各种数据的输出。

六 page对象
对应this关键字。JSP网页本身
page对象是当前页面转换后的Servlet类的实例。从转换后的Servlet类的代码中,可以看到这种关系:
Object page = this;
在JSP页面中,很少使用page对象。

七 config对象
javax.servlet. ServletConfig 的实例,该实例代表该JSP 的配置信息。常用的方法有getInitPararneter(String paramNarne) 及getInitPararneternarnes() 等方法。事实上, JSP 页面通常无须配置,也就不存在配置信息。因此,该对象更多地在Servlet 中有效。

八 exception 对象
该实例代表其他页面中的异常和错误。只有当页面是错误处理页面,即编译指令page 的isErrorPage 属性为true 时,该对象才可以使用。常用的方法有getMessageO和printStackTraceO等。

九 pageContext
javax.servlet.jsp.PageContext 的实例,对象直译时可以称作“页面上下文”对象,代表的是当前页面运行的一些属性,通过此对象可以拿到其他8大对象,使用该对象可以访问页面中的共享数据。常用的方法有getServletContextO和getServletConfigO等。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值