Enterprise মধ্যম

ভার্বোস HttpServlet বয়লারপ্লেটের পরিবর্তে ডিক্লারেটিভ JAX-RS রিসোর্স ক্লাস ব্যবহার করুন।

✕ 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();
    }
}
এই কোডে সমস্যা দেখছেন? আমাদের জানান।
📐

ডিক্লারেটিভ রাউটিং (Declarative Routing)

অ্যানোটেশনগুলো HTTP মেথড, পাথ এবং কন্টেন্ট টাইপ সংজ্ঞায়িত করে, ইম্পারেটিভ (imperative) if/else ডিসপ্যাচের পরিবর্তে।

🔄

স্বয়ংক্রিয় মার্শালিং (Automatic Marshalling)

POJOs সরাসরি রিটার্ন করুন; @Produces-এর উপর ভিত্তি করে রানটাইম সেগুলোকে স্বয়ংক্রিয়ভাবে JSON বা XML-এ সিরিয়ালাইজ করে।

🧪

সহজে টেস্টিং (Easier Testing)

রিসোর্স ক্লাসগুলো প্লেইন জাভা অবজেক্ট, যা সার্ভলেট কন্টেইনার ছাড়াই টেস্টিং করা যায়।

পুরনো পদ্ধতি
HttpServlet
আধুনিক পদ্ধতি
JAX-RS Resource
JDK থেকে
11
কঠিনতা
মধ্যম
Servlet বনাম JAX-RS
উপলব্ধ

জাকার্তা EE 8 / Java 11 থেকে ব্যাপকভাবে উপলব্ধ৷

JAX-RS (Jakarta RESTful Web Services) আপনাকে @GET, @Path, এবং @Produces-এর মতো সহজ অ্যানোটেশন ব্যবহার করে REST এন্ডপয়েন্ট এক্সপোজ করতে দেয়। রিকোয়েস্ট প্যারামিটার ম্যানুয়ালি পার্স (parse) করা বা রেসপন্সে কন্টেন্ট টাইপ সেট করার আর প্রয়োজন নেই – রানটাইম স্বয়ংক্রিয়ভাবে মার্শালিং (marshalling) এবং রাউটিং (routing) হ্যান্ডেল করে।