servlet的生命周期、HttpServlet的继承关系、servlet生命周期相关方法、HttpServlet类的service方法、servlet的特点

1. HttpServlet的继承关系

javax.servlet.servlet接口

javax.servlet.GenericServlet抽象类

javax.servlet.http.HttpServlet抽象子类

2. service生命周期相关方法

//javax.servlet.servlet接口:
void init(config); //1、初始化方法
void service(request,response); //2、服务方法
void destory();//3、销毁方法

默认情况下:

  1. 第一次接收请求时,这个servlet会调用init(),然后在调用service();
  2. 从第二次请求开始,每一次都是调用service();
  3. 当容器关闭时,其中的所有的servlet实例会被销毁,调用 destory();
  • 好处:提高系统启动的速度
  • 坏处:拖慢了第一次访问的速度

如果需要需要提高响应速度,我们应该设置Servlet的初始化时机,可以通过在web.xml中设置<load-on-startup>1</load-on-startup>设置servlet的启动先后顺序,数字越小,启动越靠前,最小为0。

3. HttpServlet类的service方法

  1. String method=req.getMethod();获取请求的方式
  2. 各种if判断,根据请求方式不同,决定去调用不同的do方法
if (method.equals("GET")) {
	this.doGet(req,resp);
} else if (method.equals("HEAD")) {
	this.doHead(req, resp);
} else if (method.equals("POST")) {
	this.doPost(req, resp);
} else if (method.equals("PUT")) {
}

HttpServlet中这些do方法默认都是405的实现风格-要我们子类去实现对应的方法,否则默认会报405错误,因此,我们在新建servlet时,我们才会去考虑请求方法,从而决定重写哪个do方法。

  1. 在HttpServlet这个抽象类中,do方法都差不多。

4. servlet的特点

servlet在容器中是单例的,线程不安全的。

尽量的不要在servlet中定义成员变量。如果不得不定义成员变量,那么不要去修改变量的值或根据成员变量的值做一些逻辑判断。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值