从静态方法读取getServletContext()

时间:2019-04-18 12:23:33

标签: java servlets

有什么办法可以用普通的静态java方法读取getServletContext()?即不是servlet的类

我的web.xml包含:

<context-param>
    <param-name>paramname</param-name>
    <param-value>test value</param-value>
  </context-param>

和静态类:

public classname
{
    public static boolean methodname() 
    {
        String name=javax.servlet.GenericServlet.getServletContext().getInitParameter("paramname");

        // other processing
    }

}

我知道我无法从静态类访问非静态方法,但试图获得解决方法。

我可以做到的是一个servlet类。但是,我的JSP页面正在调用静态方法。有什么解决方法吗?

1 个答案:

答案 0 :(得分:0)

您不能神奇地访问它,除非在Servlet API首次使它可用时首先对其进行抓取,然后通过Util类将其作为静态变量提供。

要获取更多ServletContext可以抓住的地方,请选中此link

在servlet中

@Override
public void init(ServletConfig config) {
    ServletContext context = config.getServletContext();
    ServletConfigUtil.config = config;
}

然后是Util类

public class ServletConfigUtil {

public static ServletContext sc = null;

public static ServletContext  getServletContext(){
return sc ;
}