Enterprise Intermediário

Substitua o boilerplate verboso de HttpServlet por classes de recurso JAX-RS declarativas.

✕ 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.
📐

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
Servlet versus JAX-RS
Disponível

Amplamente disponível desde o Jakarta EE 8 / Java 11

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.

Compartilhar 𝕏 🦋 in