如何从 Tomcat 8 中的“HttpServletRequest”获取服务

How can I get the service from a `HttpServletRequest` in Tomcat 8

如何从 Tomcat 8 中的 HttpServletRequest 获取服务?

在 tomcat 中,7 映射器在 Connector 中,所以我能够以

的方式访问映射器
((Request) request).getConnector().getMapper() //request is a HttpServletRequest

但是我怎样才能在Tomcat 8 中得到这个呢? 在 tomcat 8 迁移文档中说

The Mapper has moved from the Connector to the Service since the Mapper is identical for all Connectors of a given Service.

public static String getFullURL(HttpServletRequest request) {
StringBuffer requestURL = request.getRequestURL();
String queryString = request.getQueryString();

if (queryString == null) {
    return requestURL.toString();
} else {
    return requestURL.append('?').append(queryString).toString();
}

}

终于想通了 我必须从 Connector

获取服务
getConnector().getService().getMapper()

tomcat 开发人员刚刚将映射器移至 Service。所以使用:

((Request) request).getConnector().getService().getMapper()