您的位置:首页 > 其它

Servlet的运行过程

2017-02-22 12:23 232 查看
Servlet的运行过程
一、servlet的运行过程

servlet程序是web服务器调用,web服务器收到客户端的servlet访问请求后:

1、web服务器首先检查是否已经装载并创建了该servlet的实例对象。如果是,则执行第4步,否则执行第2步

2、装载并创建给servlet的一个实例对象

3、调用servlet实例对象的init()方法。

4、创建一个用于封装HTTP请求的HttpServletRequest对象和一个代表HTTP响应消息的HttpServletResponse对象,然后调用Servlet的service()方法并将请求和和响应对象作为参数传递出去。

5、web应用程序被停止或重启之前Servlet引擎将卸载Servlet,并在卸载之前的调用Servlet的destory()方法。

  在整个servlet程序中最重要的是Servelt接口,在此接口下定义了一个GenericServlet的子类,但一般不会直接继承此类,而是根据所使用的协议选项GenericServlet的子类继承。

例如:采用HTTP协议处理,所以一般而言当需要使用HTTP协议操作时用户用户自定定义的Servlet类都要继承HttpServlet类。

  开发一个可以处理Http请求的Servlet类,则肯定需要继承HttpServlet类,该类提供了不同的方法用于响应客户端请求,常见的方法有:

  1、doGet(HttpServletRequest req, HttpServletResponse resp)

  2、doPost(HttpServletRequest req, HttpServletResponse resp)

  3、service(HttpServletRequest req, HttpServletResponse resp)

  在自定义的Servlet类中,根据实际需要重写HttpServlet类中提供的方法,Servlet程序本身也是按照请求响应的方式进行的,所以在方法中定义了两个参数,即HttpServletRequest ,HttpServletResponse ,用来接收和回应用户的请求。
二、浏览器访问servlet的过程容器

1、浏览器的根据客户的请求发送http给web的service()方法从requset对象中获取请求信息,并将响应信response中的响应对象的响应体中

2、web容器检查内存中是否有责任当前的servlet,如果没有,将创建当前请求的servlet对象

3、web容器创建请求对象requset和响应对象response

4、web容器调用servlet的service()方法,servlet

5、web容器读取response中的响应信息后,向请求的浏览器发送http响应

6、访问过程结束后,过程中建立的requset和response对象变成垃圾
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息