Servlet技术-Servlet激活器

admin2024-10-07  27

Servlet激活器:

在tomcat5.x版本 在tomcat安装目录的conf目录中的web.xml文件中有这样一段注释:
<!--
    &lt;servlet>
        <servlet-name>invoker</servlet-name>
        <servlet-class>
          org.apache.catalina.servlets.InvokerServlet
        </servlet-class>
        <init-param>
            <param-name>debug</param-name>
            <param-value>0</param-value>
        </init-param>
        <load-on-startup>2</load-on-startup>
    </servlet>
--&gt;
这个注释就是与Servlet激活器相关的内容! 下面介绍操作步骤, 准备:这里设置一个虚拟目录名为vip,这个vip映射到D:\web目录下,即是说在浏览器中输入:http://localhost:8080/vip但可以访问到D:\web目录下的内容了.
&gt;&gt;步骤一:取消这个注释,即是说激活器生效.
&gt;&gt;步骤二:在D:\web\WEB-INF下新建一个web.xml并作如下配置:
<web-app>  
     <servlet-mapping>
             <servlet-name>invoker</servlet-name>
             <url-pattern>/mytest/*</url-pattern>
    </servlet-mapping>   
</web-app>
注意:<url-pattern>/mytest/*</url-pattern>中mytest将会用到
&gt;&gt;步骤三:在D:\web\WEB-INF下建一个classes文件,然后在classes文件夹下放置一个名为HelloServlet.class的Servlet类文件
&gt;&gt;步骤四:在浏览器输入http://localhost:8080/vip/mytest/HelloServlet便可以访问了
&gt;&gt;总结原理:当我们使用步骤一,让激活器生效,再在所指定的WEB-INF目录下配置如步骤二web.xml文件,即是说,这个WEB-INF目录下的classes文件夹下的所有 Servlet程序(实现了javax.servlet包中的Servlet接口的java类经编译后的class文件)全部被激活,这样在浏览器中输入类名,便可以直接访问到这个class文件和执行效果了. 由于有了像36中所用到映射机制访问Servlet程序,所以这种激活形式访问很少使用.

缺省Serlet:
当Servlet的映射路径仅为一个正斜杠/时,这个Servlet便为一个默认的Servlet
&gt;&gt;应用一:在Servlet笔记第4点例子的基础上,我们对D:\web\WEB-INF目录下的web.xml文件修改如下:
<web-app>    
    <servlet>
        <servlet-name>FirstName</servlet-name>
        <servlet-class>HelloServlet</servlet-class>
    </servlet>
    <servlet-mapping>
            <servlet-name>FirstName</servlet-name>
            <url-pattern>/</url-pattern> <!--只是修改了这里-->
     </servlet-mapping>
<web-app>
这样当我们访问,这个目录下的所有文件都会访问这个映射的Servlet程序.甚至是乱输入文件也会访问这个Servlet程序.
&gt;&gt;应用二:在tomcat-5.5.7的安装目录下的conf目录下有一个web.xml文件,其中第 316行开始对servlet进行了全屏Servlet缺省设置. 即是说,只要是其它的Servlet不能处理的请求都将交给这个默认的Servlet来处理更详细的说,当客户端发送请求时,服务器端首先会找非缺省的Servlet匹配,如果找到则匹配返回给客户端,如果不能找到则交给conf目录下 web.xml设置的缺省Servlet来处理(比如,访问静态的html文件或图片时,实际是这个缺省的Servlet处理的返回结果,当然它也可以对那些非法请求给出相应的处理结果) 这个缺省Servlet内容如下:
<servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>/</url-pattern>
</servlet-mapping>
如果注释掉这段内容,将会使所有的请求访问失效,并报告404错误!!!(留意默认的tomcat页面http://localhost:8080/会显示部份内容)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明原文出处。如若内容造成侵权/违法违规/事实不符,请联系SD编程学习网:675289112@qq.com进行投诉反馈,一经查实,立即删除!