InvokerServlet 激活器

提醒:InvokerServlet 激活器在tomcat5和tomcat6版本中有,tomcat7已经去掉。

下面是配置tomcat的InvokerServlet激活器的步骤:

每个web应用程序的WEB-INF目录下都有一个web.xml文件,其中记录了servlet的一些配置信息,在tomcat的conf目录下也有一个web.xml文件,这个xml文件是所有在该tomcat上部署的web应用程序的基础配置,就是说,每个web应用程序的web.xml都是在 conf/web.xml上的基础上进行扩展和覆盖的。 


在<tomcat主目录>\conf\web.xml文件中可以看到,然后去掉注释: 

<servlet> 
        <servlet-name>invoker</servlet-name> 
        <servlet-class> 
          org.apache.catalina.servlets.InvokerServlet 
        </servlet-class> 
        <load-on-startup>2</load-on-startup> 
</servlet> 

<servlet-mapping>  
      <servlet-name>invoker</servlet-name> 
      <url-pattern>/servlet/*</url-pattern> 
</servlet-mapping>

如果有web应用程序的WEB-INF目录下的web.xml文件中也有以上InvokerServlet的配置信息的话,去掉,只留一份配置(一般情况下该文件下没有)

例如,在没有开启InvokerServlet激活器时,我们这样配置:

 <servlet>
    <servlet-name>HelloServlet</servlet-name>
    <servlet-class>com.HelloServlet</servlet-class>
  </servlet> 
  <servlet-mapping>
    <servlet-name>HelloServlet</servlet-name>
    <url-pattern>/servlet/HelloServlet</url-pattern>
  </servlet-mapping>

开启InvokerServlet激活器后,就可以去掉上面servlet的配置信息了。访问路径为:http://localhost:8080/项目名称/servlet/com.HelloServlet

这样就配置完了InvokerServlet激活器,然后就可以使用它了。

解释下以上配置的作用:我们一般在配置servlet时,需要在web应用程序的WEB-INF目录下的web.xml文件配置servlet的calss路径和servlet-mapping,如果开启了InvokerServlet激活器就不需要配置了,InvokerServlet激活器映射的访问路径以"/*"结尾,我们在访问servlet时,只需将 InvokerServlet激活器所映射的通配符(*)替换为具体的Servlet的完整类名,就可以通过InvokerServlet激活器来调用具体的Servlet程序。InvokerServlet的作用就是激活和调用任何其他Servlet,被称为Servlet激活器。

配置后,在启动tomcat时,可能会报以下错误:

Servlet of class org.apache.catalina.servlets.InvokerServlet is privileged and cannot be loaded by this web application

需要在tomcat下conf下的context.xml中为Context添加两个属性
<Context reloadable="true" privileged="true">

你可能感兴趣的:(tomcat,tomcat6,Servlet激活器)