2012-01-13 8 views
0

У меня есть следующий фрагмент кода: он работает нормально, никаких проблем, но я запутался, как сделать несколько экземпляров этого. Каждый раз, когда я запускаю это, я получаю «есть 1 экземпляр,путают с экземплярами сервера

public class HolisticCounter extends HttpServlet { 


    private static final long serialVersionUID = 1L; 
static int classCount = 0; // shared by all instances 
    int count = 0;    // separate for each servlet 
    static Hashtable instances = new Hashtable(); // also shared 

    public void doGet(HttpServletRequest req, HttpServletResponse res) 
           throws ServletException, IOException { 
    res.setContentType("text/plain"); 
    PrintWriter out = res.getWriter(); 

    count++; 
    out.println("Since loading, this servlet instance has been accessed " + 
       count + " times."); 

    // Keep track of the instance count by putting a reference to this 
    // instance in a Hashtable. Duplicate entries are ignored. 
    // The size() method returns the number of unique instances stored. 
    instances.put(this, this); 
    out.println("There are currently " + 
       instances.size() + " instances."); 

    classCount++; 
    out.println("Across all instances, this servlet class has been " + 
       "accessed " + classCount + " times."); 
    } 
} 
+0

Попробуйте сделать одновременные запросы. –

+0

Все в порядке. Почему у вас есть несколько экземпляров сервлета? Параллельные запросы будут запускать тот же сервлет в параллельных потоках. –

+0

Просто для знания. Можете ли вы сказать мне, как это сделать? – Rookie

ответ

4

В подавляющем большинстве случаев, есть только когда-либо один сервлет экземпляр в <servlet> записи. Контейнеру не нужно создавать экземпляр, и поэтому он повторно использует один и тот же экземпляр для каждого запроса.

Сервер разрешил, чтобы создать несколько экземпляров, но обычно нет причин для этого.

+0

спасибо за ответ, но можете ли вы рассказать мне, как создать другой экземпляр? – Rookie

+0

@raghav: Зачем вам это нужно? – skaffman

+0

На самом деле учебник, в котором я его прочитал, показал результат, что «есть 2 экземпляра работает», поэтому мне было любопытно, как запустить 2 экземпляра. – Rookie

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