Struts vs Struts2
Struts (juga dikenal sebagai Apache Struts atau Struts 1) adalah kerangka kerja open source lintas-platform yang ditulis dalam Java, yang dimaksudkan untuk mengembangkan aplikasi web Java EE. Itu adalah salah satu kerangka kerja aplikasi web Java EE awal. Tetapi beberapa tahun kemudian, Struts2 (atau Struts versi 2) tiba, dan itu adalah kerangka kerja aplikasi web yang sangat berbeda dan sangat ditingkatkan. Itu telah membahas beberapa masalah yang dianggap sebagai kekurangan dalam versi awal. Sekarang, Struts2 sedang digunakan sangat banyak untuk mengembangkan aplikasi Java EE di dunia.
Apa itu Struts?
Kerangka kerja Struts (Struts 1) adalah salah satu kerangka kerja aplikasi web awal untuk mengembangkan aplikasi web Java EE. Kerangka kerja Struts mendorong penggunaan arsitektur MVC (Model-View-Controller). Ini adalah ekstensi dari Java Servlet API. Craig McClanahan adalah pencipta asli Struts. Awalnya itu dikenal sebagai Jakaratha Struts dan dikelola di bawah Jakarta Project of Apache Software Foundation. Ini dirilis di bawah Lisensi Apache 2.0. Kerangka kerja Struts disebut kerangka kerja berbasis permintaan, dan terdiri dari tiga komponen utama: penangan permintaan, penangan respons dan perpustakaan tag. URI standar (Uniform Resource Identifier) dipetakan ke penangan permintaan. Penangan respons bertanggung jawab untuk mentransfer kontrol. Untuk membuat aplikasi interaktif dengan formulir, fitur yang ditawarkan oleh perpustakaan tag dapat dimanfaatkan. Struts mendukung aplikasi REST dan berbagai teknologi seperti SOAP, AJAX, dll.
Apa itu Struts2?
Kerangka kerja Struts dianggap mengandung batasan tertentu (terutama kurangnya pemisahan antara lapisan presentasi, lapisan penanganan permintaan dan model) oleh pengembang Java EE pada waktu itu, dan akibatnya beberapa tahun kemudian Struts2 tiba. Sebenarnya, Struts2 benar-benar berbeda dari Struts. Bahkan, mereka bahkan tidak berbagi basis kode yang sama karena Struts2 hanyalah hasil dari penggantian nama kerangka kerja WebWork 2.2 (mis. Komunitas WebWork dan Struts yang bekerja secara terpisah untuk beberapa waktu akhirnya bergandengan tangan untuk menghasilkan Struts2). Rilis stabil saat ini adalah versi 2.2.3, yang dirilis pada Mei 2011.
Apa perbedaan antara Struts dan Struts2?
Salah satu dari banyak masalah kerangka kerja Struts adalah perlunya pemrograman ke kelas abstrak alih-alih antarmuka. Ini diselesaikan oleh kerangka Struts2. Sebagai contoh, kerangka kerja Struts membutuhkan kelas-kelas Action untuk diperluas dari kelas-kelas basis abstrak, tetapi Struts2 Actions dapat mengimplementasikan antarmuka Action. Karena perbedaan dalam model threading antara dua versi masalah keamanan benang yang muncul dalam kerangka kerja Struts mengenai objek Aksi tidak terjadi dalam kerangka kerja Struts2. Alasannya adalah objek Aksi Struts2 dipakai untuk setiap permintaan, sementara kerangka kerja Action in Struts hanya memiliki satu instance untuk menangani semua permintaan untuk Aksi itu. Berbeda dengan kerangka kerja Actions in Struts, Struts2 Actions tidak bergantung pada Servlet API.
Testabilitas kerangka Struts2 relatif lebih tinggi dari kerangka Struts. Anda dapat menguji Tindakan Struts2 hanya dengan mengikuti tiga langkah: instantiation, pengaturan properti, dan pemanggilan metode. Input panen lebih mudah dalam kerangka Struts2 karena properti Action digunakan sebagai properti input, tanpa harus menyimpan objek input kedua. Terlepas dari dukungan untuk integrasi JSTL (yang ada di Struts), kerangka kerja Struts2 dapat menggunakan OGNL yang lebih kuat dan ekspresif (Object Graph Notation Language). Untuk konversi tipe, Strut dan Strut2 masing-masing menggunakan Commons-Beanutils dan OGNL. Karena perbaikan ini, kerangka kerja Struts2 dianggap sebagai kerangka kerja yang sangat matang dan sangat populer di kalangan programmer Java EE. Di sisi lain, kerangka kerja Struts sekarang dianggap usang.