Enterprise Fortgeschritten

Ersetze ausführlichen HttpServlet-Boilerplate durch deklarative JAX-RS-Ressourcenklassen.

✕ 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();
    }
}
Problem mit diesem Code entdeckt? Sag uns Bescheid.
📐

Deklaratives Routing

Annotationen definieren HTTP-Methode, Pfad und Content-Type statt imperativem if/else-Dispatch.

🔄

Automatisches Marshalling

POJOs direkt zurückgeben; die Laufzeit serialisiert sie basierend auf @Produces nach JSON oder XML.

🧪

Einfacheres Testen

Ressourcenklassen sind einfache Java-Objekte, testbar ohne Servlet-Container.

Alter Ansatz
HttpServlet
Moderner Ansatz
JAX-RS-Ressource
Seit JDK
11
Schwierigkeitsgrad
Fortgeschritten
Servlet versus JAX-RS
Verfügbar

Weitgehend verfügbar seit Jakarta EE 8 / Java 11

JAX-RS (Jakarta RESTful Web Services) ermöglicht das Bereitstellen von REST-Endpunkten mit einfachen Annotationen wie @GET, @Path und @Produces. Kein manuelles Parsen von Request-Parametern oder Setzen von Content-Types in der Response mehr — die Laufzeitumgebung übernimmt Marshalling und Routing automatisch.

Teilen 𝕏 🦋 in