`

Servlet激活器和缺省Servlet【转】

阅读更多

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


缺省Serlet:
当Servlet的映射路径仅为一个正斜杠/时,这个Servlet便为一个默认的Servlet
>>应用一:在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程序.
>>应用二:在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/会显示部份内容)

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    servlet过滤器Filter入门

    防止用户利用缺省 servlet URL 绕过过滤器设置。 9. 避免过滤器的使用限制 过滤器只在与 servlet 规范 2.3 版兼容的服务器上有作用。如果你的 Web 应用需要支持旧版服务器,就不能使用过滤器。 通过本文,我们...

    JAVA web过滤器Filter学习资料

    最后,禁用激活器 servlet,防止用户利用缺省 servlet URL 绕过过滤器设置。 在建立过滤器时,需要实现 javax.servlet.Filter 接口,该接口包含三个方法:doFilter、init 和 destroy。doFilter 方法是过滤器的核心...

    Java Web实现session过期后自动跳转到登陆页功能【基于过滤器】

    防止用户利用缺省servlet URL绕过过滤器设置。 六、SessionFilter实现 下面是一个简单的SessionFilter实现: ```java package com.base.filter; import java.io.IOException; import javax.servlet.Filter; ...

    超级有影响力霸气的Java面试题大全文档

    9、说出Servlet的生命周期,并说出Servlet和CGI的区别。  Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,service方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等,当...

    最新Java面试宝典pdf版

    17、JSP和Servlet有哪些相同点和不同点,他们之间的联系是什么? 90 18、MVC的各个部分都有那些技术来实现?如何实现? 90 19、我们在web应用开发过程中经常遇到输出某种编码的字符,如iso8859-1等,如何输出一个某种...

    Java面试宝典-经典

    17、JSP和Servlet有哪些相同点和不同点,他们之间的联系是什么? 90 18、MVC的各个部分都有那些技术来实现?如何实现? 90 19、我们在web应用开发过程中经常遇到输出某种编码的字符,如iso8859-1等,如何输出一个某种...

    java面试题大全(2012版)

    17、JSP和Servlet有哪些相同点和不同点,他们之间的联系是什么? 90 18、MVC的各个部分都有那些技术来实现?如何实现? 90 19、我们在web应用开发过程中经常遇到输出某种编码的字符,如iso8859-1等,如何输出一个某种...

    Java面试宝典2012版

    17、JSP和Servlet有哪些相同点和不同点,他们之间的联系是什么? 90 18、MVC的各个部分都有那些技术来实现?如何实现? 90 19、我们在web应用开发过程中经常遇到输出某种编码的字符,如iso8859-1等,如何输出一个...

    java面试宝典2012

    17、JSP和Servlet有哪些相同点和不同点,他们之间的联系是什么? 98 18、MVC的各个部分都有那些技术来实现?如何实现? 98 19、我们在web应用开发过程中经常遇到输出某种编码的字符,如iso8859-1等,如何输出一个某种...

    Java面试宝典2012新版

    17、JSP和Servlet有哪些相同点和不同点,他们之间的联系是什么? 90 18、MVC的各个部分都有那些技术来实现?如何实现? 90 19、我们在web应用开发过程中经常遇到输出某种编码的字符,如iso8859-1等,如何输出一个某种...

    java源码包---java 源码 大量 实例

    在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,从内存中清除…… Java Socket 聊天...

    RED HAT LINUX 6大全

    本书内容翔实、涉及领域广泛,并且提供了详细的例子和大量的参考资料(包括书籍、电子文档和Internet站点),是一本学习、使用和管理Linux不可多得的好书。 目 录 译者序 前言 第一部分 Red Hat Linux的介绍与安装 ...

    JAVA上百实例源码以及开源项目源代码

    在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,从内存中清除…… Java Socket 聊天...

    java源码包2

    在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,从内存中清除…… Java Socket 聊天...

    java源码包3

    在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,从内存中清除…… Java Socket 聊天...

    java源码包4

    在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,从内存中清除…… Java Socket 聊天...

Global site tag (gtag.js) - Google Analytics