如何从@Path获取路径的一部分?

时间:2016-12-12 17:48:53

标签: java web-services url path uri

从路径(" / api / webservice / cursos / sugeridos / java-para-desenvolvimento-web")我需要得到(" / api / webservice / cursos /&#34 ;)

我有课:

@Path("/webservice/cursos")
public class Resource {

@GET
    @Path("/sugeridos/{uri: [\\w+\\-]*}")
    .........
    public Response getCourseByURI(@PathParam("uri") String uri, @Context UriInfo uriInfo) {
                String baseUrl = uriInfo.getAbsolutePath().getPath();
     }
}

uriInfo.getAbsolutePath().getPath()返回:

  

" / API / web服务/ cursos / sugeridos / Java的对 - desenvolvimento幅"

我只需要:

  

" / API / web服务/ cursos /"

2 个答案:

答案 0 :(得分:0)

您可以这样做:

String pathInfo = request.getPathInfo(); // //api/webservice/cursos/sugeridos/java-para-desenvolvimento-web
String[] parts = pathInfo.split("/");
String part0 = parts[0]; // api
String part1 = parts[1]; // webservice
String part2 = parts[2]; // cursos

HttpServletRequest

中获取请求

答案 1 :(得分:0)

您可以使用java-7 Path类:

Path path = Paths.get("/api/webservice/cursos/sugeridos/java-para-desenvolvimento-web");
System.out.println(path.subpath(0,3)); // api/webservice/cursos