gpt4 book ai didi

Java ServletContext

转载 作者:太空宇宙 更新时间:2023-11-04 08:48:48 25 4
gpt4 key购买 nike

我有一个 JSP 网站,不是 Spring MVC,它有一个配置文件 web.xml。

我想要获取 web.xml 文件中的一些设置。

但是,我想从“源包”文件夹中的类中访问这些设置。

我知道我可以将 ServletContect 从 JSP 传递到类,但我想避免这种情况,只从我的类访问 web.xml 文件。

这可能吗?

编辑

我一直在查看javax.servlet,认为我想要的东西就在那里,但如果是的话,我看不到它。

最佳答案

使用 javax.servlet.ServletContextListener实现,允许对上下文进行类似单例的访问:

package test.dummy;
import javax.servlet.ServletContextListener;
import javax.servlet.ServletContextEvent;

public class ContextConfiguration implements ServletContextListener {

private static ContextConfiguration _instance;

private ServletContext context = null;

//This method is invoked when the Web Application
//is ready to service requests
public void contextInitialized(ServletContextEvent event) {
this.context = event.getServletContext();

//initialize the static reference _instance
_instance=this;
}

/*This method is invoked when the Web Application has been removed
and is no longer able to accept requests
*/
public void contextDestroyed(ServletContextEvent event) {
this.context = null;

}

/* Provide a method to get the context values */
public String getContextParameter(String key) {
return this.context.getInitParameter(key);
}

//now, provide an static method to allow access from anywere on the code:
public static ContextConfiguration getInstance() {
return _instance;
}
}

在 web.xml 中进行设置:

<web-app>
<listener>
<listener-class>
test.dummy.ContextConfiguration
</listener-class>
</listener>
<servlet/>
<servlet-mapping/>
</web-app>

并从代码中的任何位置使用它:

ContextConfiguration config=ContextConfiguration.getInstance();
String paramValue=config.getContextParameter("parameterKey");

关于Java ServletContext,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3818700/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com