Struts vs Struts2
Struts (juga dikenali sebagai Apache Struts atau Struts 1) adalah kerangka sumber terbuka rentas platform yang ditulis di Jawa, yang bertujuan untuk membangunkan aplikasi web Java EE. Ia adalah salah satu kerangka aplikasi web Java EE awal. Tetapi beberapa tahun kemudian, struts2 (atau struts versi 2) tiba, dan ia adalah rangka kerja aplikasi web yang sangat berbeza dan sangat baik. Ia telah menangani beberapa isu yang dianggap sebagai kekurangan dalam versi awal. Sekarang, Struts2 digunakan dengan sangat berat untuk membangunkan aplikasi Java EE di dunia.
Apa itu Struts?
Rangka Kerja Struts (Struts 1) adalah salah satu rangka kerja aplikasi web awal untuk membangunkan aplikasi web Java EE. Kerangka Struts menggalakkan penggunaan seni bina MVC (model-view-controller). Ia adalah lanjutan Java Servlet API. Craig McClanahan adalah pencipta asal Struts. Pada mulanya ia dikenali sebagai Jakaratha Struts dan dikekalkan di bawah Projek Jakarta Yayasan Perisian Apache. Ia dibebaskan di bawah lesen Apache 2.0. Rangka Kerja Struts dipanggil Rangka Kerja Berasaskan Permintaan, dan ia terdiri daripada tiga komponen utama: pengendali permintaan, pengendali respons dan perpustakaan tag. Standard URI (Pengenal Sumber Seragam) dipetakan ke Pengendali Permintaan. Pengendali tindak balas bertanggungjawab untuk memindahkan kawalan. Untuk membuat aplikasi interaktif dengan borang, ciri -ciri yang ditawarkan oleh perpustakaan tag boleh digunakan. Struts menyokong aplikasi rehat dan pelbagai teknologi seperti sabun, ajax, dll.
Apa itu Struts2?
Rangka kerja Struts dianggap mengandungi batasan tertentu (terutamanya kekurangan pemisahan antara lapisan persembahan, permintaan pengendalian lapisan dan model) oleh pemaju Java EE pada masa itu, dan akibatnya beberapa tahun kemudian Struts2 tiba tiba. Sebenarnya, struts2 sama sekali berbeza dengan struts. Malah, mereka bahkan tidak berkongsi asas kod yang sama kerana struts2 hanyalah hasil penamaan semula web kerja 2.2 rangka kerja (i.e. Komuniti Webwork and Struts yang bekerja secara berasingan untuk beberapa waktu akhirnya bergabung dengan tangan untuk datang dengan Struts2). Pelepasan stabil semasa adalah versi 2.2.3, yang dikeluarkan pada bulan Mei, 2011.
Apakah perbezaan antara struts dan struts2?
Salah satu daripada banyak masalah kerangka Struts adalah keperluan untuk pengaturcaraan ke kelas abstrak dan bukannya antara muka. Ini diselesaikan oleh rangka kerja Struts2. Sebagai contoh, rangka kerja Struts diperlukan kelas tindakan untuk dilanjutkan dari kelas asas abstrak, tetapi tindakan Struts2 dapat melaksanakan antara muka tindakan. Oleh kerana perbezaan dalam model threading antara kedua-dua versi isu-isu keselamatan benang yang muncul dalam rangka kerja Struts mengenai objek tindakan tidak berlaku dalam rangka kerja Struts2. Sebabnya adalah objek tindakan struts2 yang dimasukkan untuk setiap permintaan, sementara tindakan dalam kerangka Struts hanya mempunyai satu contoh untuk mengendalikan semua permintaan untuk tindakan itu. Tidak seperti tindakan dalam kerangka Struts, tindakan Struts2 tidak bergantung pada API Servlet.
Kesesuaian Rangka Kerja Struts2 agak lebih tinggi daripada kerangka Struts. Anda boleh menguji tindakan Struts2 hanya mengikuti tiga langkah: instantiasi, menetapkan sifat dan penyerahan kaedah. Input penuaian lebih mudah dalam rangka kerja struts2 kerana sifat tindakan digunakan sebagai sifat input, tanpa perlu menyimpan objek input kedua. Selain sokongan untuk integrasi JSTL (yang terdapat dalam struts), rangka kerja Struts2 boleh menggunakan OGNL yang lebih berkuasa dan ekspresif (bahasa notasi graf objek). Untuk penukaran jenis, Strut dan Strut2 menggunakan Commons-Beanutils dan OGNL, masing-masing. Kerana penambahbaikan ini, rangka kerja Struts2 dianggap sebagai rangka kerja yang sangat matang dan ia sangat popular di kalangan pengaturcara Java EE. Sebaliknya, kerangka struts kini dianggap usang.