Java Servlet映射:带有尾随斜杠的url的url模式
我有一个与servlet映射相关的问题。我在web.xml中有以下内容: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进行开发
HelloWorldServlet
test.HelloWorldServlet
HelloWorldServlet
/地狱世界
如果我访问http://localhost:/MyApp/HelloWorld
调用servletHelloWorldServlet
我还希望我的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,如果结果与“/”不同,则显示错误(未找到)。