Java Servlet映射:带有尾随斜杠的url的url模式

Java Servlet映射:带有尾随斜杠的url的url模式,java,tomcat,servlets,netbeans,web.xml,Java,Tomcat,Servlets,Netbeans,Web.xml,我有一个与servlet映射相关的问题。我在web.xml中有以下内容: HelloWorldServlet test.HelloWorldServlet HelloWorldServlet /地狱世界 如果我访问http://localhost:/MyApp/HelloWorld调用servletHelloWorldServlet 我还希望我的Servlet响应http://localhost:/MyApp/HelloWorld/。我怎样才能达到这个效果?我正在使用NetBeans进行开发

我有一个与servlet映射相关的问题。我在web.xml中有以下内容:


HelloWorldServlet
test.HelloWorldServlet
HelloWorldServlet
/地狱世界
如果我访问
http://localhost:/MyApp/HelloWorld
调用servlet
HelloWorldServlet


我还希望我的Servlet响应
http://localhost:/MyApp/HelloWorld/
。我怎样才能达到这个效果?我正在使用NetBeans进行开发,但它不允许我在您的
上添加通配符后,将模式以
/
结尾

/HelloWorld/*
您可以使用获取与URL关联的额外路径

例如

http://localhost:/MyApp/HelloWorld/one/

结果将是

/one/
从JavaDoc:

返回任何额外的路径信息 与客户端的URL关联 在发出此请求时发送。这个 额外的路径信息如下所示 servlet路径,但位于查询之前 字符串,并将以“/”开头 性格


使用通配符。您可以将所有指向特定URL的流量重定向到同一个servlet。例如,可以添加以下内容:


HelloWorldServlet
/地狱世界/*
这将用斜杠将URL重定向到原始servlet


一个想法是,这会将任何指向此URL模式的内容重定向到servlet。如果希望其他URL超过此URL,则应创建一个servlet,该servlet将重定向到正确的URL(通过查看指定的URL)。或者,您可以使用一个为您提供映射的框架。

它是否已经起作用了?如果在没有netbeans前端的情况下编辑xml并部署项目,会发生什么情况?如果我在没有netbeans前端的情况下编辑xml并部署项目,则不会加载图像、css和js。如果我在没有netbeans前端的情况下编辑xml并部署项目、css、js、图像,etc没有加载O.O。正如所有人所说,解决方案是使用语法/*。有了这个,您可以调用…/HelloWorld和…/HelloWorld/。如果我写…/HelloWorld/foo,就会调用相同的servlet(如本页所示)。如果您不希望出现这种效果,那么必须使用HttpServletRequest.getPathInfo()方法,正如Elite先生所说的那样。然后重定向到jsp,如果结果与“/”不同,则显示错误(未找到)。