Java – how to map the root directory of URL schema directory in servlet mapping in spring MVC?

<servlet-mapping>
<servlet-mapping>
    <servlet-name>testServlet</servlet-name>
    <url-pattern>/test/*</url-pattern>
</servlet-mapping>

If I type / test / the page will work However, playing / testing or / testing / will not work I use spring MVC, and my request mapping is as follows:

@RequestMapping(value = {"","/"})

Edit:

I'm using a separate project for validation, but this seems to be the error of spring's urlpathhelper When there is a context and servlet path, the following method returns an incorrect path, and you click the servlet without a trailing slash

public String getPathWithinApplication(HttpServletRequest request) {
    String contextPath = getContextPath(request);
    String requestUri = getRequestUri(request);
    if (StringUtils.startsWithIgnoreCase(requestUri,contextPath)) {
        // Normal case: URI contains context path.
        String path = requestUri.substring(contextPath.length());
        return (StringUtils.hasText(path) ? path : "/");
    }
    else {
        // Special case: rather unusual.
        return requestUri;
    }
}

As an example, I said that I have a "admin" and the following servlet mapping context:

<servlet-mapping>
    <servlet-name>useRSServlet</servlet-name>
    <url-pattern>/users/*</url-pattern>
</servlet-mapping>

Now I have a request mapping in one of my controllers, as follows:

@RequestMapping(value = {"","/"})

If I click / admin / users, it won't work properly But if I click / admin / users / it will work Now, if I change the request mapping to the following, they all work:

@RequestMapping(value = {"/users","/"})

However, now URL / admin / users / users will also work (this is not what I want)

Solution

Yevgeniy is correct, but if your dispatcher servlet takes over the default servlet, it must be added to your web In XML:

<welcome-file-list>
    <welcome-file>/</welcome-file>
</welcome-file-list>
The content of this article comes from the network collection of netizens. It is used as a learning reference. The copyright belongs to the original author.
THE END
分享
二维码
< <上一篇
下一篇>>