Servlet vs JAX-RS
Sostituisci il verboso boilerplate HttpServlet con classi di risorse JAX-RS dichiarative.
Confronto Codice
✕ 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();
}
}
Vedi un problema con questo codice? Faccelo sapere.
Perché vince l'approccio moderno
Routing dichiarativo
Le annotazioni definiscono il metodo HTTP, il percorso e il tipo di contenuto invece del dispatch imperativo if/else.
Marshalling automatico
Restituisci POJO direttamente; il runtime li serializza in JSON o XML in base a @Produces.
Test più facile
Le classi di risorse sono semplici oggetti Java, testabili senza un container servlet.
Approccio Vecchio
HttpServlet
Approccio Moderno
Risorsa JAX-RS
Dal JDK
11
Difficoltà
Intermedio
Supporto JDK
Servlet vs JAX-RS
Disponibile
Ampiamente disponibile da Jakarta EE 8 / Java 11
Come funziona
JAX-RS (Jakarta RESTful Web Services) consente di esporre endpoint REST usando semplici annotazioni come @GET, @Path e @Produces. Niente più parsing manuale dei parametri di richiesta o impostazione dei tipi di contenuto sulla risposta — il runtime gestisce automaticamente il marshalling e il routing.
Documentazione Correlata