问题:
什么是容器?
什么是JSP容器?
JSP容器的作用是什么?
什么是JSP引擎?
分析:
这些问题是相同的,都是描述JSP或者Servlet对象是如何被管理或者运行的。
回答:
首先应该明白,JSP或者Servlet本身的运行与普通客户端程序是不相同的,客户端程序是我们直接调用的,而JSP或者Servlet的运行需 要服务器,通常称为应用服务器,服务器负责创建JSP或者Servlet对象,然后调用JSP对象或者Servlet对象的相应方法。
由谁完成JSP或者Servlet对象的创建、方法的调用的呢?由容器完成,或者称为JSP容器。
容器是用来容纳其它组件的,这些组件包括JSP或者Servlet,完成这些组件对象的创建、方法的调用以及对象的销毁。
容器如何知道创建哪个JSP或者Servlet的对象的呢?对于JSP,是根据文件名字确定的,对于Servlet,是通过web.xml中的配置确定的。
容器如何知道调用JSP或者Servlet的哪个方法?对于JSP,JSP页面会被转换成Java类,而页面中的内容会被转换成Java类中的某个 方法中的内容,而这个方法的名字是固定的,容器会调用这个方法。对于Servlet,用户需要根据请求的类型编写doGet或者doPost方法,容器会 根据请求的方式是get还是post分别调用doGet或者doPost。
看到这些东西,真的是头都大了。不过作为一个Java Web开发方向的从业者,对这些概念还是必须理解透彻的。
JSP引擎与JSP容器指的是同样的东西,他们都指用来统一管理和运行Web应用程序的软件。常见的JSP引擎有Tomcat、JRun、Resin等,其中最常用的就是Tomcat。
而Web服务器,其实就是服务器了,它指的是安装了JSP引擎的计算机。
所以说,JSP引擎是用来管理和运行Web应用程序的软件,而安装了JSP引擎的计算机就是Web服务器。
现在许多人多把Tomcat说成是Web服务器,但其实Tomcat只是JSP容器(JSP引擎)而已。之所以把Tomcat说成Web服务器,我 猜可能是因为这样很容易理解吧。(你看安装了Tomcat就可以运行自己的网站了,那Tomcat不就是服务器吗?)但对于有志于从事Web方向的我们, 还是必须弄清这个概念的。
补充:
1.什么是JRun?
答:JRun是一个JSP引擎,与Tomcat一样用来管理和运行Web应用程序。它是由Allaire公司开发的Java服务器软件(又一个对JSP引擎的称呼),但它是付费的。
2.什么是Resin?
答:Resin是一个JSP引擎,用来管理和运行Web一个用程序,是CAUCHO公司开发的Java服务器软件。Resin运行JSP的速度非常快,并且Resin是免费的。