【发布时间】:2014-11-17 15:13:25
【问题描述】:
我们有一个由外部供应商提供的网络应用程序。有一个 servlet - 如果在没有参数的情况下调用 - 会引发异常。我们可以访问web.xml。
是否可以将 servlet url http://<server>:8080/<app>/<servlet> 重定向到具有默认参数的同一 servlet,例如到http://<server>:8080/<app>/<servlet>?p1=0?
我知道使用 Apache 和 .htaccess 可以使用 rewrite engine 进行重定向。不过不知道有没有其他方式只依赖tomcat。
【问题讨论】:
-
如果可以改
web.xml,也可以写代码。如果需要,您可以在该 servlet 前面添加一个过滤器,该过滤器使用HttpServletRequestWrapper添加缺少的参数。或者您可以扩展 servlet 的类(如果该类和相关方法都不是最终的)并实现此功能。然后在web.xml中使用扩展类为servlet-class。 -
@NikosParaskevopoulos 您的评论大约提前一小时被编辑,作为下面 worpet 的答案。因为下面的答案包含与您的 cmets 中基本相同的建议,所以我想将您的评论标记为答案。如果您愿意,只需添加您的评论作为答案,我会标记它。如果使用过滤器方法,欢迎提供一些提示如何将默认参数添加到请求中。