java中的上下文是什么意思

java中的上下文是什么意思,第1张

所谓上下文,它是用来存储系统的一些初始化信息,例如在jboss中通过配置文件指定了数据源,那么在jboss启动的时候就把这个文件的相关信息上下文中,于是在我们使用这敬或拍个数据源的时候,就需要先获得系统的上下文,然后再通过一定的方式将数据源取出来。至于在系统启动时,是如何将这些初始化亮羡信息加载到上下文中,而上下文在程序中具体又是以什么形式体现的,应该随着系统的不同而不同。

上下文即ServletContext,是一个全局的储存信息的空间,服务器启动,其就存在,服务器关闭,其才释放。所有用户共用一个ServletContext。所以,为团友了节省空间,提高效率,ServletContext中,要放必须的、重要的、所有用户需要共享的线程又是安全的一些信息。如,做一个购物类的网站,要从数据库中提取物品信息,如果用session保存这些物品信息,每个用户都访问一便数据库,效率就太低了;所以要用来Servlet上下文来保存,在服务器开始时,就访问数据库,将物品信息存入Servlet上下文中,这样,每个用户只用从上下文中读入物品信息就行了。

获取ServletContext的方法:

   HttpSession session = request.getSession()

  session.getServletContext()

上下文,即语境、语意,是语言学科(语言学、社会语言学、篇章分析、语用学、符号学等)的概念。

语意分析(semantic analysis)技术系指将一长串的文字或内容,从其中裤高分析出该个段落的摘要以及大意,甚至更进一步,将整篇文章的文意整理出来。此项技术可以应用在解读影渗租片、音讯等档案,使得搜索引擎能够搜寻到文字以外的物件,方便使用者省去大量时间观看影片、聆听音讯,同时也可以帮助使用者提前了解影片与音讯的内容。

语境是语言学科(语言学、社会语言学、篇章分析、语用学、符号学等)的概念。

语境概念最早由人类学家马林诺夫斯基所提出,分为情景语境和文化语境。也可以区分成语言性语境和社会性语境。

语境(语言的文化背景、情绪景象、时空环境等)的介入,一方面使多义的语言符号趋向单义,另一方面又使语言符号节外生枝,增生出语境意义。语境意义甚至可以掩盖语言符号自身具有的意义而成为交际的主信息。语境也控制着交际者对语言符号的选用。我们这里所谓的语境意义,是丛纯兆指在语境中,语言符号实际具有的涵义,包括赋予义和解释义。

汉语中,"上下文"一词的出处,最早可追溯到唐代贾公彦《周礼义疏·秋官》。

《周礼·秋官》"原文:"若国札丧 ,则令赙补之 若国凶荒 ,则令委之 若国师役 ,则令槁之 若国有福事 ,则令庆贺之 若国有祸灾 ,则令哀吊之。凡此五物者 ,治其事故。贾公彦 [义疏 :此一"经" ,据上下文皆据诸侯国 此文虽单言"国"亦据诸侯而言。

贾疏是说 :"小行人职"一"经" ,根据上下文 ,皆是以诸侯国为据而言 这段文字中虽单说一个"国"字 ,也是指诸侯国 ,"令"的对象是诸侯。这样看来 ,贾疏所用"上下文"一词 , 已经具有语境的的含义。

ServletContext 被 Servlet 程序用来与 Web 容器通信。例如写日志,转发请求。每一个 Web 应用程序含有一个Context,被Web应用内的各个程序共享。因为Context可以用来保存资源并且共享,所以我所知道的 ServletContext 的最大应用是Web缓存----把不经常更改的内容读入内存,所以服务器响应请求的时候就不需要进行慢速的磁盘I/O了。

1 )上下文的作用

web

容器在启动时,它会为每个web程序都创建一个对应的ServletContext对象,它代表当前的web应用。

事实上SpringMVC封装的ApplicationContext

以及Struts2封装的ApplicationContext里面都是保存着原本的ServletContext

作用:Web应用范围内存取共享数据;访问web应用的静态资源;Servlet对象之没枝间通过ServletContext对象来实现通讯。

2) 下文接口的方法

在Servlet中通过final ServletContext application = request.getServletContext()

获取上下文对象application

上下文明橡的常用方法如下:

getInitParameter(String name) 获取name名称的初始化参数的值

getResourceAsStream(String path) 输入流的形式返回path对应的资源,path参数必须以“/”

getInitParameterNames() 获取所有初始化参数的名称,返回的结果是一个枚举值

getRequestDispatcher(String name) 根据转发的地址获取 RequestDispatcher对象

setAttribute() 设置属性值

getAttributeNames() 获取所有属性激察旁值名称

3) 上下文参数

在web.xml中配置初始化参数:

<context-param>

<param-name>adminEmail</param-name>

<param-value>webmaster</param-value>

<context-param>

元素是针对整个应用的,所以并不嵌套在某个<servlet>元素中,该元素是<web-app>元素的直接子元素。

从Servlet中访问初始化参数:

final ServletContext application=this.getServletContext()

application.getInitParameter("email")

4) 上下文属性ServletContext application=this.getServletContext()

application.setAttribute("name","value")

application.getAttribute("name")

Enumberation p=application.getAttributeNames()

https://www.zhihu.com/question/38481443/answer/76596017


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12444087.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存