servletcontext

来源:互联网 发布:zabbix mysql启动失败 编辑:程序博客网 时间:2024/05/17 08:07

1).初始化参数

  在web.xml中配置初始化参数:
  email
  从Servlet中访问初始化参数:
  ServletContext application=this.getServletContext();
  out.println("send us your")
  out.println(application.getInitParameter("email"));
  out.println("'>email");

编辑本段2).属性

  可以通过编程的方式绑定,也可以作为web应用的全局变量被所有Servlet和JSPs访问
  设置Context属性:
  ServletContext application=this.getServletContext();
  application.setAttribute("person1",new Person("Jim"));
  application.setAttribute("person2",new Person("Green"));
  获取Context属性:
  ServletContext application=this.getServletContext();
  Enumberation persons=application.getAttributeNames();
  while(persons.hasMoreElements()){
  String name=(String)persons.nextElement();
  Person p=(Person)persons.getAttribute(name);
  application.removeAttribute(name);
  2.通过ServletContext可以访问web应用的静态资源
  使用ServletContext接口可以直接访问web应用中的静态内容文档结构.包括HTML,GIF和JPEG文件。如以下方法:
  .getResource
  .getResourceAsStream
  这两个方法的参数都是以"/"开头的字符串,表示资源相对于context根的相对路径.文档结构可以存在于服务器文件系统,或是war包中,或是在远程服务器上,抑或其他位置.不可以用来获得动态资源,比如,getResource("/index.jsp"),这个方法将返回该jsp文件的源码,而不是动态页面.可以用"Dispatching Requests"获得动态内容.
  列出web应用中可被访问的资源,可以使用getResourcePaths(String path)方法。
  3.通过ServletContext可以跨多个请求,用户和Servlets
  web服务器支持在一台机器上共享一个IP的多个逻辑主机,这种能力被称为"虚拟主机",每个逻辑主机都拥有它自己的servlet context。servlet context不能跨虚拟主机共享。

编辑本段ServletContext的用途

安装方法:

  安装在一个服务器中的一个特定URL名字空间(比如,/myapplication)下的所有Servlet,JSP,JavaBean等Web部件的集合构成了一个Web的应用,每一个Web应用(同一JVM),容器都会有一个背景对象,而javax.servlet.ServletContext接口就提供了访问这个背景对象的途径。

Servlet实例的getServletContext方法:

  得到该Servlet运行其中的这个背景对象。从这个背景对象中你可以访问如下信息或资源:(注意该方法不是ServletContext的方法而是获取背景对象的方法由于HttpServlet继承Servlet的关系GenericServlet类和HttpServlet类同时具有该方法):初始化参数 ServletContext.getInitParameter(String name)。存储在背境中的对象 context.getAttribute(String name) 与本背景关联的资源 ServletContext.getResource(String path) 日志 ServletContext.log(String msg) 以上所示方法均为ServletContext所提供,值得一提的是对于存储在背境中的对象访问方法常用的还有: context.setAttribute(String name, Object object);将特定名字绑定的任意类型的对象上。将把object对象绑定到名字name,存放在Servlet背景中,可供同一背景中的其他Servlet共享。其他Servlet可以通过context.getAttribute(String name),得到一个背景中的对象,或通过context.removeAttribute(String name)在背景中移除一个对象。
  在Web 应用范围内存取共享数据的方法:
  setAttribute(String name,java.lang.Objectobject):把一个java 对象和一个属性名绑定,并存放到ServletContext 中,参数name 指定属性名,参数Object 表示共享数据。
  getAttribute(String name):根据参数给定的属性名,返回一个Object类型的对象。
  getAttributeNames():返回一个Enumeration 对象,该对象包含了所有存放在ServletContext 中的属性名
  removeAttribute(String name) : 根 据 参 数 指 定 的 属 性 名 , 从servletContext 对象中删除匹配的属性。
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 宝宝的银锁发黑怎么办 pu鞋子蹭坏了怎么办 包的油边脱胶了怎么办 pu包有点破皮怎么办 买房子不给过户怎么办 布艺床头有味道怎么办 皮革床头爆皮了怎么办 皮包用酒精擦了怎么办 床头靠背皮掉了怎么办 真皮床头爆皮了怎么办 半裙拉链往下滑怎么办 误用三氧化二砷怎么办 情侣之间感情淡了怎么办 雪纺布料刮坏了怎么办 棉麻布料坏了怎么办 主板针脚弯了怎么办?能修吗? 脸颊两侧毛孔大还有黑头怎么办 脸颊和鼻子粗毛孔大怎么办 十二时辰对照五脏养生在国外怎么办 在学校接吻怕被看到怎么办 楼房圈梁被破坏了怎么办 买了农村的房子怎么办 邻居建房不用共用墙怎么办 腿被蚂蚁咬了怎么办 火车订2票不挨着怎么办 手机全变成英文该怎么办 这些旧电脑该怎么办用英语翻译 落水已把人救出该怎么办 手机落水后已开过机怎么办? 车被洪水冲走了怎么办 感到生活无聊无事可干怎么办 邻居不除排水沟影响到自己怎么办 开过光的玉碎了怎么办 一脚刹车踩到底怎么办 p53基因型cc型该怎么办 人不小心掉进火山怎么办 奥林巴斯相机相片被锁了怎么办 文明53格外的奢侈品怎么办 答应了要请客钱不够怎么办 在家里面着急没办法干活怎么办 1岁宝宝脾气暴躁怎么办