Servlet的本质是什么

这几天在看headfirst servlet jsp,看到一堆的servlet、servlet,老实说很烦,虽然现在也没有人直接用servlet了,但其实搞java的除了用netty,现在大部分人其实都是在基于servlet做开发。然后呢,servlet不就是一个接口类吗?按C++讲就是一个动态库的接口标准,你写的servlet就是一个接口实现而已,或者也可以是一个库,struts2就是个实现了servlet接口的库,然后struts2又开放了自己库流程中的接口,最后开发人员就在那个接口标准下实现业务逻辑代码。拿到以前的C++程序标准来讲,这就是维护人员干的活,根本不算开发,C++服务程序开发的标准肯定是从main函数开始的,你的代码看不到main函数,那就是个维护人员。所以,C++在新的web时代根本赶不上步伐,C++没有像sun公司这样的企业来定义一整个解决方案来推广,形象的比喻就是每个C++开发者都认为自己能够造汽车发动机,并且也乐此不彼,但sun提供了汽车的发动机等基本模块,发动各种阿猫阿狗来给汽车图图颜色、做个新外形,分分钟做出C++要好几天好几个月要完成的东西。

但是呢,现在java也不行了,也不够快和简单了。

 

什么是Servlet:

  Servlet是运行在web服务器端(web容器,如tomcat)的程序,它与Applet相对,Applet是运行在客户端的程序。

  Servlet的主要作用是处理客户端的请求,并把处理结果响应给客户端。生成动态网页。

Servlet的本质:

  Servlet的本质是实现了javax.servlet.Servlet接口的Java类。javax.servlet.GenericServlet实现了Servlet接口,实现了Servlet基本的特征和功能,能够接受客户端发出的请求和产生响应信息。而javax.servlet.http.HttpServlet又继承了javax.servlet.GenericServlet类,所以我们编写的Servlet继承HttpServlet即可。

它的整个过程为:(Servlet的生命周期)

    客户端发送请求给服务器端(Tomcat)。(若容器还不存在Servlet的实例,则容器先加载Servlet类,然后创建一个ServletConfig对象,这里包含了Servlet的初始化配置信息。并创建一个Servlet实例,然后通过Servlet实例的init()方法初始化该实例。)

    容器接收到客户端请求,创建ServletRequest和ServletResponse对象,再调用service(ServletRequest  req,ServletResponse res)方法,通过servletRequest对象获得请求的信息,通过servletResponse对象生成这个请求的相应结果。然后销毁ServletRequest和ServletResponse对象。

    Web终止时,servlet容器调用servlet对象的destroy()方法,然后销毁servlet,同时也销毁servlet对象相关联的servletConfig对象,释放servlet所占用的资源。

 

 

  其中init()和destroy()方法在整个生命周期内只执行一次。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值