Ваш документ JSON может быть проанализирован для класса, подобного показанному ниже:
@Data
public class Foo {
private String token;
}
И, ну, вы могли бы иметь HttpServlet
и затем анализируйте JSON, используя ObjectMapper
Джексона:
@WebServlet("/foo")
public class FooServlet extends HttpServlet {
private ObjectMapper mapper = new ObjectMapper();
@Override
protected void doPost(HttpServletRequest req,
HttpServletResponse resp) throws IOException {
Foo foo = mapper.readValue(req.getInputStream(), Foo.class);
// Do something with foo
resp.setStatus(HttpServletResponse.SC_OK);
}
}
Но в большинстве реальных приложений это не то, что должен делать.Сервлеты слишком низкоуровневые, и некоторые фреймворки были созданы, чтобы упростить задачу.На самом деле, большинство этих фреймворков построено на основе сервлетов.
JAX-RS
В JAX-RS и в его реализациях (таких как Джерси) у вас будет следующее:
@Path("/foo")
public class FooResource {
@POST
@Consumes(MediaType.APPLICATION_JSON)
public Response doSomethingWithFoo(Foo foo) {
// Do something with foo
return Response.ok().build();
}
}
Spring Web MVC
В Spring Web MVC вот что вы можете получить:
@RestController
public class FooController {
@PostMapping(path = "/foo", consumes = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<Void> doSomethingWithFoo(@RequestBody Foo foo) {
// Do something with foo
return ResponseEntity.ok();
}
}
Подробнее о различиях между JAX-RS и Spring Web MVC, см. Этот ответ .