在使用 RequestDispatcher.incldue 导入一个不存在的 resource 时,如果这个 resource 是 .jsp 那么程序将报告异常。但是如果 resource 是一个 servlet 或 html 时,就不会产生异常,只是在 response 中设置里一些“错误信息”。
我使用的是 Tomcat5.5 和 6.0 。这是 Tomcat 的 bug?如果要 include 一个 servlet ,那么在 include 之前判断 servlet  是否存在,该怎么判断呢?能否通过 URI 或 URL 来判断呢?我在 URI 和 URL 的 API 帮助文档中没有找到相关方法。

解决方案 »

  1.   

    try{
    }catch() {
    }
    就好了。
      

  2.   

    因为调用的jsp需要翻成servlet。没有,翻译就会报错,而静态 html和 servlet就直接加载,没有加载到就没有加载到。 纯属经验之谈。
      

  3.   

    谢3楼的回复。得到意外的收获了~~原理都给我讲了,呵呵~~~
    那又是如何判断servlet“这种资源”是否存在呢?我所能想到的就是将程序中所有的 servlet 进行 cache 。然后再 include 之前,在 cache 中先进行搜索。
    但不知道 Java 有没有提供相应的 API 来实现判断 servlet 是否存在呢?