Rumah  >  Artikel  >  Java  >  Pemahaman mendalam tentang prinsip kerja dan fungsi utama rangka kerja Struts2

Pemahaman mendalam tentang prinsip kerja dan fungsi utama rangka kerja Struts2

PHPz
PHPzasal
2024-01-05 08:25:151132semak imbas

Pemahaman mendalam tentang prinsip kerja dan fungsi utama rangka kerja Struts2

Untuk memahami prinsip operasi dan ciri teras rangka kerja Struts2, contoh kod khusus diperlukan

Struts2 ialah rangka kerja aplikasi web sumber terbuka berdasarkan Java Ia adalah versi seterusnya bagi rangka kerja Struts (Model-View-Controller) ) seni bina untuk membangunkan aplikasi web yang boleh diselenggara dan berskala. Adalah sangat penting bagi pembangun untuk memahami prinsip operasi dan ciri teras Struts2.

1. Prinsip operasi Struts2

Struts2 adalah berdasarkan seni bina MVC terutamanya termasuk langkah berikut:

1. Pelanggan menghantar permintaan: Apabila pengguna memasukkan URL dalam penyemak imbas atau mengklik a pautan, pelayar Permintaan HTTP akan dihantar ke pelayan.

2 Pelayan menerima permintaan: Selepas pelayan menerima permintaan, ia akan mencari pengawal Struts2 yang sepadan berdasarkan maklumat konfigurasi dalam fail konfigurasi.

3 Pengawal memproses permintaan: Pengawal akan menentukan kaedah mana kelas Tindakan untuk dilaksanakan berdasarkan maklumat dalam permintaan dan maklumat konfigurasi dalam fail konfigurasi.

4. Kelas tindakan mengendalikan permintaan: Kelas tindakan ialah komponen teras dalam rangka kerja Struts2, yang bertanggungjawab untuk memproses logik perniagaan tertentu. Pengawal akan memanggil kaedah sepadan kelas Tindakan.

5 Kembalikan hasil paparan: Selepas kaedah kelas Tindakan dilaksanakan, paparan hasil akan dikembalikan. Hasil paparan ialah halaman JSP atau jenis paparan lain yang digunakan untuk membentangkan hasil kepada pengguna.

6 Balas balas: Pelayan akan mengembalikan hasil paparan kepada penyemak imbas sebagai respons, dan penyemak imbas akan memaparkan antara muka berdasarkan kandungan respons.

2. Ciri teras Struts2

1: Rangka kerja Struts2 mempunyai beberapa kelas teras, seperti Action, Interceptor dan Result. Kelas Tindakan bertanggungjawab untuk memproses logik perniagaan, kelas Pemintas bertanggungjawab untuk memintas dan melaksanakan operasi yang sepadan sebelum dan selepas pemprosesan permintaan, dan kelas Hasil bertanggungjawab untuk menjana paparan hasil.

2. Tindanan pemintas: Tindanan pemintas dalam rangka kerja Struts2 ialah koleksi pemintas yang digunakan untuk memproses permintaan. Setiap pemintas boleh melakukan beberapa operasi sebelum dan selepas pemprosesan permintaan, seperti mengesahkan kebenaran pengguna, merakam log, dsb.

3 Pengikatan data: Rangka kerja Struts2 menyokong pengikatan data, yang secara automatik boleh mengikat parameter permintaan pada sifat kelas Tindakan. Melalui pengikatan data, pembangun tidak perlu mengendalikan parameter permintaan secara manual, menjadikan pembangunan lebih mudah.

4 Sokongan pengantarabangsaan: Rangka kerja Struts2 menyediakan sokongan pengantarabangsaan, yang boleh melaksanakan aplikasi berbilang bahasa dengan mudah. Pembangun hanya perlu menulis fail sumber dalam bahasa yang berbeza dan rangka kerja Struts2 akan memuatkan fail sumber yang sepadan secara automatik mengikut tempat pengguna.

5. Pengesahan borang: Rangka kerja Struts2 menyediakan fungsi pengesahan borang, yang boleh mengesahkan data yang dimasukkan oleh pengguna. Pembangun hanya perlu menentukan peraturan pengesahan yang sepadan dalam kelas Tindakan dan rangka kerja Struts2 akan melakukan pengesahan secara automatik berdasarkan peraturan dan mengembalikan hasil pengesahan.

Yang berikut menggunakan contoh mudah untuk menunjukkan prinsip operasi dan ciri teras rangka kerja Struts2.

Mula-mula, buat kelas Action, bernama HelloWorldAction, dengan kod berikut:

public class HelloWorldAction {
    private String name;
    private String message;
    
    public String execute() {
        message = "你好," + name + "!";
        return "success";
    }
    
    public String getName() {
        return name;
    }
    
    public void setName(String name) {
        this.name = name;
    }
    
    public String getMessage() {
        return message;
    }
}

Kemudian, buat halaman JSP, bernama hello.jsp, dengan kod berikut:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Struts2示例</title>
</head>
<body>
    <form action="hello" method="post">
        <input type="text" name="name" />
        <input type="submit" value="提交" />
    </form>
    
    <span>${message}</span>
</body>
</html>

Akhir sekali, buat fail konfigurasi, bernama struts. xml , konfigurasikan kelas Tindakan dan paparan hasil, kodnya adalah seperti berikut:

<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
    <package name="default" extends="struts-default">
        <action name="hello" class="com.example.HelloWorldAction">
            <result>/hello.jsp</result>
        </action>
    </package>
</struts>

Semasa menjalankan contoh ini, mula-mula mulakan pelayan dan gunakan kod di atas ke pelayan. Kemudian masukkan URL dalam penyemak imbas, dan kotak input dan butang hantar akan dipaparkan. Selepas pengguna memasukkan nama mereka dan mengklik butang hantar, rangka kerja Struts2 secara automatik akan memanggil kaedah execute() kelas HelloWorldAction dan memaparkan paparan hasil kepada penyemak imbas.

Melalui contoh di atas, kita boleh memahami prinsip operasi dan ciri teras rangka kerja Struts2. Seni bina MVC, timbunan pemintas, pengikatan data, sokongan pengantarabangsaan, pengesahan borang dan ciri-ciri lain rangka kerja Struts2 menyediakan pembangun kaedah pembangunan yang mudah dan cekap, yang layak untuk kajian dan aplikasi yang mendalam oleh pembangun.

Atas ialah kandungan terperinci Pemahaman mendalam tentang prinsip kerja dan fungsi utama rangka kerja Struts2. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn