2015-05-29 2 views
0

Метод init получает вызов снова и снова по каждому запросу в сервлет. Вот код:метод init вызывает снова и снова в сервлете

public class PersonInfoController extends HttpServlet { 
    private static final long serialVersionUID = 1L; 

    public PersonInfoController() { 
     super(); 
    } 

    public void init() throws ServletException { 
     Connection connection = Database.getConnection(); 
     System.out.println("init method"); 
    } 

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
     List<PersonInfoServiceI> myList = new ArrayList(); 
     PersonInfoServiceI instance = new PersonInfoServiceImpl(); 
     myList = instance.getdata(); 
     String jsonstring = new Gson().toJson(myList); 

     request.setAttribute("List", jsonstring); 
     RequestDispatcher rd = request.getRequestDispatcher("showdata.jsp"); 
     rd.forward(request, response); 
    } 

    public void destroy() { 
     System.out.println("the destory"); 
    } 
} 
+1

Пожалуйста, дайте дополнительную информацию: как вы его развертываете, какой контейнер сервлетов, как вы его называете, как вы знаете, что init вызывается снова и снова? –

ответ

2

В соответствии с вашим кодом инициализации() должен вызывать только один раз, когда сервлет будет загружаться по первому требованию. Затем после его уничтожения init() будет снова вызван по новому запросу. Между вами будет вызван только ваш метод обслуживания. Ваш код хорош, не имея логических ошибок. Вы вызываете метод init вне сервлета? Можете ли вы добавить дескриптор развертывания?

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