1、什么是容器?
Servlet没有main()方法。Servlet受控于另一个Java应用,这个Java应用称为容器。Tomcat就是这样一个容器。如果web服务器应用得到一个指向servlet的请求(而不是其他请求,如请求一个普通的静态HTML),此时服务器不是把这个请求交给servlet本身,而是交给部署该servlet的容器,要由容器调用servlet的方法,如doPost()或doGet()。
2、容器能提供什么?
通信支持:利用容器提供的方法,你能轻松地让servle与Web服务器对话;
生命周期管理:容器控制着servlet的生与死。它会负责加载类、实例和初始化servlet、调用servlet方法,并使servlet实例能够被垃圾回收。
多线程支持:容器会自动地为它接收的每个servlet请求创建一个新的java线程。针对客户机的请求,如果servlet已经运行完相应的HTTP服务方法,这个线程就会结束(也就是会死掉)。
声明方式实现安全:利用容器,可以使用XML部署描述文件配置(和修改)安全性,而不必将其硬编码写到servlet(或其他)类代码中。
JSP支持:负责把JSP代码翻译成真正的java。
web应用程序需要部署到web容器中才能运行,两者都必须符合javaEE规范。web容器的应用程序规范如下:
1.目录结构规范:javaWeb程序的所有文件都包含在一个文件夹中,包含WEB-INF子文件夹和META-INF子文件夹,WEB-INF文件夹包含classes文件夹和lib文件夹以及web.xml。
如Tomcat结构目录
/bin:包含启动和关闭Tomcat的文件
/conf:包含不同的配置文件:server.xml,web.xml,tomcat-user.xml
/lib:包含Tomcat使用的JAR文件
/logs:包含日志文件
/webapps:包含应用程序示例及自己开发的程序
/work:包含有JSP生成的Servlet
参考:http://aoyouzi.iteye.com/blog/2028611