在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");
}
}
答案 0 :(得分:2)
根据你的代码,init()只应在第一次请求时加载servlet时调用一次。然后在销毁之后,将在新请求上再次调用init()。在它们之间只会调用您的服务方法。你的代码很好,没有逻辑错误。 你在servlet之外调用init方法吗? 你能附上部署描述符吗?