入坑必备之servlet(O(∩_∩)O哈!)
两个问题:是什么?怎么用?
the first question:what?
Servlet是sun公司提供的一门用于开发动态web资源的技术,sun公司在其API中提供了一个servlet接口。由此可以理解为原生的servlet是一个接口,提到接口,我们应该想道我们必须去实现它才能被我们使用,servlet这个接口当然也不例外,从概念上讲,servlet是指sun公司提供的这个API接口,约定俗称,现在我们说的servlet是指实现这个接口的类,一般我们说的这个servlet就是指被我们实现的servlet。
好的第一个问题说完了,servlet是一个接口,而我们平常说的servlet是指实现了这个接口的类。(一句话搞定)
the second question:how?
这里我们先谈一下servlet的用途,是谁在使用它?Servlet 是在服务器上运行的小程序(来自百度百科),是服务器在使用它,servlet=Service+Applet,service是指服务,applet是指小程序,servlet就是指服务小程序。(下面所有的servlet是指已经实现servlet接口的servlet小程序)
接下来,我们说一下servlet它到底怎么用,
大致分为5个步骤,之后详细讲解每个步骤。
Servlet小程序是由服务器调用,服务器收到客户端的Servlet访问请求后:
①服务器首先检查是否已经首次装载并创建了该Servlet的实例对象。如果是,则直接执行第④步,否则,执行第②步。
②装载并创建该Servlet的一个实例对象。
③调用Servlet实例对象的init()方法。
④创建一个用于封装HTTP请求消息的HttpServletRequest对象和一个代表HTTP响应消息的HttpServletResponse对象,然后调用Servlet的service()方法并将请求和响应对象作为参数传递进去。
⑤WEB应用程序被停止或重新启动之前,Servlet引擎将卸载Servlet,并在卸载之前调用Servlet的destroy()方法。
第一步:通常情况下,服务器会对浏览器发出的请求只创建一个servlet对象,这个对象会一直保存在内存中,为后面浏览器发出的请求做出回应,直到你关闭这个网页或者调用servlet的方法退出,首次的意思是指你打开这个网页,直到关闭,退出浏览器,对应的servlet对象就会调用destory()方法,销毁对应的servlet对象。
第二步:创建一个对应的servlet对象
第三步:调用对象的初始化方法,
第四部:由web容器(调用servlet小程序的服务程序)创建一个请求对象(HttpServletRequest)和响应对象(HttpServletResponse),调用servlet小程序的service()方法,并将刚才创建的请求对象和响应对象作为参数传进去,流程请看下图,请注意读取和写入信息的分别是谁,黑色代表请求的过程,蓝色代表响应的过程(图太丑,请见谅!)
今天就先写下servlet大致是个什么东西和它的一些用法原理,下次我们在说下servlet小程序包含的几种方法(init();,destory();doget();,dopost();,等方法);
不足之处欢迎指正,不胜感激!