在URL末尾添加一个“斜杠”有什么区别?

3
这两个URL有什么不同呢?
http://localhost:8084/D_Nappster/NewServlet/

并且。
http://localhost:8084/D_Nappster/NewServlet

第一个URL返回404错误,而第二个URL按预期工作。
web.xml文件中:
<servlet-mapping>
    <servlet-name>NewServlet</servlet-name>
    <url-pattern>/NewServlet</url-pattern>
</servlet-mapping>

由于您的web.xml中没有NewServlet/的URL映射,因此您的服务器不知道在收到以NewServlet/结尾的请求时该重定向到哪里。 - Jayamohan
你可能想看一下这个链接:http://googlewebmastercentral.blogspot.in/2010/04/to-slash-or-not-to-slash.html,它与编程有关。 - Prateek
3个回答

2
一般来说,第一个URL会被视为目录,而第二个URL会被视为文件。 在您的情况下,第一个URL没有映射,因此被视为不存在的目录,导致了404错误。

0
通常在URL末尾加上/会让服务器认为它是一个文件夹而不是servlet。
http://localhost:8084/D_Nappster/NewServlet/

因此,在上述情况下,它试图查找NewServlet文件夹的默认页面。而在第二个URL中,服务器正确地推断出它是一个Servlet并完美地呈现UI。
另外,您的web.xml文件不包含NewServlet/ url-pattern的定义,因此会出现404错误。

0
第一个没有斜杠的URL会访问NewServlet类。
第二个带有斜杠的URL会尝试找到名为NewServlet的文件夹并访问文件夹中的默认设置。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接