您当前的位置:首页 > 互联网教程

java 上下文context 怎么理解

发布时间:2025-05-22 06:02:39    发布人:远客网络

java 上下文context 怎么理解

一、java 上下文context 怎么理解

一、context可以理解成一个聚宝盆,在当前环境下你能拿到的参数都可以从context出发去拿,而不仅仅是放URL的.从里面可以拿到request,session,response.......,可以说只要你拿到了context就可以访问任何你有权限访问的东西\x0d\x0a二、context就是“容器”,放的就是应用程序的所有资源,要用时候就访问它,所以context里面的东西,在同一个应用程序里面是全局的。\x0d\x0a三、是一个包含各种context的设置的对象\x0d\x0a例如:pageContext就包含了该页面的各种设置。可以通过他得到该页面所在服务器路径等等。\x0d\x0aContext用于在Request操作中指定上下文对象的对象,上下文字符串在与请求调用一起被发送之前,必须在该指定的上下文对象中进行解析。Context对象包含NamedValue对象形式的属性列表。这些属性表示关于客户端、环境或请求情形的信息,它们通常是一些可能不方便作为参数传递的属性。

二、java,android里的context都是什么意思啊该如何处理

1、Context在Java中的出现是如此频繁,但其中文翻译“上下文”又是如此诡异拗口,因此导致很多人不是很了解Context的具体含义是指什么,所以很有必要来深究一下这词的含义。先来举几个JAVA中用到Context的例子(1)JNDI的一个类javax.naming.InitialContext,它读取JNDI的一些配置信息,并内含对象和其在JNDI中的注册名称的映射信息。请看下面的代码

2、InitialContext ic=new InitialContext();

3、RMIAdaptor server=(RMIAdaptor)ic.lookup("jmx/invoker/RMIAdaptor");

4、这是一段JBoss中获取MBean的远程调用类的代码。在这里面通过InitialContext中JNDI注册的名称“jmx/invoker/RMIAdaptor”来获得RMIAdaptor

5、对象。这和JAVA集合中的MAP有点象,有一个String的key,key对映着它的对象。(2)再来看看下面Spring中最常见的几句代码。ApplicationContext是内含configuration.xml配置文件的信息,使得可以通过getBean用名称得到相应的注册对象。

6、ApplicationContext ctx= new FileSystemXmlApplicationContext("configuration.xml");

7、Object obj= ctx.getBean("Object_Name");

8、从上面的代码,我很能体会到Context所代表的意义:公用信息、环境、容器....。所以我觉得Context翻译成上下文并不直观,按照语言使用的环境,翻译成“环境”、“容器”可能更好。把Context翻译成“上下文”只是不直观罢了,不过也没大错。我们来看看中文的“上下文”是什么意思。我们常说听话传话不能“断章取义”,而要联系它的“上下文”来看。比如,小丽对王老五说“我爱你”,光看这句还以为在说情话呢。但一看上下文--“虽然我爱你,但你太穷了,我们还是分手吧”,味道就完全变了。从这里来看“上下文”也有“环境”的意思,就是语言的环境。

9、上下文其实是一个抽象的概念。我们常见的上下文有Servlet中的pageContext,访问JNDI时候用的Context。写过这些代码的人可能比较容易理解,其实他们真正的作用就是承上启下。比如说pageContext他的上层是WEB容器,下层是你写的那个Servlet类,pageContext作为中间的通道让Servlet和Web容器进行交互。再比如访问JNDI的Context,他的上层是JNDI服务器(可能是远程的),下层是你的应用程序,他的作用也是建立一个通道让你能访问JNDI服务器,同时也让JNDI服务器接受你的请求,同样起到交互作用。

三、java上下文属性存储常用的八种方式

在处理属性存储于上下文的需求时,选择恰当的方式至关重要,这取决于你的技术栈和具体应用场景。以下是常用的八种方法:

1.使用Servlet Filter或Interceptor(拦截器)中的Request/Session Attributes进行属性存储。

2.将属性利用Spring框架的RequestContextHolder进行管理。

3.通过ThreadLocal机制实现局部属性存储。

4.利用Spring Security的SecurityContext来存储与安全相关的属性。

5.在使用Inversion of Control(IoC) Container时,其上下文能作为属性存储的载体。

6. CDI(Contexts and Dependency Injection)的上下文提供了一种在依赖注入环境中存储属性的方法。

7.对于采用CDI规范的现代框架如Quarkus或Micronaut,Context Propagation机制能简化上下文属性的传递。

8.在处理异步或Reactive应用程序时,可利用上下文对象存储与请求相关的属性。

9.自定义上下文对象能根据具体需求灵活地存储和管理属性,适用于非标准场景。

以上方式各有优劣,选择时应综合考虑应用需求、性能影响、代码可维护性等因素,灵活运用,以达到高效、安全的属性存储目的。