0

好的,所以我创建了 restful webservice。现在如何为用户“abc”创建路径。
像这样的东西

http://stackoverflow.com/user/abc

以下是我通过 html 获取用户输入的表单

@POST
    @Produces(MediaType.TEXT_HTML)
    @Consumes(MediaType.APPLICATION_FORM_URLENCODED)
    public void newUser(
            @FormParam("uname") String uname,
            @FormParam("password") String password,
            @Context HttpServletResponse servletResponse
    ) throws IOException {
        User u = new User(uname,password);
        User.userdata.put(uname,password);
    }

如果用户的 uname 为“abc”,如何从表单参数中创建类似这样的 URI

http://mysite/user/abc  
4

1 回答 1

0

使用@Path@PathParam注解:

@Path("/user/{uname}")
@PUT
@Consumes("text/plain")
public void putUser(@PathParam("uname") String uname, String password) {
  // ..
}

如果你PUT/user/joe配一身的s3cret话,uname就会是joepassword也会是s3cret

我使用PUT是因为您要使用的 URL 意味着用户名是由客户端设置的。/user是所有用户的集合资源。

编辑:由于此方法将通过创建新用户来更改服务器状态,PUT因此POST必须使用。GET 不得更改服务器状态。

于 2013-06-19T08:36:17.623 回答