Java 关于servlet映射的基本问题

Java 关于servlet映射的基本问题,java,redirect,servlets,jakarta-ee,jboss,Java,Redirect,Servlets,Jakarta Ee,Jboss,一般来说,我对J2EE和相关的东西都是新手。我正在尝试将一个特定的web应用程序从Sun One服务器部署转移到JBoss。应用程序中充满了许多servlet,每个servlet都会重定向到另一个servlet。 有太多的servlet让我无法在web.xml中分别输入这些servlet类到URL映射之间的映射。应用程序代码有许多重定向,它们将servlet类名本身命名为重定向URL。到目前为止,当我在JBoss上运行它时,URL中包含servlet类名的URL重定向在JBoss上似乎不起作用(

一般来说,我对J2EE和相关的东西都是新手。我正在尝试将一个特定的web应用程序从Sun One服务器部署转移到JBoss。应用程序中充满了许多servlet,每个servlet都会重定向到另一个servlet。 有太多的servlet让我无法在web.xml中分别输入这些servlet类到URL映射之间的映射。应用程序代码有许多重定向,它们将servlet类名本身命名为重定向URL。到目前为止,当我在JBoss上运行它时,URL中包含servlet类名的URL重定向在JBoss上似乎不起作用(它给出了404:notfound,可能是因为web.xml中没有映射)。那么,我是否可以设置任何配置设置来允许这种情况发生,或者应该在web.xml中手动输入每个URLpattern到Servlet的映射


谢谢。

我不知道你这是什么意思

应用程序代码有许多重定向,它们在重定向URL中命名servlet类名本身


servlet类中是否有硬编码的URL?有多少个servlet?如果您有硬编码的URL,它们可能都已断开,因为上下文略有不同,或者appname等。你能举个例子吗?

嗯,代码中有一些硬编码的URL,但即使我直接在浏览器中键入正确的URL,我仍然会得到404。大约有30个servlet(保守近似值)。例如:?arg1=ABCD&arg2=XYZ 这里servlet类名实际上是servlet的类名,没有“.class”扩展,这可能不是一个好的实践。但是代码中充满了这样的重定向,如果我必须改变这一点,那么我必须为web.xml中的每个servlet添加一个新的url模式,并为每个servlet构建一个新的红色rect url。那么,我是否可以避免这种情况,或者我是否必须经历做上述事情的痛苦

谢谢,
Manoj

很抱歉,URL模式看起来是这样的

有两种解决方案

  • 正如我们所知,JBoss使用Tomcat作为servlet容器。您可以启用InvokerServlet,这将避免您在web.xml中映射全部内容。但是要小心,那样做是幼稚的,而且

  • 其次,您可以编写另一个servlet/filter,并将其映射到web.xml中,用于每个url模式。然后,您的新servlet可以将请求转发到它应该转发的任何servlet


我希望你明白我的意思。

Sun One服务器中的servlet是如何定义的?你可能希望删除你的这些帖子,并通过编辑原始问题附加这些详细信息。它会保持线的清晰。