servlet实现原理

来源:互联网 发布:js foreach 编辑:程序博客网 时间:2024/06/05 15:46
Servlet 是在服务器上运行的小程序
Servlet 的主要功能在于交互式浏览和修改数据,生成动态WEB内容。
这个过程为:
1.客户端发送请求到服务端;
2.服务器将请求信息发送到Servlet;
3.Servlet生成响应内容并将其传给服务器,响应内容动态生成,通常取决于客户端的请求;
4.服务器将响应返回给客户端
Servlet 生命周期
1.客户端请求该Servlet;
2.加载Sevlet类到内存;
3.实例化并调用init()方法初始化该Servlet;
4.service();
5.destroy();
加载和实例化servlet,这项操作一般是动态进行的,server通常会提供一个管理的选项,用于在server启动时,强制装载和初始化特定的servlet。
Server创建一个servlet实例。
第一个客户端的请求到达server
server调用service的init方法。
一个客户端的请求达到server
server创建一个请求对象,处理客户端请求。
server创建一个响应对象,响应客户端请求。
server 激活servlet的service()方法,传递请求和响应对象作为参数
service()方法获得关于请求对象的信息,处理请求,访问其他资源,获得需要的信息。
service()方法获得响应对象的方法,将响应传回server,最终到达客户端。
对于更多的客户端请求,server 创建新的请求和响应对象,仍然激活此servlet的service()方法,将这2个作为参数传递给它。
如果重复以上循环,无需再次调用init()方法。
一般servlet只初始化一次(只有一个对象),当server不再需要servlet时(一般当server关闭时),server调用servlet的destroy()方法。
get方法和post方法区别:
doGet() 方法
当一个客户通过 HTML 表单发出一个 HTTP GET 请求或直接请求一个 URL 时,doGet() 方法被调用。与 GET 请求相关的参数添加到 URL 的后面,并与这个请求一起发送。当不会修改服务器端的数据时,应该使用 doGet() 方法。
doPost() 方法
当一个客户通过 HTML 表单发出一个 HTTP POST 请求时,doPost() 方法被调用。与 POST 请求相关的参数作为一个单独的 HTTP 请求从浏览器发送到服务器。当需要修改服务器端的数据时,应该使用 doPost() 方法。