Pengawal


Pengawal (Pengawal) ialah teras sistem MVC Ia bertanggungjawab untuk memproses semua permintaan yang dimulakan oleh penyemak imbas dan menentukan pemprosesan logik kandungan respons Pengawal adalah kelas Java standard dan tidak perlu mewarisi sebarang kelas asas . Melalui kelas Kaedah mendedahkan antara muka ke luar, dan hasil pengembalian kaedah ini akan menentukan kandungan khusus respons kepada penyemak imbas

Berikut ialah contoh menulis pengawal dalam modul WebMVC:

;
@Controller
public class DemoController {

    @RequestMapping("/sayhi")
    public IView sayHi() {
        return View.textView("Hi, YMPer!");
    }
}

Mulakan perkhidmatan Tomcat dan akses http://localhost:8080/sayhi,得到的输出结果将是:Hi, YMPer!

Daripada kod di atas, kita dapat melihat bahawa terdapat dua anotasi, iaitu:

  • @Controller: isytiharkan kelas sebagai pengawal, dan rangka kerja akan mengimbas secara automatik semua kelas yang mengisytiharkan anotasi ini dan mendaftarkannya sebagai pengawal apabila ia bermula;

    nama: nama pengawal, lalai ialah "" (parameter ini belum digunakan lagi); adalah benar; Kaedah GET, julat nilai: GET, HEAD, POST, PUT, DELETE, OPTIONS, TRACE; ;

  • Contoh 1:
  • Buat pengawal Contoh bukan tunggal, peraturan kaedah pengawal adalah seperti berikut:

    Kaedah pengawal hanya menyokong akses POST dan PUT

    permintaan; requested-with=XMLHttpRequest (iaitu, untuk menentukan sama ada ia adalah permintaan AJAX); cara menggunakan anotasi @Controller dan @RequestMapping untuk mengkonfigurasi pengawal dan kaedah pengawal

    Kaedah pengawal mesti diubah suai dengan awam, jika tidak, ia akan menjadi tidak sah

    Memandangkan anotasi @RequestMapping juga diisytiharkan pada pengawal, laluan permintaan; pemetaan kaedah pengawal akan menjadi: /demo/sayhi;
Contoh 2:

Contoh di atas menunjukkan beberapa kawalan ke atas permintaan tersebut

Tetapkan parameter pengepala respons melalui anotasi:

from = "china"
  1. age = 18
  2. Tetapkan pengawal untuk mengembalikan paparan dan kandungan melalui anotasi: "Hai, YMPer!"
reee

Tiga anotasi digunakan dalam contoh ini:

  • @ResponseView: mengisytiharkan bahawa kaedah pengawal mengembalikan objek paparan secara lalai, hanya digunakan apabila kaedah tidak mempunyai nilai pulangan atau nilai pulangan tidak sah

    nama: templat lihat laluan fail, lalai ialah "";

    type: lihat jenis fail, lalai ialah Type.View.NULL; []: pengepala respons @Pengumpulan Parameter;

  • @Header: mengisytiharkan pasangan nilai kunci respons permintaan, hanya untuk pemindahan parameter

    nama: nama parameter pengepala respons, parameter yang diperlukan; nilai parameter pengepala respons, lalai ialah "";

    jenis: jenis parameter pengepala respons, menyokong STRING, INI, DATE, lalai ialah Type.HeaderType.STRING;