2

我已经为对象编写了演示程序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),我会获得价值。或者有另一个价值来做到这一点。

4

3 回答 3

1

根据 Java 文档

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

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

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

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

于 2013-08-30T05:18:53.437 回答
0

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

ServletContext 上下文 = request.getServletContext();

String uName = (String)context.getAttribute("contextuname");

于 2013-08-30T05:34:21.523 回答
0

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

您将通过context在另一个 servlet 中创建与上述相同的对象来获得价值。
根据java文档

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

于 2013-08-30T05:17:35.747 回答