Servlet
什么是servlet
servlet是采用java语言编写的服务器端程序,它运行在web服务器端中的servlet容器中。主要功能是提供请求/响应的web服务器模式,可以生成动态的web内容。
servlet的优点:
1.较好的可移植性:毕竟java写出来的
2.执行效率高。servlet针对每个请求创建一个线程来执行,而创建线程比创建进程的开销要小。所以效率比CGI之类的方法要高。
3.功能强大。可以与web服务器进行交互。
4.使用方便。很多接口
5.可扩展性强。java写的,具有java所有优点。
说到容器,最常使用到的容器是tomcat。当web服务器获取到一个对servlet的请求时,该服务器将会把这个请求交给对应的容器来处理,容器自动调用servlet的方法(doGet()/doPost())来响应客户端的请求。
servlet处理客户端请求的具体步骤
1)客户端先发起请求
2)web服务器接收到该请求,之后把该请求交给具体的容器来处理。当容器发现这是对servlet发起的请求后,容器此时会创建两个对象:HttpServletRequest、HttpServletResponse。
3)容器可以根据请求消息种的url消息种中找到对应的servlet,然后针对该请求创建一个单独的线程,同时把2)步骤中创建的两个对象以参数的形式传递到新创建的线程当中。
4)容器调用servlet中的service()方法来完成对用户的响应,service()方法会调用doGet()/doPost()方法来完成具体的响应任务,同时把生成的动态页面返回给容器。
5)容器把响应消息组装成http格式返回给客户端。此时,这个线程运行结束,同时删除上面创建的HttpServletRequest、HttpServletResponse这两个对象。