我希望我的一个servlet(test2)处理“/”请求(即http://localhost/),而另一个servlet(test1)处理所有其他请求(“/ *”)。通配符请求的web.xml servlet映射
设置我的web.xml以下,但问题是,所有的请求去test1.jsp(甚至是“/”请求)
谁能告诉我如何做到这一点?
<servlet>
<servlet-name>test1</servlet-name>
<jsp-file>/test1.jsp</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>test1</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>test2</servlet-name>
<jsp-file>/test2.jsp</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>test2</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
----编辑-----
我意识到我的问题是有点不明确,不完整的。这里是正是我想要完成一个例子..
- http://mytestsite.com/ - >映射到http://mytestsite.com/index.html
- http://mytestsite.com/servlet1 - >运行com.mytestsite.servlet1
- http://mytestsite.com/ * - >映射到http://mytestsite.com/catchall.jsp(我想未在web.xml中映射的所有其他请求映射到catchall.jsp)
所以我的web.xml如下所示:
<servlet>
<servlet-name>servlet1</servlet-name>
<servlet-class>com.mytestsite.servlet1</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>servlet1</servlet-name>
<url-pattern>/servlet1</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>catchall</servlet-name>
<jsp-file>/catchall.jsp</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>catchall</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
,所以我注意到一个奇怪的问题。当我请求http://mytestsite.com/时,它会在重定向到index.html之前转到catchall.jsp。然而,如此之快,我根本不会注意到它击中catchall.jsp(但我把在的System.out.println这个文件,它肯定是打它)。
感谢您花时间看我遇到的问题。我编辑了我的问题上面。希望它清除了一切...... – jmoney 2009-09-28 16:06:48