servlet的问题

问题1:我们提交请求时,为什么get请求就会调用doGet方法,post请求,会调用doPost方法?
问题2:为什么我们重写时,只重写了无参数的init方法,不需要重写有参数的init?

研究servlet的生命周期(******************************)

在我们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就可以。
--------------------------------------------------------------------------------------------------------
关于servlet的自动加载.
正常情况下,servlet是第一次被访问时,会创建servlet实例。并初始化,也就是调用init方法。

我们可以通过对servlet进行配置,让servlet可以随着服务器的启动而自动创建与初始化.

只需要在web.xml文件中在配置servlet时,加上<load-on-startup>

servlet跟随服务器启动的作用是什么?
根据特点来分析,当前servlet的init方法是服务器启动了,init方法就被调用了,
那么我们就可以将一些需要提前加载的信息在servlet的init方法中定义。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值