JAVA Web application对象

全局应用程序对象application在Web服务器启动后产生,所有用户访问同一Web服务目录时共享,直到服务器关闭。它可以存储数据并访问应用程序初始化参数。此外,文章还总结了pageContext、request、session和application四大内置对象的范围和使用场景,强调选择对象时要考虑其作用范围和性能开销。
摘要由CSDN通过智能技术生成

全局应用程序对象application

  • 不同用户的sesion对象互不相同,但有时候用户之间可能需要一个共享对象,当Web服务器对象启动后就产生了这样一个唯一的内置对象application。
  • 任何用户在访问同一Web服务目录的各个页面时,共享一个application对象,直到服务器关闭,这个application对象被取消为止。
  • application对象也可以进行数据的存储。
  • application对象在整个应用区域中都有效,而session只是在当前客户的会话范围内有效,当超过保存时间则被收回。
String getContextPath()    //获得虚拟路径
String getRealPath(String path);      //获取绝对路径

// 使用举例
<%="虚拟路径"+application.getContextPath()+"<br/>" %>
<%="虚拟路径所对应的相对径"+application.getRealPath(application.getContextPath()) %>

application访问应用程序初始化参数

  • application对象提供了对应用程序初始化参数进行访问的方法。
  • 应用程序初始化参数在web.xml文件中进行设置,web.xml文件位于Web应用所在目录下的WEB-INF子目录中。在web.xml文件中通过表级配置应用程序初始化参数。(???

管理应用程序环境属性

  • 获得application 对象的所有属性名称的枚举对象
public Enumeration getAttributeNames()
  • 从application对象中获取指定对象名
public Object getAttribute(String key)
  • 存储数据对象:
public void setAttribute(String key , Object obj)
  • 从application对象中去掉指定名称的属性
public void removeAttribute(String key , Object obj)



application对象方法全家桶

 Object getAttribute(String name):返回给定名的属性值。
 Enumeration getAttributeNames():返回所有可用属性名的枚举。
 void setAttribute(String name,Object obj):设定属性的属性值。
 void removeAttribute(String name) :删除一属性及其属性值。
 String getServerInfo():返回JSP(SERVLET)引擎名及版本号。
 String getRealPath(String path) :返回一虚拟路径的真实路径。
 ServletContext getContext(String uripath) :返回指定WebApplication的application对象。
 int getMajorVersion():返回服务器支持的Servlet API的最大版本号。
 int getMinorVersion():返回服务器支持的Servlet API的最大版本号。
 String getMimeType(String file):返回指定文件的MIME类型。
 URL getResource(String path):返回指定资源(文件及目录)URL路径。
 InputStream getResourceAsStream(String path):返回指定资源的输入流。
 RequestDispatcher getRequestDispatcher(String uripath):返回指定资源RequestDispatcher对象。
 Servlet getServlet(String name):返回指定名的Servlet。
 Enumeration getServlets():返回所有Servlet的枚举。
 Enumeration getServletNames():返回所有Servlet名的枚举。
 void log(String msg):把指定消息写入Servlet的日志文件。
 void log(Exception exception,String msg):把指定异常的栈轨迹和错误消息写入Servlet的日志文件。
 void log(String msg,Throwable throwable):把栈轨迹和给出的Throwable异常的说明信息写入到Servlet
的日志文件。

几大内置对象的总结

//这四个对象范围: 小–>大
pageContext 当前页面
request 请求对象 同一次请求有效
session 会话对象 同一次会话有效
application 全局对象 全局有效(整个项目都有效)

a.
pageContext 当前页面有效(页面跳转后无效)

b.
request 同一次请求有效;(请求转发有效;重定向后无效)

c.
session 同义词会话有效;(无论怎么跳转都有效;关闭/切换浏览器后无效; 从登录 -->退出 之间均有效)

d.
application 全局遍历;(一直有效,关闭/切换浏览器仍有效,关闭重启服务器、不同项目之间(共享)无效。 补充一点:通过JNDI技术可以实现关闭服务器和不同项目之间application仍有效)

如何选择使用哪个内置对象呢?

这几个对象都有 setAttribute 、 getAttribute 、 removeAttribute 方法。那么如何选择使用哪个内置对象来实现我们的要求呢? 原则就是:在可以符合我们需求的前提下,尽量使用范围最小的内置对象。 因为范围越大,开销也大。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值