将“正斜杠”放在最后,制作一个网址有什么区别?

时间:2013-01-27 07:24:11

标签: java url java-ee servlets url-pattern

2个网址之间有什么区别:

http://localhost:8084/D_Nappster/NewServlet/

http://localhost:8084/D_Nappster/NewServlet

第一个网址获得404响应,而第二个网址按预期工作。

来自 web.xml

<servlet-mapping>
    <servlet-name>NewServlet</servlet-name>
    <url-pattern>/NewServlet</url-pattern>
</servlet-mapping>

3 个答案:

答案 0 :(得分:2)

通常,第一个URL将被视为目录,而第二个URL将被视为文件。

在您的情况下,您没有第一个网址的映射,因此它被视为不存在的目录,从而导致404.

答案 1 :(得分:0)

通常,最后/使服务器认为它是一个文件夹而不是url-pattern中提到的servlet。

http://localhost:8084/D_Nappster/NewServlet/

因此,在上述情况下,它会尝试查找NewServlet文件夹的默认页面。然而,在第二个URL中,服务器正确地断定它是一个Servlet并且可以直接呈现UI。

此外,web.xml不包含NewServlet/ url-pattern的定义,因此也包含404错误。

答案 2 :(得分:0)

没有/的第一个URL访问并访问NewServlet类..

第二个带/的URL尝试查找名为NewServlet的文件夹并访问文件夹中的默认设置