init方法在servlet中一次又一次地调用

时间:2015-05-29 16:59:17

标签: java servlets

在servlet中的每个请求中,一次又一次地调用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 个答案:

答案 0 :(得分:2)

根据你的代码,init()只应在第一次请求时加载servlet时调用一次。然后在销毁之后,将在新请求上再次调用init()。在它们之间只会调用您的服务方法。你的代码很好,没有逻辑错误。 你在servlet之外调用init方法吗? 你能附上部署描述符吗?