ความแตกต่างระหว่างสตรัทและสตรัท2

ความแตกต่างระหว่างสตรัทและสตรัท2
ความแตกต่างระหว่างสตรัทและสตรัท2

วีดีโอ: ความแตกต่างระหว่างสตรัทและสตรัท2

วีดีโอ: ความแตกต่างระหว่างสตรัทและสตรัท2
วีดีโอ: ไขข้อสงสัย ความแตกต่างระหว่าง HDD, SSD และ M.2 | iHAVECPU 2024, กรกฎาคม
Anonim

สตรัทกับสตรัท2

Struts (เรียกอีกอย่างว่า Apache Struts หรือ Struts 1) เป็นเฟรมเวิร์กโอเพ่นซอร์สข้ามแพลตฟอร์มที่เขียนด้วย Java ซึ่งมีไว้สำหรับการพัฒนาเว็บแอปพลิเคชัน Java EE มันเป็นหนึ่งในเฟรมเวิร์กแอปพลิเคชันเว็บ Java EE เริ่มต้น แต่ไม่กี่ปีต่อมา Struts2 (หรือ Struts เวอร์ชัน 2) ก็มาถึง และมันก็เป็นเฟรมเวิร์กเว็บแอปพลิเคชันที่ต่างไปจากเดิมอย่างสิ้นเชิงและได้รับการปรับปรุงอย่างมาก ได้กล่าวถึงปัญหาบางประการที่มองว่าเป็นข้อบกพร่องในเวอร์ชันเริ่มต้น ขณะนี้ Struts2 ถูกใช้งานอย่างหนักมากสำหรับการพัฒนาแอปพลิเคชัน Java EE ในโลก

Struts คืออะไร

เฟรมเวิร์กStruts (Struts 1) เป็นหนึ่งในเฟรมเวิร์กเว็บแอปพลิเคชันเริ่มต้นสำหรับการพัฒนาเว็บแอปพลิเคชัน Java EEเฟรมเวิร์ก Struts สนับสนุนการใช้สถาปัตยกรรม MVC (Model-View-Controller) เป็นส่วนขยายของ Java Servlet API Craig McClanahan เป็นผู้สร้างดั้งเดิมของ Struts เดิมชื่อ Jakaratha Struts และได้รับการดูแลภายใต้โครงการ Jakarta Project ของ Apache Software Foundation เผยแพร่ภายใต้ Apache License 2.0 เฟรมเวิร์ก Struts เรียกว่าเฟรมเวิร์กตามคำขอ และประกอบด้วยสามองค์ประกอบหลัก: ตัวจัดการคำขอ ตัวจัดการการตอบสนอง และไลบรารีแท็ก URI มาตรฐาน (Uniform Resource Identifier) ถูกแมปกับตัวจัดการคำขอ ตัวจัดการการตอบสนองมีหน้าที่ในการถ่ายโอนการควบคุม ในการสร้างแอปพลิเคชันแบบโต้ตอบด้วยแบบฟอร์ม คุณสามารถใช้คุณลักษณะที่มีให้โดยไลบรารีแท็กได้ Struts รองรับแอปพลิเคชัน REST และเทคโนโลยีต่างๆ เช่น SOAP, AJAX เป็นต้น

Struts2 คืออะไร

เฟรมเวิร์ก Struts ถูกมองว่ามีข้อจำกัดบางอย่าง (โดยหลักแล้ว การขาดการแยกระหว่างเลเยอร์การนำเสนอ เลเยอร์การจัดการคำขอ และโมเดล) โดยนักพัฒนา Java EE ในขณะนั้น และหลังจากนั้นไม่กี่ปีต่อมา Struts2 ก็มาถึงอันที่จริง Struts2 แตกต่างจาก Struts อย่างสิ้นเชิง อันที่จริง พวกเขาไม่ได้ใช้ฐานรหัสเดียวกันด้วยซ้ำ เพราะ Struts2 เป็นเพียงผลลัพธ์ของการเปลี่ยนชื่อเฟรมเวิร์ก WebWork 2.2 (เช่น ชุมชน WebWork และ Struts ที่ทำงานแยกกันในบางครั้ง ในที่สุดก็ได้ร่วมมือกันสร้าง Struts2) เวอร์ชันเสถียรในปัจจุบันคือเวอร์ชัน 2.2.3 ซึ่งเผยแพร่ในเดือนพฤษภาคม 2011

Struts กับ Struts2 ต่างกันอย่างไร

หนึ่งในปัญหามากมายของเฟรมเวิร์ก Struts คือความจำเป็นในการเขียนโปรแกรมไปยังคลาสนามธรรมแทนที่จะเป็นอินเตอร์เฟส สิ่งนี้ได้รับการแก้ไขโดยเฟรมเวิร์ก Struts2 ตัวอย่างเช่น กรอบงาน Struts จำเป็นต้องมีคลาส Action เพื่อขยายจากคลาสพื้นฐานที่เป็นนามธรรม แต่ Struts2 Actions สามารถใช้อินเทอร์เฟซ Action ได้ เนื่องจากความแตกต่างในโมเดลเธรดระหว่างสองเวอร์ชัน ปัญหาความปลอดภัยของเธรดที่เกิดขึ้นในเฟรมเวิร์ก Struts เกี่ยวกับออบเจกต์ Action ไม่เกิดขึ้นในเฟรมเวิร์ก Struts2 เหตุผลคืออ็อบเจ็กต์ Struts2 Action ถูกสร้างอินสแตนซ์สำหรับแต่ละคำขอ ในขณะที่ Action ในเฟรมเวิร์ก Struts มีเพียงอินสแตนซ์เดียวที่จะจัดการคำขอทั้งหมดสำหรับ Action นั้นไม่เหมือนกับ Actions in Struts framework, Struts2 Actions ไม่ได้ขึ้นอยู่กับ Servlet API

การทดสอบเฟรมเวิร์ก Struts2 นั้นค่อนข้างสูงกว่าเฟรมเวิร์ก Struts คุณสามารถทดสอบ Struts2 Actions ได้ง่ายๆ โดยทำตามสามขั้นตอน: การสร้างอินสแตนซ์ การตั้งค่าคุณสมบัติ และการเรียกใช้เมธอด การเก็บเกี่ยวอินพุตทำได้ง่ายขึ้นในเฟรมเวิร์ก Struts2 เนื่องจากคุณสมบัติการดำเนินการถูกใช้เป็นคุณสมบัติอินพุต โดยไม่ต้องเก็บอ็อบเจ็กต์อินพุตที่สอง นอกเหนือจากการรองรับการรวม JSTL (ซึ่งมีอยู่ใน Struts) เฟรมเวิร์ก Struts2 ยังสามารถใช้ OGNL ที่ทรงพลังและแสดงออกได้มากกว่า (Object Graph Notation Language) สำหรับการแปลงประเภท Strut และ Strut2 ใช้ Commons-Beanutils และ OGNL ตามลำดับ เนื่องจากการปรับปรุงเหล่านี้ เฟรมเวิร์ก Struts2 ถือเป็นเฟรมเวิร์กที่พัฒนาเต็มที่ และเป็นที่นิยมอย่างมากในหมู่โปรแกรมเมอร์ Java EE ในทางกลับกัน เฟรมเวิร์ก Struts ถือว่าล้าสมัยแล้ว