2013-08-30 3 views
2

Я написал демо-программу для объекта ServletContext, в котором я устанавливаю значение с помощью context.setAttribute(arg1,arg2). и я хочу получить доступ к одному и тому же объекту в другом сервлете. Как получить доступ к значению, заданному объектом-контекстом, в другом сервлете.Как получить доступ к одному объекту ServletContext в другом сервлет?

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), я получу значение. или есть другое значение для этого.

+1

Только один «ServletContext» доступен для каждого приложения. Его «ServletConfig» отличается. –

ответ

0

Мой вопрос: для доступа к этому объекту я должен создать объект ServletContext и с помощью context.getAttribute (arg1, arg2) получить значение. или есть другое значение для этого.

Вы получите значение, создав объект context, как и в предыдущем сервлете.
Согласно java docs

Существует один контекст на «веб-приложения» на виртуальной машине Java.

1

Согласно документу Java

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

Таким образом, ваш контекст Объект будет доступен для всех сервлетов. и атрибуты внутри объекта контекста также будут.

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

Это будет возвращать тот же объект контекста, он не будет создавать новый объект

метода
0

В службе (doGet/doPost) другой сервлет в одном приложении, сделайте это

контекста ServletContext = request.getServletContext();

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

Смежные вопросы