Struts vs Struts2
Struts (juga dikenali sebagai Apache Struts atau Struts 1) adalah kerangka sumber terbuka rentetan platform yang ditulis di Jawa, yang bertujuan untuk mengembangkan aplikasi web Java EE. Ia merupakan salah satu rangka kerja aplikasi 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 sedang digunakan dengan sangat banyak untuk membangunkan aplikasi Java EE di dunia.
Apa itu Struts?
Struts (Struts 1) merupakan salah satu rangka kerja aplikasi web awal untuk membangunkan aplikasi web Java EE. Rangka kerja Struts menggalakkan penggunaan seni bina MVC (Model-View-Controller). Ia adalah lanjutan API Java Servlet. Craig McClanahan adalah pencipta asal Struts. Pada mulanya ia dikenali sebagai Jakaratha Struts dan dikendalikan di bawah Projek Yayasan Apache Software Jakarta. Ia dikeluarkan di bawah Lesen Apache 2.0. Rangka kerja Struts dipanggil rangka kerja berdasarkan permintaan, dan terdiri daripada tiga komponen utama: pengangkut permintaan, penangan respons dan perpustakaan tag. URI Standard (Uniform Resource Identifier) dipetakan ke handler permintaan. Pengendali respons bertanggungjawab untuk memindahkan kawalan. Untuk membuat aplikasi interaktif dengan borang, ciri yang ditawarkan oleh perpustakaan tag boleh digunakan. Struts menyokong aplikasi REST dan pelbagai teknologi seperti SOAP, AJAX, dan lain-lain.
Apa itu Struts2?
Kerangka Struts dilihat mempunyai batasan tertentu (terutamanya kekurangan pemisahan antara lapisan persembahan, lapisan pengendalian permintaan dan model) oleh pemaju Java EE pada masa itu, dan akibatnya beberapa tahun kemudian Struts2 tiba. Sebenarnya, Struts2 berbeza daripada Struts. Sebenarnya, mereka bahkan tidak berkongsi pangkalan kod yang sama kerana Struts2 hanya hasil penamaan semula kerangka WebWork 2.2 (iaitu komuniti WebWork dan Struts yang bekerja secara berasingan untuk beberapa waktu akhirnya menyertai tangan untuk menghasilkan Struts2). Pembebasan stabil semasa adalah versi 2.2.3, yang dikeluarkan pada bulan Mei, 2011.
Apakah perbezaan antara Struts dan Struts2?
Salah satu daripada banyak masalah rangka kerja Struts adalah keperluan untuk pengaturcaraan kepada kelas abstrak dan bukannya antara muka. Ini telah diselesaikan oleh rangka Struts2. Sebagai contoh, rangka kerja Struts memerlukan kelas Aksi untuk dilanjutkan dari kelas asas abstrak, tetapi Tindakan Struts2 boleh melaksanakan antara muka Aksi. Kerana perbezaan dalam model threading antara dua versi isu-isu keselamatan thread yang muncul dalam rangka Struts mengenai objek Tindakan tidak berlaku dalam rangka Struts2. Alasannya adalah objek Tindakan Struts2 yang instantiated untuk setiap permintaan, manakala Tindakan dalam rangka Struts hanya mempunyai satu contoh untuk mengendalikan semua permintaan Tindakan tersebut. Tidak seperti Tindakan dalam rangka Struts, Tindakan Struts2 tidak bergantung kepada API Servlet.
Kesesuaian rangka kerja Struts2 adalah lebih tinggi daripada rangka kerja Struts. Anda boleh menguji Tindakan Struts2 hanya mengikuti tiga langkah: instansiasi, penetapan sifat dan penyerahan kaedah. Input penuaian lebih mudah dalam rangka Struts2 sebagai sifat Tindakan digunakan sebagai sifat input, tanpa perlu menyimpan objek masukan kedua. Selain daripada sokongan untuk integrasi JSTL (yang terdapat di Struts), rangka kerja Struts2 boleh menggunakan OGNL (Graph Language Object Notation) yang lebih berkuasa dan ekspresif. Untuk jenis penukaran, Strut dan Strut2 menggunakan Commons-Beanutils dan OGNL, masing-masing. Oleh kerana peningkatan ini, rangka kerja Struts2 dianggap sebagai rangka kerja yang sangat matang dan ia sangat popular di kalangan pengaturcara Java EE. Sebaliknya, rangka kerja Struts kini dianggap usang.