如何在另一个servlet中访问相同的ServletContext对象?

时间:2013-08-30 05:14:49

标签: java servlets servlet-3.0

我为ServletContext对象编写了演示程序,其中我使用context.setAttribute(arg1,arg2)设置了值。我想访问另一个servlet中的同一个对象。 如何在另一个servlet中访问上下文对象设置的值。

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    response.setContentType("text/html");
    PrintWriter out = response.getWriter();

    String name = "Amrut";

    ServletContext context = request.getServletContext();

    context.setAttribute("contextuname", name);

    out.println("Context==>" + context.getAttribute("contextuname"));
}

我的问题是,为了访问这个对象,我必须创建ServletContext对象并使用context.getAttribute(arg1,arg2),我会获得价值。或者还有另一个值来做到这一点。

3 个答案:

答案 0 :(得分:1)

根据Java doc

 There is one context per "web application" per Java Virtual Machine.

因此,您的Context对象将可用于所有servlet。并且上下文对象中的属性也将。

my question is, for accessing this object i have to create ServletContext object 

它将返回相同的上下文对象,它不会创建新对象

答案 1 :(得分:0)

  

我的问题是,为了访问这个对象,我必须创建ServletContext对象,并使用context.getAttribute(arg1,arg2),我将得到值。或者还有其他价值。

通过在另一个servlet中创建与上面相同的context对象,您将获得价值 根据{{​​3}}

  

每个Java虚拟机每个“Web应用程序”都有一个上下文。

答案 2 :(得分:0)

在同一应用程序中另一个servlet的service(doGet / doPost)方法中,执行此操作

ServletContext context = request.getServletContext();

String uName =(String)context.getAttribute(“contextuname”);