Servlet versus JAX-RS
Substitua o boilerplate verboso de HttpServlet por classes de recurso JAX-RS declarativas.
Comparação de Código
✕ Java EE
@WebServlet("/users")
public class UserServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req,
HttpServletResponse res)
throws ServletException, IOException {
String id = req.getParameter("id");
res.setContentType("application/json");
res.getWriter().write("{\"id\":\"" + id + "\"}");
}
}
✓ Jakarta EE 8+
@Path("/users")
public class UserResource {
@GET
@Produces(MediaType.APPLICATION_JSON)
public Response getUser(
@QueryParam("id") String id) {
return Response.ok(new User(id)).build();
}
}
Viu um problema com este código? Nos avise.
Por que a forma moderna ganha
Roteamento declarativo
Anotações definem método HTTP, caminho e content type em vez de dispatch imperativo com if/else.
Marshalling automático
Retorne POJOs diretamente; o runtime os serializa para JSON ou XML com base em @Produces.
Testes mais fáceis
Classes de recurso são objetos Java simples, testáveis sem um container de servlets.
Abordagem Antiga
HttpServlet
Abordagem Moderna
JAX-RS Resource
Desde o JDK
11
Dificuldade
Intermediário
Suporte JDK
Servlet versus JAX-RS
Disponível
Amplamente disponível desde o Jakarta EE 8 / Java 11
Como funciona
JAX-RS (Jakarta RESTful Web Services) permite expor endpoints REST usando anotações simples como @GET, @Path e @Produces. Sem mais parsing manual de parâmetros de requisição ou definição de content types na resposta — o runtime cuida do marshalling e do roteamento automaticamente.
Documentação Relacionada