禁用激活器servlet(临时摘)

  禁用激活器servlet
     在对资源应用过滤器时,可通过指定要应用过滤器的URL模式或servlet名来完成。如果提供servlet名,则此名称必须与web.xml的 servlet元素中给出的名称相匹配。如果使用应用到一个serlvet的URL模式,则此模式必须与利用web.xml的元素servlet- mapping指定的模式相匹配。但是,多数服务器使用“激活器servlet”为servlet体统一个缺省的URL:http: //host/WebAppPrefix/servlet/ServletName。需要保证用户不利用这个URL访问servlet(这样会绕过过滤器 设置)。
例如,假如利用filter和filter-mapping指示名为SomeFilter的过滤器应用到名为SomeServlet的servlet,则如下:
   < filter >
      
< filter-name > SomeFilter </ filter-name >
      
< filter-class > somePackage.SomeFilterClass </ filter-class >
    
</ filter >
    
<!-- ... -->
    
< filter-mapping >
      
< filter-name > SomeFilter </ filter-name >
      
< servlet-name > SomeServlet </ servlet-name >
    
</ filter-mapping >



接着,用servlet和servlet-mapping规定URL   http://host/webAppPrefix/Blah 应该调用SomeSerlvet,如下所示:

   < filter >
      
< filter-name > SomeFilter </ filter-name >
      
< filter-class > somePackage.SomeFilterClass </ filter-class >
    
</ filter >
    
<!-- ... -->
    
< filter-mapping >
      
< filter-name > SomeFilter </ filter-name >
      
< servlet-name >/Blah </ servlet-name >
    
</ filter-mapping >



现在,在客户机使用URL   http://host/webAppPrefix/Blah 时就会调用过滤器。过滤器不应用到
http://host/webAppPrefix/servlet/SomePackage.SomeServletClass。
尽管有关闭激活器的服务器专用方法。但是,可移植最强的方法时重新映射Web应用钟的/servlet模式,这样使所有包含此模式的请求被送到相同的 servlet中。为了重新映射此模式,首先应该建立一个简单的servlet,它打印一条错误消息,或重定向用户到顶层页。然后,使用servlet和 servlet-mapping元素发送包含/servlet模式的请求到该servlet。程序清单9-1给出了一个简短的例子。

程序清单9-1 web.xml(重定向缺省servlet URL的摘录)

    <? xml version="1.0" encoding="ISO-8859-1" ?>
    
<! DOCTYPE web-app PUBLIC
         "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
         "http://java.sun.com/dtd/web-app_2_3.dtd"
>
    
< web-app >
    
<!-- ... -->
    
< servlet >
      
< servlet-name > Error </ servlet-name >
      
< servlet-class > somePackage.ErrorServlet </ servlet-class >
    
</ servlet >
    
<!-- ... -->
    
< servlet-mapping >
      
< servlet-name > Error </ servlet-name >
      
< url-pattern > /servlet/* </ url-pattern >
    
</ servlet-mapping >
    
<!-- ... -->
    
</ web-app >
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值