servlet的容器:
tomcat,jRun等是jsp,servlet的容器,就说它们在这个服务器里面运行,服务器提供给它们运行环境
jBoss,Weblogic,Apache等可以做EJB的容器,道理同上
服务器对servlet,EJB的支持是不一样的,所以我们要选择支持他们的容器
CGI与servlet的区别:
CGI应用开发比较困难,因为它要求程序员有处理参数传递的知识,这不是一种通用的技能。CGI不可移植,为某一特定平台编写的CGI应用只能运行于这一环境中。每一个CGI应用存在于一个由客户端请求激活的进程中,并且在请求被服务后被卸载。这种模式将引起很高的内存、CPU开销,而且在同一进程中不能服务多个客户。
Servlet提供了Java应用程序的所有优势——可移植、稳健、易开发。使用Servlet Tag技术,Servlet能够生成嵌于静态HTML页面中的动态内容。
Servlet对CGI的最主要优势在于一个Servlet被客户端发送的第一个请求激活,然后它将继续运行于后台,等待以后的请求。每个请求将生成一个新的线程,而不是一个完整的进程。多个客户能够在同一个进程中同时得到服务。一般来说,Servlet进程只是在Web Server卸载时被卸载。
首先servlet运行于servlet容器中。servlet容器可以接受客户端的请求并作出相应。通常我们用到的就是http的请求和响应了。容器通过url来判断请求应该由哪个servlet来处理。这是就会调用这个servlet的service方法。平时我们写servlet时也是覆盖这个方法。
HttpServlet实际上调用了doGet或者doPost方法,所以继承自这个类的时候只要覆盖doGet和doPost方法
它的生命周期就是init servce destroy