这边如果要看到对应的类的定义,或者service方法的定义实现等的话,需要到网上下载源码,解压之后有个java文件夹,根据eclipse里面的提示,加载一下,不然看不到源码。下载地址:http://tomcat.apache.org/download-80.cgi。
问题:
问题1:我们提交请求时,为什么get请求就会调用doGet方法,post请求,会调用doPost方法?
问题2:为什么我们重写时,只重写了无参数的init方法,不需要重写有参数的init?
在我们Servlet接口中定义了三个方法.
init(ServletConfig config)
service()
destroy();
问题1解决:
是因为在HttpServlet的service方法中,它进行了重写,重写后分根据请求方式不同,调用不同的方法.
String method=request.getMethod();
if("get".equals(method)){
doGet();
}else if("post".equals(method)){
doPost();
}
问题2解决:
在GenericServlet 中定义了一个无参数init方法,重写Servlet接口中的init(ServletConfig config)方法.
当servlet对象创建后会调用有参数的init方法。在有参数的init方法中又调用了无参数的init方法。
对于我们来说,我们只需要重写无参数的init就可以。